#!/usr/bin/python """ Module to process sodar data. """ def _main(): import optparse from utils import openAnything import arrayData as a import pylab as p import os parser = optparse.OptionParser() (values, args) = parser.parse_args() (filein, pathout) = tuple(args) if not os.path.exists(pathout): os.makedirs(pathout, mode=0775) try: rawDataHandle = openAnything.openAnything(filein) rawDataString = rawDataHandle.read() rawDataHandle.close() except: raise IOError("Failure to read raw data.") rawDataObject = a.rawData.RawData(rawDataString) formattedDataObject = a.formattedData.FormattedData(rawDataObject) arrayDataObject = a.ArrayData(formattedDataObject) fig = p.figure() p.pcolor(arrayDataObject.uComponents.T) p.colorbar() fig.savefig(os.path.join(pathout, 'uComponents.png')) fig = p.figure() p.pcolor(arrayDataObject.vComponents.T) p.colorbar() fig.savefig(os.path.join(pathout, 'vComponents.png')) fig = p.figure() p.pcolor(arrayDataObject.wComponents.T) p.colorbar() fig.savefig(os.path.join(pathout, 'wComponents.png')) fig = p.figure() p.pcolor(arrayDataObject.echoStrengths.T) p.colorbar() fig.savefig(os.path.join(pathout, 'echoStrengths.png')) fig = p.figure() p.quiver(arrayDataObject.uComponents, arrayDataObject.vComponents, arrayDataObject.wComponents) p.colorbar() xmin,xmax,ymin,ymax = p.axis() dx,dy = xmax-xmin, ymax-ymin p.axis([xmin-0.1*dx, xmax+0.1*dx, ymin-0.1*dy, ymax+0.1*dy]) p.title('Horizontal wind vectors: time vs. altitude') fig.savefig(os.path.join(pathout, 'quiver.png')) if __name__ == "__main__": _main()