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

root/sodar/trunk/sodar/arrayData.py

Revision 79 (checked in by cbc, 17 years ago)

Saving work.

Line 
1 #!/usr/bin/python
2 """
3 Module to handle sodar data samples as arrays.
4 """
5
6 __author__ = 'Chris Calloway'
7 __email__ = 'cbc@unc.edu'
8 __copyright__ = 'Copyright 2007 UNC-CH Department of Marine Science'
9 __license__ = 'GPL2'
10
11 import rawData
12 import formattedData
13 import numpy as n
14 import datetime
15
16 class ArrayData(object):
17    
18     """Class to handle Daily sodar file data as arrays."""
19    
20     def __init__(self, data):
21         """Create arrays from formatted data."""
22         super(ArrayData, self).__init__()
23         self.timeInterval = data.timeInterval
24         self.altInterval = data.altInterval
25         self.numAltitudes = data.numAltitudes
26         self.minAltitude = data.minAltitude
27         self.maxAltitude = data.maxAltitude
28         self._azimuth(data)
29    
30     def _azimuth(self, data):
31         """Convert direction to polar azimuth in radians CW from North"""
32         self.azimuth = n.array([[altitude['DIR']
33                                  for altitude
34                                  in sample['body']]
35                                 for sample in data])
36         self.azimuth = n.pi * (self.azimuth / 180)
37
38
39 def _main():
40     """Process as script from command line."""
41     import urllib2
42     try:
43         rawDataHandle = urllib2.urlopen('http://nemo.isis.unc.edu/'\
44                                         'data/nccoos/level0/dukeforest/sodar/'\
45                                         'store/2007-06/20070601.dat')
46         rawDataString = rawDataHandle.read()
47     except:
48         raise IOError("Failure to read raw test data")
49     rawDataObject = rawData.RawData(rawDataString)
50     formattedDataObject = formattedData.FormattedData(rawDataObject)
51     arrayDataObject = ArrayData(formattedDataObject)
52     print arrayDataObject.azimuth
53
54 if __name__ == "__main__":
55     _main()
Note: See TracBrowser for help on using the browser.