source: TI02-CSML/trunk/csml/API/ops_PointSeriesFeature.py @ 2547

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/csml/API/ops_PointSeriesFeature.py@2547
Revision 2547, 2.5 KB checked in by domlowe, 14 years ago (diff)

basics of QXF subsetting working

Line 
1''' ops_PointSeriesFeature  contains operations for PointSeriesFeatures'''
2import csml,sys
3
4def testmethod(self):
5    print 'testmethod for pointSeries feature'
6    return 'testmethod pointSeries'
7
8def getAllowedSubsettings(self):
9    return ['subsetToPointSeries']
10   
11def getDomain(self):
12    #returns domain as a dictionary of ordinates {name: [values], ...}
13    self.domain={}
14    self.gridnames={}
15    print dir(self.value.pointSeriesDomain)
16    for val in self.value.pointSeriesDomain.timePositionList.CONTENT.split():
17        print val
18    for gridOrd in self.value.pointSeriesDomain.coordTransformTable.gridOrdinates:
19        name=gridOrd.coordAxisLabel.CONTENT
20        self.gridnames[gridOrd.gridAxesSpanned.CONTENT]=name
21        if hasattr(gridOrd.coordAxisValues, 'insertedExtract'):
22            self.domain[name], fill, axisorder, units=gridOrd.coordAxisValues.insertedExtract.getData()
23        else:           
24            valList=[]
25            try:
26                vals=gridOrd.coordAxisValues.coordinateList.CONTENT
27                for val in vals.split(): 
28                    valList.append(eval(val))
29            except:
30                vals=gridOrd.coordAxisValues.timePositionList.CONTENT
31                for val in vals.split(): 
32                    valList.append(val)           
33            self.domain[name]=valList   
34    return self.domain   
35
36
37
38   
39def subsetToPointSeries(self, csmlpath=None, ncpath=None,times=None):
40    if type(times) is str:
41        selection = csml.csmllibs.csmlextra.listify(times)
42    else:
43        selection = times
44   
45    tlist=[]   
46    for val in self.value.pointSeriesDomain.timePositionList.CONTENT.split():
47        tlist.append(val)
48   
49    indices=[]
50    if  len(selection) ==2:
51        for domaintime in tlist:
52            if selection[0] == domaintime:
53                minIndex=tlist.index(domaintime)
54            if selection[1] == domaintime:
55                maxIndex=tlist.index(domaintime)
56                break   
57    elif len(selection)==1:   #point only
58        for domaintime in tlist:
59            if selection[0] == domaintime:
60                minIndex=tlist.index(domaintime)
61                maxIndex=minIndex
62                break
63   
64    fileList=[]
65    for f in self.value.rangeSet.arrayDescriptor.components.fileList.fileNames.CONTENT.split():
66        fileList.append(f)
67   
68   
69    data=self.getDataFromChunks(fileList, minIndex, maxIndex)
70
71    print data
72    sys.exit()
73    #Now write out the CSML Feature
74   
75    #Now write out the NetCDF File
76
77   
78   
79   
80   
81   
Note: See TracBrowser for help on using the repository browser.