Changeset 5332 for cows


Ignore:
Timestamp:
22/05/09 15:04:02 (10 years ago)
Author:
domlowe
Message:

fixed bug with extreme zooming in wms.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/service/imps/csmlbackend/wms_csmllayer.py

    r5308 r5332  
    372372    def __init__(self, layer, netcdf, bbox, width, height): 
    373373        #we know the axes are called latitude and longitude as the CSML code has written it: 
    374         v=netcdf(layer.title) 
     374        v=netcdf(layer.title)         
     375         
     376        #sometimes these dimensions get squeezed out so need to get hold of the dx, dy spacing before the variable is subsetted. 
     377        lat=v.getLatitude() 
     378        lon=v.getLongitude() 
     379        self.dx=abs(lon[0]-lon[1]) 
     380        self.dy=abs(lat[0]-lat[1]) 
     381         
     382        log.info('dx +%s'%self.dx) 
     383        log.info('dy +%s'%self.dy) 
     384         
     385        #now do the subset. 
    375386        tvar=v(latitude=(bbox[1], bbox[3]), longitude=(bbox[0],bbox[2]),squeeze=1) 
    376387        order=tvar.getOrder() 
     
    384395            self.iy=0 
    385396        lat = tvar.getLatitude() 
    386         lon = tvar.getLongitude()       
    387         self.x0=lon[0] 
    388         self.y0=lat[0] 
    389         self.dx=abs(lon[0]-lon[1]) 
    390         self.dy=abs(lat[0]-lat[1]) 
    391          
    392             
    393  
    394         self.nx=len(lon) 
    395         self.ny=len(lat) 
     397        lon = tvar.getLongitude()   
     398        if lon is not None: 
     399            self.x0=lon[0] 
     400            self.nx=len(lon) 
     401        else: #it's a single longitude value 
     402            self.x0=float(bbox[0]) 
     403            self.nx= 1 
     404         
     405        if lat is not None: 
     406            self.y0=lat[0] 
     407            self.ny=len(lat) 
     408        else: #it's a single latitude value 
     409            self.y0=float(bbox[1]) 
     410            self.ny= 1 
     411         
     412         
    396413        self.long_name=tvar.id  #TODO, get long name from feature 
    397414        self.units=tvar.units 
Note: See TracChangeset for help on using the changeset viewer.