Ignore:
Timestamp:
03/01/07 10:02:50 (13 years ago)
Author:
domlowe
Message:

handling of longitude requests taken out of main module

Location:
TI02-CSML/trunk/csml/API
Files:
3 edited

Legend:

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

    r1938 r1939  
    88    else: 
    99        return [item] 
     10     
     11     
     12     
     13#deal with longitude requests 
     14#if the request is in -ve,+ve eg (-30,30) but the data is in (0,360) need to handle this by changing the args. 
     15def fixLongitude(request, kwargs): 
     16    for key in request.keys(): 
     17        if key == 'longitude': #how do we test if it is longitude properly? 
     18            for val in dc[key]: 
     19                if val < 0: 
     20                    pass 
     21                else: 
     22                    if kwargs[key][0] < 0: 
     23                        kwargs[key]=(kwargs[key][0]+360,kwargs[key][1]) 
     24                    if kwargs[key][1] < 0: 
     25                        kwargs[key]=(kwargs[key][0],kwargs[key][1]+360) 
     26        return kwargs 
  • TI02-CSML/trunk/csml/API/ops_FileExtract.py

    r1902 r1939  
    1616    #get the right file 
    1717    if fileposition is not None: 
    18         file=self.fileName.split()[fileposition] 
     18        file=self.fileName.CONTENT.split()[fileposition] 
    1919    else: 
    20         file=self.fileName 
     20        file=self.fileName.CONTENT 
    2121    #open the file 
    2222    DI = csml.csmllibs.csmldataiface.DataInterface() 
     
    2525     
    2626    try: 
    27         DI.setAxis(self.variableName) 
     27        DI.setAxis(self.variableName.CONTENT) 
    2828        data=DI.getDataForAxis() 
    2929    except: 
    30         DI.setVariable(self.variableName) 
     30        DI.setVariable(self.variableName.CONTENT) 
    3131        if kwargs: 
    3232            #print 'getting data for %s'%kwargs 
  • TI02-CSML/trunk/csml/API/ops_GridSeriesFeature.py

    r1937 r1939  
    66import csml.API.ops_AbstractFeature 
    77import csml.csmllibs.netCDFWriter 
     8import csmlutils 
    89 
    910import sys  #remove later 
     
    1516def getAllowedSubsettings(self): 
    1617    return ['subsetToGridSeries']  #other operations 
    17  
    1818 
    1919def getDomain(self): 
     
    4040        pathToSubsetNetCDF='temp.nc' 
    4141     
     42    dom = self.getDomain() 
    4243    #deal with longitude requests 
    4344    #if the request is in -ve,+ve eg (-30,30) but the data is in (0,360) need to handle this by changing the args. 
    44     dc = self.getDomain() 
    45     for key in dc.keys(): 
    46         if key == 'longitude': #how do we test if it is longitude properly? 
    47             for val in dc[key]: 
    48                 if val < 0: 
    49                     pass 
    50                 else: 
    51                     if kwargs[key][0] < 0: 
    52                         kwargs[key]=(kwargs[key][0]+360,kwargs[key][1]) 
    53                     if kwargs[key][1] < 0: 
    54                         kwargs[key]=(kwargs[key][0],kwargs[key][1]+360) 
    55      
    56     timeAxis=self._identifyTimeAxis(dc.keys()) 
     45    kwargs=csmlutils.fixLongitude(dom,kwargs) 
     46    #deal with times 
     47    timeAxis=self._identifyTimeAxis(dom.keys()) 
    5748    self.times=kwargs[timeAxis] 
    5849    self.files=[] 
     
    7869            if timeok ==1: 
    7970                self.times.append(time) 
    80     print dir(self.value.rangeSet) 
    8171    if hasattr(self.value.rangeSet, 'aggregatedArray'): 
    8272        #handle aggregatedArray 
    83         if type(self.value.rangeSet.aggregatedArray.components) is list: 
    84             numFiles= len(self.value.rangeSet.aggregatedArray.components[0].fileName.CONTENT.split()) 
    85         else: 
    86             numFiles= len(self.value.rangeSet.aggregatedArray.components.fileName.CONTENT.split()) 
     73        numFiles=len(csmlutils.listify(self.value.rangeSet.aggregatedArray.components)[0].fileName.CONTENT.split()) 
    8774        timeToFileRatio=len(self.domain[timeAxis][0].split())/numFiles 
    8875        #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... 
     
    9279            listPosition=self.domain[timeAxis][0].split().index(time) 
    9380            strTimes= strTimes + ' ' + time 
    94             for comp in iter([self.value.rangeSet.aggregatedArray.components]): #iter?? 
     81            for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components):  
    9582                filePos=(listPosition)/timeToFileRatio 
    9683                if filePos in filesFetched: 
    9784                    continue #already got data from this file, try next time 
     85                print comp 
     86                print dir(comp) 
    9887                data=comp.getData(fileposition=filePos, times=self.times, **kwargs) 
    9988                self.files.append(comp.fileName.split()[filePos]) 
     
    10695            axisorder = data.getAxisIds()  #will need later! 
    10796            sys.exit() 
    108             for comp in iter([self.value.rangeSet.aggregatedArray.components]): 
     97            for comp in csmlutils.listify(self.value.rangeSet.aggregatedArray.components): 
    10998                filePos=(listPosition)/timeToFileRatio 
    11099                if filePos in filesFetched: 
     
    127116    elif hasattr(self.value.rangeSet, 'datablock'): #not tested 
    128117        pass 
    129      
    130      
    131      
     118 
     119 
    132120    ### define domain and rangeSet to use for feature in csml document#### 
    133121    domain=csml.parser.GridSeriesDomain() 
Note: See TracChangeset for help on using the changeset viewer.