NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

root/sodar/trunk/sodar.py

Revision 134 (checked in by cbc, 16 years ago)

Split sodar.py's _main into processSingle and processAll.

Line 
1 #!/usr/bin/python
2 """
3 Module to process sodar data.
4 """
5
6 import optparse
7 from sodar.utils import openAnything, findMissing
8 from sodar import arrayData as a
9 import pylab as p
10 import os
11
12 def processSingle(filein, pathout):
13     if not os.path.exists(pathout):
14         os.makedirs(pathout, mode=0775)
15        
16         try:
17             rawDataHandle = openAnything.openAnything(filein)
18             rawDataString = rawDataHandle.read()
19             rawDataHandle.close()
20         except:
21             raise IOError("Failure to read raw data.")
22        
23         rawDataObject = a.rawData.RawData(rawDataString)
24         formattedDataObject = a.formattedData.FormattedData(rawDataObject)
25         arrayDataObject = a.ArrayData(formattedDataObject)
26        
27         fig = p.figure()
28         p.pcolor(arrayDataObject.uComponents.T)
29         p.colorbar()
30         fig.savefig(os.path.join(pathout, 'uComponents.png'))
31        
32         fig = p.figure()
33         p.pcolor(arrayDataObject.vComponents.T)
34         p.colorbar()
35         fig.savefig(os.path.join(pathout, 'vComponents.png'))
36        
37         fig = p.figure()
38         p.pcolor(arrayDataObject.wComponents.T)
39         p.colorbar()
40         fig.savefig(os.path.join(pathout, 'wComponents.png'))
41        
42         fig = p.figure()
43         p.pcolor(arrayDataObject.echoStrengths.T)
44         p.colorbar()
45         fig.savefig(os.path.join(pathout, 'echoStrengths.png'))
46        
47         fig = p.figure()
48         p.quiver(arrayDataObject.uComponents,
49                  arrayDataObject.vComponents,
50                  arrayDataObject.wComponents)
51         p.colorbar()
52         xmin,xmax,ymin,ymax = p.axis()
53         dx,dy = xmax-xmin, ymax-ymin
54         p.axis([xmin-0.1*dx, xmax+0.1*dx, ymin-0.1*dy, ymax+0.1*dy])
55         p.title('Horizontal wind vectors: time vs. altitude')
56         fig.savefig(os.path.join(pathout, 'quiver.png'))
57     return 0
58
59 def processAll(source, destination):
60     walkList = findMissing.findMissing(source, destination)
61    
62     for filein, pathout in walkList:
63         processSingle(filein, pathout)
64     return 0
65
66 def _main():
67     parser = optparse.OptionParser()
68     (values, args) = parser.parse_args()
69     (source, destination) = tuple(args)
70     processAll(source, destination)
71     return 0
72
73 if __name__ == "__main__":
74     _main()
Note: See TracBrowser for help on using the browser.