Changeset 2149 for TI02-CSML/trunk/csml


Ignore:
Timestamp:
13/02/07 09:19:27 (13 years ago)
Author:
domlowe
Message:

making selection more robust

Location:
TI02-CSML/trunk/csml
Files:
5 edited

Legend:

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

    r2144 r2149  
    1515def fixLongitude(request, kwargs): 
    1616    for key in request.keys(): 
    17         if key == 'longitude': #how do we test if it is longitude properly? 
     17        if type(kwargs[key]) is not tuple: 
     18            continue 
     19        elif key == 'longitude': #how do we test if it is longitude properly? 
    1820            for val in request[key]: 
    1921                if val < 0: 
  • TI02-CSML/trunk/csml/API/genSubset.py

    r2144 r2149  
    2020                straxisValues=strTimes 
    2121                arraySize=len(strTimes.split()) 
     22            elif type(kwargs[key]) is not tuple: 
     23                #only one value not a range. 
     24                straxisValues=str(kwargs[key])   
    2225            elif kwargs[key][0] < kwargs[key][1]:    
    2326                for val in domain[key]: 
     
    4245                    straxisValues=straxisValues+ str(val) + ','         
    4346            straxisValues=straxisValues[:-1]                        
    44                                     
     47                                            
    4548        subsetDomain[key]=straxisValues 
    4649        if key != timeaxis: 
     
    152155                continue #already got data from this file, try next time 
    153156            data, fillvalue, axisorder, units=comp.getData(fileposition=filePos, **selection) 
    154             print 'hello' 
    155157            files.append(comp.fileList.fileNames.CONTENT[filePos]) #TODO, get the right file name 
    156158            if fulldata ==[]: 
     
    172174    #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. 
    173175    kwargs=csmlutils.fixLongitude(domain,kwargs) 
    174      
    175      
     176         
    176177    #get the name of the time axis in the coordinate reference system 
    177178    cat=csml.csmllibs.csmlcrs.CRSCatalogue() 
  • TI02-CSML/trunk/csml/API/ops_FileExtract.py

    r2144 r2149  
    6767        units=[] 
    6868        axisorder=DI.getVariableAxes() 
    69         for axis in axisorder: 
    70             units.append(DI.getVariableAttribute('units')) 
     69        for axis in axisorder:     
     70            DI.setAxis(axis) 
     71            units.append(DI.getAxisAttribute('units')) 
    7172    DI.closeFile() 
    7273    return dataArray, fillvalue, axisorder, units 
  • TI02-CSML/trunk/csml/DDC/obs/clim10subset.py

    r2144 r2149  
    3838#define a selection (based on the domain) 
    3939subsetDictionary={} 
    40 subsetDictionary['time']=('1985-1-15T0:0:0.0','1985-4-15T0:0:0.0') 
    41 subsetDictionary['latitude']=(40, 41) 
    42 subsetDictionary['longitude']=(0,4) 
     40subsetDictionary['time']=('1985-1-15T0:0:0.0') 
     41subsetDictionary['latitude']=(88.75) 
     42subsetDictionary['longitude']=(4.25) 
    4343#request subsetted data from features (can set paths here) and add to container 
    4444#subset a feature 
     
    4747#csmlContainer.add(feature.subsetToGridSeries(ncpath='DDC/obs/subsClim10_2.nc',**subsetDictionary)) 
    4848 
    49  
    5049#when you have finished, get the contents of the container 
    5150csmlbundle=csmlContainer.getContents() 
  • TI02-CSML/trunk/csml/csmllibs/csmldataiface.py

    r2144 r2149  
    419419        lonkey='longitude' 
    420420        if lonkey=='longitude' in kwargs.keys():   #this test needs to be much more robust...! 
    421             if kwargs[lonkey][0] > kwargs[lonkey][1]: 
    422                 #subsetting greenwich meridian around 0 
    423                 lonMin = kwargs[lonkey][0] 
    424                 lonMax =kwargs[lonkey][1] 
    425                 kwargs[lonkey]=(0.0, lonMax) 
    426                 subset1=self.file(self.varobj.id,**kwargs) 
    427                 kwargs[lonkey]=(lonMin,359.9999) 
    428                 print 'kwargs: %s'%kwargs 
    429                 try: 
    430                     subset2=self.file(self.varobj.id,**kwargs) 
    431                     longitudeAxis=subset1.getAxisIndex(lonkey) 
    432                     #concatenate arrays along longitude               
    433                     subset = cdms.MV.concatenate([subset1,subset2],axis=longitudeAxis) 
    434                 except: 
    435                     subset=subset1 
     421            if  type(kwargs[lonkey]) is tuple: 
     422                if kwargs[lonkey][0] > kwargs[lonkey][1]: 
     423                    #subsetting greenwich meridian around 0 
     424                    lonMin = kwargs[lonkey][0] 
     425                    lonMax =kwargs[lonkey][1] 
     426                    kwargs[lonkey]=(0.0, lonMax) 
     427                    subset1=self.file(self.varobj.id,**kwargs) 
     428                    kwargs[lonkey]=(lonMin,359.9999) 
     429                    print 'kwargs: %s'%kwargs 
     430                    try: 
     431                        subset2=self.file(self.varobj.id,**kwargs) 
     432                        longitudeAxis=subset1.getAxisIndex(lonkey) 
     433                        #concatenate arrays along longitude               
     434                        subset = cdms.MV.concatenate([subset1,subset2],axis=longitudeAxis) 
     435                    except: 
     436                        subset=subset1 
    436437        if type(subset) is not cdms.tvariable.TransientVariable: 
    437438            subset=self.file(self.varobj.id,**kwargs) 
Note: See TracChangeset for help on using the changeset viewer.