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

root/sodar/trunk/sodar/arrayData.py

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

Fulfill tickets #13, #14, #18, #22.

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._azimuth(data)
24    
25     def _azimuth(self, data):
26         """Convert direction to polar azimuth in radians CW from North"""
27         self.azimuth = n.array([[altitude['DIR']
28                                  for altitude
29                                  in sample['body']]
30                                 for sample in data])
31         self.azimuth = n.pi * (self.azimuth / 180)
32
33
34 def _main():
35     """Process as script from command line."""
36     import urllib2
37     try:
38         rawDataHandle = urllib2.urlopen('http://nemo.isis.unc.edu/'\
39                                         'data/nccoos/level0/dukeforest/sodar/'\
40                                         'store/2007-06/20070601.dat')
41         rawDataString = rawDataHandle.read()
42     except:
43         raise IOError("Failure to read raw test data")
44     rawDataObject = rawData.RawData(rawDataString)
45     formattedDataObject = formattedData.FormattedData(rawDataObject)
46     arrayDataObject = ArrayData(formattedDataObject)
47     print arrayDataObject.azimuth
48
49 if __name__ == "__main__":
50     _main()
Note: See TracBrowser for help on using the browser.