blogs/nexrad2/visualize/plot_pngs.py (35 lines of code) (raw):
import matplotlib.pyplot as plt
import pyart
def plot_data(infilename, outpng, maxrange):
radar = pyart.io.read_nexrad_archive(infilename)
display = pyart.graph.RadarDisplay(radar)
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(221)
display.plot('velocity', 1, ax=ax, title='Doppler Velocity',
colorbar_label='',
axislabels=('', 'North South distance from radar (km)'))
display.set_limits((-maxrange, maxrange), (-maxrange, maxrange), ax=ax)
ax = fig.add_subplot(222)
display.plot('reflectivity', 0, ax=ax,
title='Reflectivity lowest', colorbar_label='',
axislabels=('', ''))
display.set_limits((-maxrange, maxrange), (-maxrange, maxrange), ax=ax)
ax = fig.add_subplot(223)
display.plot('reflectivity', 1, ax=ax,
title='Reflectivity second', colorbar_label='')
display.set_limits((-maxrange, maxrange), (-maxrange, maxrange), ax=ax)
ax = fig.add_subplot(224)
display.plot('cross_correlation_ratio', 0, ax=ax,
title='Correlation Coefficient', colorbar_label='',
axislabels=('East West distance from radar (km)', ''))
display.set_limits((-maxrange, maxrange), (-maxrange, maxrange), ax=ax)
fig.savefig(outpng)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser(description='plot some radar data')
parser.add_argument('nexrad', help="volume scan filename")
parser.add_argument('png', help="output png filename")
parser.add_argument('range', help="maximum range to plot. default=300", default=300, type=float, nargs='?')
args = parser.parse_args()
print "Plotting {} into {} upto {} km".format(args.nexrad, args.png, args.range)
plot_data(args.nexrad, args.png, args.range)