def multipanel(filename, outdir, dpi=100, verbose=False): """ """ # Set figure parameters rcParams['font.size'] = 14 rcParams['font.weight'] = 'bold' rcParams['axes.titlesize'] = 14 rcParams['axes.titleweight'] = 'bold' rcParams['axes.labelsize'] = 14 rcParams['axes.labelweight'] = 'bold' rcParams['axes.linewidth'] = 1.5 rcParams['xtick.major.size'] = 4 rcParams['xtick.major.width'] = 1 rcParams['xtick.minor.size'] = 2 rcParams['xtick.minor.width'] = 1 rcParams['ytick.major.size'] = 4 rcParams['ytick.major.width'] = 1 rcParams['ytick.minor.size'] = 2 rcParams['ytick.minor.width'] = 1 # Read radar data radar = read_cfradial(filename, exclude_fields=EXCLUDE_FIELDS) if verbose: print 'Plotting file: {}'.format(os.path.basename(filename)) for i, hour in enumerate(HOURS): subs = {'xlim': (0, 60), 'ylim': (0, 14)} figs = {'figsize': (28, 20)} fig, ax = plt.subplots(nrows=4, ncols=2, subplot_kw=subs, **figs) plt.subplots_adjust(wspace=0.05, hspace=0.3) if verbose: print 'Plotting hour: {:02d}'.format(hour) # (a) Raw reflectivity (co-polar) _pcolormesh( radar, REFL_FIELD, hour=hour, cmap=REFL_CMAP, norm=REFL_NORM, ticks=REFL_TICKS, fig=fig, ax=ax[0,0]) # (b) Raw Doppler velocity (co-polar) _pcolormesh( radar, VDOP_FIELD, hour=hour, cmap=VDOP_CMAP, norm=VDOP_NORM, ticks=VDOP_TICKS, fig=fig, ax=ax[0,1]) # (c) Signal-to-noise ratio (co-polar) _pcolormesh( radar, SNR_FIELD, hour=hour, cmap=SNR_CMAP, norm=SNR_NORM, ticks=SNR_TICKS, fig=fig, ax=ax[1,0]) # (d) Corrected Doppler velocity (co-polar) _pcolormesh( radar, CORR_VDOP_FIELD, hour=hour, cmap=VDOP_CMAP, norm=VDOP_NORM, ticks=VDOP_TICKS, fig=fig, ax=ax[1,1]) # (e) Hildebrand noise mask _pcolormesh( radar, NOISE_FIELD, hour=hour, cmap=MASK_CMAP, norm=MASK_NORM, ticks=MASK_TICKS, fig=fig, ax=ax[2,0]) # (f) Doppler velocity coherency mask _pcolormesh( radar, VDOP_COH_FIELD, hour=hour, cmap=MASK_CMAP, norm=MASK_NORM, ticks=MASK_TICKS, fig=fig, ax=ax[2,1]) # (g) Radar significant detection mask _pcolormesh( radar, DETECT_FIELD, hour=hour, cmap=MASK_CMAP, norm=MASK_NORM, ticks=MASK_TICKS, fig=fig, ax=ax[3,0]) # (h) Spectrum width (co-polar) _pcolormesh( radar, WIDTH_FIELD, hour=hour, cmap=WIDTH_CMAP, norm=WIDTH_NORM, ticks=WIDTH_TICKS, fig=fig, ax=ax[3,1]) # Format axes for i, j in np.ndindex(ax.shape): ax[i,j].xaxis.set_major_locator(MultipleLocator(5)) ax[i,j].xaxis.set_minor_locator(MultipleLocator(1)) ax[i,j].yaxis.set_major_locator(MultipleLocator(1)) ax[i,j].yaxis.set_minor_locator(MultipleLocator(0.5)) ax[i,j].set_xlabel('Minutes of Hour {:02d} (UTC)'.format(hour)) ax[i,j].set_ylabel('Height (km AGL)') ax[i,j].grid(which='major', axis='both') # Save image date = num2date(radar.time['data'][0], radar.time['units']).date() image = '{}.{:02d}0000.png'.format(date.strftime('%Y%m%d'), hour) fig.savefig(os.path.join(outdir, image), format='png', dpi=dpi, bbox_inches='tight') plt.close(fig) return
def process_SR(in_dir, image_dir, csv=None): # image_dir = "/Users/tbupper90/Desktop/NEXRAD_BLISS/VADAnalysis/images/SR1_test/" if not os.path.isdir(image_dir): os.makedirs(image_dir) """ """ # d = '/Users/tbupper90/Desktop/NEXRAD_BLISS/data/SR1/pecan/SR1/20150619/corrected/' # d = '/Users/tbupper90/Desktop/NEXRAD_BLISS/data/SR1/pecan/SR1/20150619/corr2/' in_files = glob(os.path.join(in_dir, "*")) for in_file in in_files: print in_file try: radar = io.read_cfradial(in_file) # print "Dealiasing Radar using PyART package..." # VEL2 = correct.dealias_unwrap_phase(radar) # radar.add_field('VEL2', VEL2) # Get some parameters time = datetime_from_radar(radar) time_str = "SR2_%s" % (time.strftime("%Y%m%d_%H%M%S")) elevs = utils.get_elevs(radar) radar_elev = radar.altitude['data'][0] # Mask out the sector where the cab blocks the beam radar = utils.mask_sector(radar, 'VEL2', 250, 290) # plt.figure(111) # display.plot_velocity(radar, 'VEL2', sweep_number=3) # img_name = "%s_%s" % (time_str, 'fig2') # plt.savefig(os.path.join(image_dir, img_name)) # plt.clf() print "Trying 'our' method" plt.figure(1, figsize=(15, 7)) our_u, our_v, hgt, gates = vad.get_uv_vs_hgt(radar, 'VEL2') our_RMSE = utils.calc_RMSE(radar, 'VEL2', our_u, our_v) display.u_v_rmse_plot(our_u, our_v, our_RMSE, hgt, title="'Our' Method -- " + time_str, elevs=elevs, radar_elev=radar_elev) img_name = "%s_%s" % (time_str, 'fig1') plt.savefig(os.path.join(image_dir, img_name)) plt.clf() if csv is True: csv_dir = 'D:\\TMBell\\projects\\VADAnalysis\\csv_vad2\\SR2\\{0}' csv_dir = csv_dir.format(time.strftime('%Y%m%d')) csv_name = time_str + ".csv" csv_name = os.path.join(csv_dir, csv_name) if not os.path.isdir(csv_dir): os.makedirs(csv_dir) vad_csv.vad_to_csv(csv_name, 'SR2', radar, our_u, our_v, our_RMSE, hgt, elevs) except IOError: print "Error Reading file" except KeyError, e: print "Key not found " + str(e)