Changeset 2590


Ignore:
Timestamp:
15/06/07 10:15:01 (12 years ago)
Author:
domlowe
Message:

second attempt at fixing longitude bug

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

Legend:

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

    r2587 r2590  
    1313#deal with longitude requests 
    1414#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. 
    15 def fixLongitude(request, kwargs):   
     15def fixLongitude(request, kwargs): 
    1616    def _anyitemlessthanzero(listofitems): 
    1717        for item in listofitems: 
     
    2121    for key in request.keys(): 
    2222        if kwargs.has_key(key): 
    23             if type(kwargs[key]) is not tuple: 
    24                 continue 
     23            if type(kwargs[key]) is not tuple:               
     24                continue                
    2525            elif key == 'longitude': #how do we test if it is longitude properly? 
    2626                if _anyitemlessthanzero(request[key]): 
    2727                    pass #no need to convert request if data is also -ve to +ve 
    28                 else:                  
    29                     for val in request[key]:                        
    30                         if val < 0: 
    31                             pass 
    32                         else:         
    33                             if kwargs[key][0] < 0: 
    34                                 kwargs[key]=(kwargs[key][0]+360,kwargs[key][1]) 
    35                             if kwargs[key][1] < 0: 
    36                                 kwargs[key]=(kwargs[key][0],kwargs[key][1]+360) 
     28                else:                                      
     29                    lonMin=kwargs[key][0] 
     30                    lonMax=kwargs[key][1]                                         
     31                    if lonMin >=0: 
     32                        pass 
     33                    else:                     
     34                        new_lonMin = (lonMin + 360.0) % 360.0 
     35                        new_lonMax = (lonMax + 360.0) % 360.0    
     36                        if new_lonMin == new_lonMax: 
     37                            kwargs[key]=(0, 360)         
     38                        else: 
     39                            kwargs[key]=(new_lonMin, new_lonMax) 
    3740    return kwargs 
    3841                         
  • TI02-CSML/trunk/csml/API/genSubset.py

    r2587 r2590  
    240240    #deal with longitude requests 
    241241    #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. 
     242 
    242243    kwargs=csmlutils.fixLongitude(domain,kwargs) 
    243      
     244 
    244245    #if request doesn't match domain points find nearest neighbours 
    245246    kwargs=csml.API.genSubset.checkNeighbours(domain, **kwargs) 
    246      
    247247     
    248248    #get the name of the time axis in the coordinate reference system 
  • TI02-CSML/trunk/csml/API/ops_GridSeriesFeature.py

    r2587 r2590  
    239239    #perform the subset (note this included nearest neighbour searching, so may return a different set of kwargs 
    240240    pathToSubsetNetCDF, crs,frame, timeName, times, strTimes, caltype, axisorder,units, fulldata, fillvalue, kwargs=self._subsetGrid(**kwargs)  
     241 
    241242    latName=crs.axes[crs.latAxis] 
    242243    lonName=crs.axes[crs.lonAxis] 
  • TI02-CSML/trunk/csml/API/ops_ProfileSeriesFeature.py

    r2569 r2590  
    4646    self.getDomain()       
    4747     
    48     #if request doesn't match domain points find nearest neighbours 
    49     kwargs=csml.API.genSubset.checkNeighbours(self.domain, self.gridnames, **kwargs) 
    5048    #get the CRS from a  the  catalogue 
    5149    cat=csml.csmllibs.csmlcrs.CRSCatalogue() 
Note: See TracChangeset for help on using the changeset viewer.