Exemple #1
0
def plot_6plot_thresh(dms_plot=0):

    minvalD = 0
    maxvalD = 255
    sizex = np.amax(xT) - np.amin(xT)
    sizey = np.amax(yT) - np.amin(yT)
    ratio = sizey / sizex
    minvalL = 0
    if (found_ridges == 1):
        elevation2d_ridge_comp = ma.compressed(elevation2d_ridge_maL)
        maxvalL = np.round(np.percentile(elevation2d_ridge_comp, 99),
                           decimals=1)
    else:
        maxvalL = min_ridge_height
    lowerp = 5
    upperp = 99.5
    minval = np.round(np.percentile(elevation_ma, lowerp), decimals=1)
    maxval = np.round(np.percentile(elevation_ma, upperp), decimals=1)
    res = 2
    #dms_plot=0
    textwidth = 5.5
    fig = figure(figsize=(textwidth, textwidth * 1.25 * ratio))

    ax1 = subplot(321)
    ax1.annotate('(a) Raw DMS',
                 xy=(0.03, 0.9),
                 textcoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')

    if (dms_plot == 1):
        im1 = pcolormesh(xT[::res, ::res],
                         yT[::res, ::res],
                         dms[::res, ::res],
                         vmin=minvalD,
                         vmax=maxvalD,
                         cmap=cm.gist_gray,
                         rasterized=True)

    ax2 = subplot(322)
    ax2.annotate('(b) Raw DMS + ATM',
                 xy=(0.03, 0.9),
                 textcoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')

    if (dms_plot == 1):
        im2 = pcolormesh(xT[::res, ::res],
                         yT[::res, ::res],
                         dms[::res, ::res],
                         vmin=minvalD,
                         vmax=maxvalD,
                         cmap=cm.gist_gray,
                         rasterized=True)
    im21 = scatter(xatm,
                   yatm,
                   c=elevation_ma,
                   vmin=minval,
                   vmax=maxval,
                   s=1,
                   lw=0,
                   cmap=cm.RdYlBu_r,
                   rasterized=True)

    ax3 = subplot(323)

    xe = [i for i in xrange(100)]
    ye = [np.percentile(elevation_ma, i) for i in xrange(100)]
    im3 = plot(xe, ye, 'k')
    mid_percent = (pint * min_index) + (pwidth / 2)
    low_percent = (pint * min_index)
    up_percent = (pint * min_index) + pwidth
    #axhline(y=level_elev, xmin=0, xmax=mid_percent, color='b')
    axhline(y=level_elev, linestyle='--', color='b')
    axhline(thresh, color='r')
    ax3.annotate('Elevation threshold',
                 xy=(10, thresh),
                 xycoords='data',
                 color='r',
                 horizontalalignment='left',
                 verticalalignment='bottom')
    ax3.annotate('Level ice (' + str(low_percent) + '-' + str(up_percent) +
                 '%)',
                 xy=(10, level_elev),
                 xycoords='data',
                 color='b',
                 horizontalalignment='left',
                 verticalalignment='top')
    xlim([0, 100])

    ax3.annotate('(c) Elevation distribution',
                 xy=(0.03, 0.9),
                 xycoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')

    ax3.annotate(str(min_ridge_height) + ' m',
                 xy=(mid_percent - 15,
                     level_elevl + (thresh - level_elevu) * 0.5),
                 color='k',
                 horizontalalignment='left',
                 verticalalignment='bottom')
    #ax4.annotate('(d)' , xy=(0.03, 0.93), textcoords='axes fraction', color='k', horizontalalignment='middle', verticalalignment='middle')
    ax3.set_ylim(np.amin(ye), np.amax(ye))
    norm = ro.MidpointNormalize(midpoint=0)
    ax4 = subplot(324)
    ax4.annotate('(d) Gridded (' + str(xy_res) + ' m) ATM',
                 xy=(0.03, 0.9),
                 textcoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')

    im4 = pcolormesh(xx2d,
                     yy2d,
                     elevation2d - level_elev,
                     norm=norm,
                     vmin=minvalEL,
                     vmax=maxvalEL,
                     cmap=cm.RdBu_r)
    #
    im4.set_clim(minvalEL, maxvalEL)
    im41 = contour(xx2d,
                   yy2d,
                   level_ice,
                   levels=[np.amin(level_ice),
                           np.amax(level_ice)],
                   colors='k',
                   linewidths=0.5)

    #cs.set_clim(50, 210)
    ax5 = subplot(325)
    ax5.annotate('(e) High topography (>0.2 m)',
                 xy=(0.03, 0.9),
                 textcoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')

    #im3 = pcolormesh(xx2d, yy2d, level_ice, vmin = minvalL, vmax = maxvalL, cmap = cm.RdYlBu_r)
    if (found_ridges == 1):
        im31 = pcolormesh(xx2d,
                          yy2d,
                          elevation2d_ridge_maL,
                          vmin=minvalL,
                          vmax=maxvalL,
                          cmap=cm.RdYlBu_r)
        im51 = contour(xx2d,
                       yy2d,
                       label_im,
                       np.arange(0, num_ridges + 1),
                       colors='k',
                       linewidths=1)

    ax6 = subplot(326)
    ax6.annotate(r'(f) Unique features',
                 xy=(0.03, 0.9),
                 textcoords='axes fraction',
                 color='k',
                 horizontalalignment='middle',
                 verticalalignment='middle')
    if (found_big_ridge == 1):
        minvalLAB = 0
        maxvalLAB = np.amax(label_im)
        label_im_ma = ma.masked_where(label_im < 0.5, label_im)
        im6 = pcolormesh(xx2d,
                         yy2d,
                         label_im_ma,
                         vmin=minvalLAB,
                         vmax=maxvalLAB,
                         cmap=my_cmap)
        im61 = plot(ridge_stats[:, 0],
                    ridge_stats[:, 1],
                    marker='o',
                    markersize=2,
                    linestyle='None',
                    color='k')

        #for i in xrange(ridge_stats.shape[0]):
        #	im62 = plot([ridge_stats[i, 0]-2*ridge_stats[i, 2], ridge_stats[i, 0]+2*ridge_stats[i, 2]], [ridge_stats[i, 1]-2*ridge_stats[i, 3], ridge_stats[i, 1]+2*ridge_stats[i, 3]], marker='None', linestyle = '-', color='k')

    ax3.set_xlabel('Percentile (%)', labelpad=1)
    ax3.set_ylabel('Relative elevation (m)', labelpad=1)
    axesname = ['ax1', 'ax2', 'ax3', 'ax4', 'ax5', 'ax6']

    for plotnum in [0, 1, 3, 4, 5]:
        vars()[axesname[plotnum]].set_xlim(np.amin(xT), np.amax(xT))
        vars()[axesname[plotnum]].set_ylim(np.amin(yT), np.amax(yT))
    for plotnum in [0, 4, 5]:
        vars()[axesname[plotnum]].set_xlabel('y (m)', labelpad=1)

    for plotnum in [0, 3, 4]:
        vars()[axesname[plotnum]].set_ylabel('x (m)', labelpad=1)

    for plotnum in xrange(6):
        vars()[axesname[plotnum]].yaxis.grid(True)
        vars()[axesname[plotnum]].xaxis.grid(True)
    letters = ['(a)', '(b)', '(c)', '(d)', '(e)', '(f)']
    #for plotnum in xrange(6):

    fig.text(
        0.15, 0.98, 'DMS Date: ' + date + '  DMS Time: ' + dms_time + '     ' +
        latDMS_str + 'N, ' + lonDMS_str + 'E')

    cax = fig.add_axes([0.58, 0.71, 0.02, 0.08])
    cbar = colorbar(im21,
                    cax=cax,
                    orientation='vertical',
                    extend='both',
                    use_gridspec=True)
    cbar.set_label('Elevation to \n WGS84 (m)', labelpad=28, rotation=0)
    xticks1 = np.linspace(minval, maxval, 3)
    cbar.set_ticks(xticks1)

    cax1 = fig.add_axes([0.58, 0.4, 0.02, 0.08])
    cbar1 = colorbar(im4,
                     cax=cax1,
                     orientation='vertical',
                     extend='max',
                     use_gridspec=True)
    cbar1.set_label('Elevation to \n level ice (m)', labelpad=28, rotation=0)
    xticksL = np.linspace(minvalEL, maxvalEL, 4)
    cbar1.set_ticks(xticksL)

    cax2 = fig.add_axes([0.1, 0.08, 0.02, 0.08])
    cbar2 = colorbar(im31,
                     cax=cax2,
                     orientation='vertical',
                     extend='max',
                     use_gridspec=True)
    cbar2.set_label('Elevation to \n level ice (m)', labelpad=30, rotation=0)
    xticks2 = np.linspace(minvalL, maxvalL, 3)
    cbar2.set_ticks(xticks2)

    if (found_big_ridge == 1):
        cax3 = fig.add_axes([0.58, 0.08, 0.02, 0.08])
        cbar3 = colorbar(im6,
                         cax=cax3,
                         orientation='vertical',
                         extend='neither',
                         use_gridspec=True)
        cbar3.set_label('Feature\nidentifier', labelpad=20, rotation=0)
        xticks2 = np.linspace(minvalLAB, maxvalLAB, 2)
        cbar3.set_ticks(xticks2)
        cbar3.solids.set_rasterized(True)

    cbar.solids.set_rasterized(True)
    cbar1.solids.set_rasterized(True)
    cbar2.solids.set_rasterized(True)

    im4.cmap.set_under('w')
    #plt.tight_layout()
    print 'Saving figure...'
    subplots_adjust(bottom=0.07, left=0.09, top=0.96, right=0.98, hspace=0.22)

    savefig(figpath + 'figure3.png', dpi=300)
Exemple #2
0
            '_cm2.png',
            dpi=300)


datapath = './Data_output/'
rawdatapath = '../../../DATA/ICEBRIDGE/'
ATM_path = rawdatapath + '/ATM/ARCTIC/'
dms_path = rawdatapath + '/DMS/'
posAV_path = rawdatapath + '/POSAV/'
figpath = './Figures/'

my_cmap = ro.perceptual_colormap("cube1",
                                 '../../../DATA/OTHER/CMAPS/',
                                 reverse=1)

norm = ro.MidpointNormalize(midpoint=0)

xy_res = 2
pwidth = 20
pint = 5
min_ridge_size = 100

dms_image = 1
min_ridge_height = .2

minvalEL = -1
maxvalEL = 1
sh = 0
if (sh == 1):
    print sys.argv[1]
    dms_image = int(sys.argv[1])