Changeset 2062 for TI02-CSML


Ignore:
Timestamp:
26/01/07 15:52:54 (13 years ago)
Author:
domlowe
Message:

more on subsetting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/API/ops_GridSeriesFeature.py

    r2061 r2062  
    104104            ttwo=self.times[1] 
    105105        self.times=[] 
    106         if hasattr(self, 'domain'): 
    107             pass 
    108         else: 
    109             self.getDomain() 
    110              
     106            
    111107        for time in self.domain[timeName]: 
    112108            timeok=csml.API.ops_AbstractFeature.__compareTimes(tone,time,ttwo) 
     
    114110                self.times.append(time) 
    115111     #okay up to here! 
    116  
    117     if hasattr(self.value.rangeSet, 'aggregatedArray'): 
    118         #handle aggregatedArray 
    119         numFiles=len(csmlutils.listify(self.value.rangeSet.aggregatedArray.components)[0].fileName.CONTENT.split()) 
    120         timeToFileRatio=len(self.domain[timeAxis][0].split())/numFiles 
    121         #to keep track of files that have already been fetched. eg. if multiple times are in a single file only need to get data from that file once... 
    122         filesFetched=[] 
    123         #get data: 
    124         selection={} 
    125         for kw in kwargs: 
    126                     if kw != timeAxis: 
    127                         selection[kw]=kwargs[kw] 
    128         for time in self.times: 
    129             listPosition=self.domain[timeAxis][0].split().index(time) 
    130             strTimes= strTimes + ' ' + time 
    131             for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components):  
    132                 filePos=(listPosition)/timeToFileRatio 
    133                 if filePos in filesFetched: 
    134                     continue #already got data from this file, try next time 
    135                 print comp 
    136                 print dir(comp) 
    137                 data=comp.getData(fileposition=filePos, **selection) 
    138                 self.files.append(comp.fileName.CONTENT.split()[filePos]) 
    139                 if fulldata ==[]: 
    140                     fulldata = data.tolist() 
    141                 else: 
    142                     for item in data.tolist(): 
    143                         fulldata.append(item) 
    144                 filesFetched.append(filePos) 
    145             axisorder = data.getAxisIds()  #will need later! 
    146             for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components): 
    147                 filePos=(listPosition)/timeToFileRatio 
    148                 if filePos in filesFetched: 
    149                     continue #already got data from this file, try next time 
    150                 data=comp.getData(fileposition=filePos, **selection) 
    151                 self.files.append(comp.fileName.CONTENT.split()[filePos]) 
    152                 if fulldata ==[]: 
    153                     fulldata = data.tolist() 
    154                 else: 
    155                     for item in data.tolist(): 
    156                         fulldata.append(item) 
    157                 filesFetched.append(filePos) 
    158             axisorder = data.getAxisIds()  #will need later! 
     112     
     113    if hasattr(self.value.rangeSet, 'valueArray'): 
     114        if hasattr(self.value.rangeSet.valueArray.valueComponent.quantityList, '__insertedExtract'): 
     115            numFiles= len( csmlutils.listify(self.value.rangeSet.valueArray.valueComponent.quantityList.__insertedExtract.components)[0].fileList.fileNames.CONTENT.split()) 
     116             
     117            timeToFileRatio=len(self.domain[timeName])/numFiles 
     118            #to keep track of files that have already been fetched. eg. if multiple times are in a single file only need to get data from that file once... 
     119            filesFetched=[] 
     120            #get data: 
     121            selection={} 
     122            for kw in kwargs: 
     123                        if kw != timeAxis: 
     124                            selection[kw]=kwargs[kw] 
     125            for time in self.times: 
     126                listPosition=self.domain[timeAxis][0].split().index(time) 
     127                strTimes= strTimes + ' ' + time 
     128                for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components):  
     129                    filePos=(listPosition)/timeToFileRatio 
     130                    if filePos in filesFetched: 
     131                        continue #already got data from this file, try next time 
     132                    print comp 
     133                    print dir(comp) 
     134                    data=comp.getData(fileposition=filePos, **selection) 
     135                    self.files.append(comp.fileName.CONTENT.split()[filePos]) 
     136                    if fulldata ==[]: 
     137                        fulldata = data.tolist() 
     138                    else: 
     139                        for item in data.tolist(): 
     140                            fulldata.append(item) 
     141                    filesFetched.append(filePos) 
     142                axisorder = data.getAxisIds()  #will need later! 
     143                for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components): 
     144                    filePos=(listPosition)/timeToFileRatio 
     145                    if filePos in filesFetched: 
     146                        continue #already got data from this file, try next time 
     147                    data=comp.getData(fileposition=filePos, **selection) 
     148                    self.files.append(comp.fileName.CONTENT.split()[filePos]) 
     149                    if fulldata ==[]: 
     150                        fulldata = data.tolist() 
     151                    else: 
     152                        for item in data.tolist(): 
     153                            fulldata.append(item) 
     154                    filesFetched.append(filePos) 
     155                axisorder = data.getAxisIds()  #will need later! 
    159156 
    160157    elif hasattr(self.value.rangeSet, 'datablock'): #not tested 
Note: See TracChangeset for help on using the changeset viewer.