Changeset 3131


Ignore:
Timestamp:
10/12/07 12:55:33 (12 years ago)
Author:
domlowe
Message:

individual bounding boxes extended to edge of grid cells - not done yet for dataset bounding box

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

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/csmllibs/csmlbuilder.py

    r3065 r3131  
    114114        self.ds=thefeatures.ds_element 
    115115        self.featureCollection = thefeatures.featureCollection 
    116         try: 
    117             self.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
    118         except: 
    119             pass 
     116        #try: 
     117            #self.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
     118        #except: 
     119            #pass 
    120120        setattr(self.featureCollection, 'id', csml.csmllibs.csmlextra.getRandomID()) 
    121121         
    122122        self.ds.featureCollection=self.featureCollection 
    123123                 
    124         try: 
    125             self.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
    126         except: 
    127             print 'could not add envelope bounding box' 
     124 
    128125          #addEnvelope needs to work for different feature types 
    129126        self.ds.featureCollection=self.featureCollection 
     
    134131         
    135132    def insertBoundingBoxes(self): 
    136         self.ds.featureCollection =csml.csmllibs.csmlextra.addBoundingBoxes(self.ds)                 
     133        self.ds.featureCollection =csml.csmllibs.csmlextra.addBoundingBoxes(self.ds)  
     134        try: 
     135            self.ds.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
     136        except: 
     137            print 'could not add envelope bounding box'                
    137138         
    138139    def saveFile(self): 
  • TI02-CSML/trunk/csml/csmllibs/csmlextra.py

    r2947 r3131  
    196196                        data=fileextract.getData()[0].tolist() 
    197197                    data.sort() 
    198                     minval=data[0] 
    199                     maxval=data[len(data)-1] 
     198                    #extend the bounding box to take account of cell bounds 
     199                    minval,maxval=_getMaxMinBounds(ord.coordAxisLabel.CONTENT,data) 
    200200                    limits[ord.coordAxisLabel.CONTENT]=[minval,maxval] 
    201201        feature.boundedBy=_getEnvelopeFromLimits(limits, axislabels) 
    202202    return ds.featureCollection 
    203203 
    204  
    205  
    206  
     204def _getMaxMinBounds(axisname,data): 
     205    if len(data) > 1:                    
     206        halfcell=abs(0.5*(abs(data[1])-abs(data[0]))) 
     207    else: 
     208        halfcell=0 
     209    minval=data[0] - halfcell 
     210    maxval=data[len(data)-1] + halfcell                     
     211    if axisname=='longitude': 
     212        #deal with the case where the grid point is 0, so the grid goes from -x to +x 
     213        #note this only works if the grid is 0-360 
     214        if minval < 0: 
     215            if maxval - minval ==360.0: 
     216                minval=0.0 
     217                maxval=360.0 
     218    if axisname=='latitude': 
     219        #deal with latitudes 
     220        if minval < -90: 
     221            minval=-90.0 
     222        if maxval > 90: 
     223            maxval=90.0 
     224    return minval,maxval 
    207225 
    208226def addEnvelope(fc, ffmap): 
  • TI02-CSML/trunk/csml/tests/test_trajectory.txt

    r3116 r3131  
    2727        ['output/mytrajectory.nc'] 
    2828 
    29 ###################################### 
    3029Now check the output netcdf: 
    3130        >>> import cdms 
    32         >>> f=cdms.open('output/mypointseries.nc') 
     31        >>> f=cdms.open('output/mytrajectory.nc') 
    3332        >>> f.getVariables() 
    3433        [<Variable: ASLVZZ01, file: output/mypointseries.nc, shape: (4,)>] 
Note: See TracChangeset for help on using the changeset viewer.