Changeset 3045 for TI02-CSML


Ignore:
Timestamp:
23/11/07 14:40:57 (12 years ago)
Author:
domlowe
Message:

crs object now carries units of underlying data by default, carried through to csmlscan

Location:
TI02-CSML/trunk/csml/csmllibs
Files:
2 edited

Legend:

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

    r3006 r3045  
    11import string 
    2 import sys           
     2import sys      
     3import csml.csmllibs.csmlextra 
    34 
    45class CRSystem(object): 
     
    145146        except: 
    146147            return self.pseudosystems[srsName] 
    147         #try: 
    148             #if srsName not in ['ndg:crs:pseudoCRS','ndg:crs:undefined_xt','ndg:crs:undefined_lonlatz','ndg:crs:undefined_lonlatzt']: 
    149                 #return self.systems[srsName] 
    150         #except: 
    151             ##if srsName=='ndg:pseudoCRS': #pseudoCRS label kept in for now for legacy reasons 
    152             #if srsName in ['ndg:crs:pseudoCRS','ndg:crs:undefined_xt','ndg:crs:undefined_lonlatz','ndg:crs:undefined_lonlatzt']: 
    153                 #labellist=[] 
    154                 #try: 
    155                     #for label in labels.split(): 
    156                         #labellist.append(label) 
    157                 #except: 
    158                         #labellist=labels 
    159             ##need to find the right pseudosystem. 
    160             ##at the moment a simple test on number of dimensions works, but need to make this more generic. 
    161             #for psystem in self.pseudosystems:                 
    162                 #try: 
    163                     #if len(self.pseudosystems[psystem].axes) == len (labellist): 
    164                         #print 'TRUE' 
    165                         #return self.pseudosystems[psystem] 
    166                 #except: 
    167                     #print 'rejecting %s'%psystem 
    168                     #pass 
    169             #else: 
    170                 #return self.systems['ndg:crs:unknown'] 
    171148     
    172149    def getUnitType(self, unit): 
     
    203180            axes=knownCRSAxes 
    204181        crs =None 
    205         #if len(axes)==2: 
    206             #crs=self.systems['ndg:crs:unknown2d'] 
    207         #if len(axes)==3: 
    208             #crs=self.systems['ndg:crs:unknown3d'] 
    209         #elif len(axes)==4: 
    210             #crs=self.systems['ndg:crs:unknown4d'] 
    211         #else : 
    212             #crs=self.systems['ndg:crs:unknown'] 
    213182         
    214183        #this can be extended to accomodate more units        
     
    221190                unittype=self.getUnitType(unit)             
    222191                crsMap.append(unittype) 
    223              
     192   
    224193        match=1 
    225194        #now try and match up crsMap with known crsystems.         
     
    240209                    break 
    241210            if match == 0:  
    242                 crs=self.systems[system] 
     211                crs=self.systems[system]               
    243212                break 
    244213        if match==1:  #couldn't find a match - generate a pseudo crs             
     
    279248                        crs.latAxis=self.pseudosystems[psystem].latAxis 
    280249                        crs.latAxis=self.pseudosystems[psystem].lonAxis 
     250                        orderedunits=[] 
     251                        for a in crs.axes: 
     252                            orderedunits.append(units[axisorder[a]])      
     253                        crs.units=csml.csmllibs.csmlextra.stringify(orderedunits)                         
    281254                        return crs, axisorder 
     255        if crs.units is None: 
     256            orderedunits=[] 
     257            for a in crs.axes: 
     258                orderedunits.append(units[axisorder[a]])      
     259                crs.units=csml.csmllibs.csmlextra.stringify(orderedunits) 
    282260        return crs, axisorder 
    283261         
  • TI02-CSML/trunk/csml/csmllibs/csmlfeaturetypes.py

    r3033 r3045  
    312312                gsDomain.srsDimension=crs.srsDimension 
    313313                gsDomain.dimension=gsDomain.srsDimension 
     314                if crs.units is not None: 
     315                    gsDomain.uomLabels=crs.units 
     316                else: 
     317                    gsDomain.uomLabels="could not get units" 
    314318                aLabels='' 
    315319                for dim in dimNames: 
Note: See TracChangeset for help on using the changeset viewer.