Changeset 2212 for TI02-CSML/trunk/csml


Ignore:
Timestamp:
27/02/07 10:53:02 (13 years ago)
Author:
domlowe
Message:

bounding box working for profileseries

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

Legend:

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

    r2061 r2212  
    3434        #using the methods supplied. 
    3535        #when finished building CSML objects call the getContents method to return the document.        
    36  
    3736        '''containerContents contains the CSML Document (first item) and then any NetCDF files that are to be delivered with the document ''' 
    3837        self.containerContents=[] 
  • TI02-CSML/trunk/csml/csmllibs/csmlbuilder.py

    r2176 r2212  
    107107        self.ds=thefeatures.ds_element 
    108108        self.featureCollection = thefeatures.featureCollection 
     109        self.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
    109110        try: 
    110111            self.featureCollection =csml.csmllibs.csmlextra.addEnvelope(self.featureCollection, self.ffmap)         
    111112        except: 
    112             pass  #addEnvelope needs to work for different feature types 
     113            print 'could not add envelope bounding box' 
     114          #addEnvelope needs to work for different feature types 
    113115        self.ds.featureCollection=self.featureCollection 
    114116 
  • TI02-CSML/trunk/csml/csmllibs/csmlextra.py

    r2176 r2212  
    126126    for feature in fc.featureMembers: 
    127127        if type(feature) is csml.parser.GridSeriesFeature: 
    128              
    129128            tmax=None 
    130129            tmin=None 
     
    141140                    if tnewmax > tmax: 
    142141                        tmax=tnewmax                      
    143   
     142        if type(feature) is csml.parser.ProfileSeriesFeature: 
     143            tmax=None 
     144            tmin=None 
     145            for ord in feature.value.profileSeriesDomain.coordTransformTable.gridOrdinates: 
     146                if ord.coordAxisLabel.CONTENT==timename: 
     147                    tnewmin= strToDate(ord.coordAxisValues.coordinateList.CONTENT.split()[0].split('T')[0]) 
     148                    tnewmax=strToDate( ord.coordAxisValues.coordinateList.CONTENT.split()[len(ord.coordAxisValues.coordinateList.CONTENT.split())-1].split('T')[0]) 
     149                    if tmin ==None: 
     150                        tmin=tnewmin 
     151                    if tmax == None: 
     152                        tmax=tnewmax 
     153                    if tnewmin < tmin: 
     154                        tmin=tnewmin                     
     155                    if tnewmax > tmax: 
     156                        tmax=tnewmax                      
     157                         
    144158    for repfile in ffmap.getRepresentativeFiles(): 
    145159        minlon=None 
     
    157171            minlon=str(min(vals)) 
    158172            maxlon= str(max(vals)) 
    159         if latname in tmpDims: 
    160             DI.setAxis(latname) 
    161             vals=DI.getDataForAxis() 
    162             minlat=str(min(vals)) 
    163             maxlat= str(max(vals))                           
     173            if latname in tmpDims: 
     174                DI.setAxis(latname) 
     175                vals=DI.getDataForAxis() 
     176                minlat=str(min(vals)) 
     177                maxlat= str(max(vals))                           
     178        else: 
     179            tmpVars=DI.getListofVariables() 
     180            if lonname in tmpVars: 
     181                DI.setVariable(lonname) 
     182                vals=DI.getDataForVar() 
     183                minlon=str(min(vals)) 
     184                maxlon= str(max(vals)) 
     185                if latname in tmpVars: 
     186                    DI.setVariable(latname) 
     187                    vals=DI.getDataForVar() 
     188                    minlat=str(min(vals)) 
     189                    maxlat= str(max(vals)) 
     190             
    164191        env=csml.parser.EnvelopeWithTimePeriod() 
    165192        env.lowerCorner=csml.parser.csString(minlon + ' ' + minlat) 
Note: See TracChangeset for help on using the changeset viewer.