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)
'_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])