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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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): 
Note: See TracChangeset for help on using the changeset viewer.