source: qesdi/data_processing/COORDDataTable.py @ 5434

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/qesdi/data_processing/COORDDataTable.py@5434
Revision 5434, 1.5 KB checked in by dgrant, 12 years ago (diff)

Can now read in precip data and write functionaly correct netCDF. Still
need to make this conform to CF

Line 
1import numpy
2
3class COORDDataTable:
4    """Class to store a lookup tree (dict of dicts) of data by latlon"""
5   
6    def __init__(self,emptyVal):
7        self.lookupTable={}
8        self.emptyVal = emptyVal
9        self.prepopulateTable()
10
11    def prepopulateTable(self):
12        f32 = numpy.float32
13        increments = [f32(0.083), f32(0.25), f32(0.417), f32(0.583), f32(0.75), f32(0.917)]
14        self.lats = []
15        increments.reverse()
16        for wholeLat in numpy.arange(-89,1,1,f32):
17            self.lats.extend(["%.3f" % (wholeLat - inc) for inc in increments])
18        increments.reverse()
19        for wholeLat in numpy.arange(0,90,1,f32):
20            self.lats.extend(["%.3f" % (wholeLat + inc) for inc in increments])
21        self.lons = []
22        increments.reverse()
23        for wholeLon in numpy.arange(-179,1):
24            self.lons.extend(["%.3f" % (wholeLon - inc) for inc in increments])
25        increments.reverse()
26        for wholeLon in numpy.arange(0,180):
27            self.lons.extend(["%.3f" % (wholeLon + inc) for inc in increments])
28        for lat in self.lats:
29            for lon in self.lons:
30                self.lookupTable.setdefault(lat,dict())[lon]=self.emptyVal
31
32
33    def insert(self,dataPt, lat, lon):
34        self.lookupTable[lat][lon]=dataPt
35
36    def lookup(self, lat, lon):
37        return self.lookupTable[lat][lon]
38
39    def getLats(self):
40        return self.lats
41
42    def getLons(self):
43        return self.lons
44
45    def getLatSize(self):
46        return len(self.lats)
47
48    def getLonSize(self):
49        return len(self.lons)
50
Note: See TracBrowser for help on using the repository browser.