Changeset 2904


Ignore:
Timestamp:
26/09/07 15:31:48 (12 years ago)
Author:
domlowe
Message:

Improved CRS support. Not complete

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

Legend:

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

    r2814 r2904  
    2828        self.pseudosystems={} 
    2929         
    30         # define WGS84 CRS:         
     30        # define WGS84 CRS:        #time?  
    3131        crs=CRSystem(srsName='WGS84', axes =['time', 'latitude','longitude']) 
    3232        crs.lonAxis=2 
     
    3434        crs.timeAxis=0 
    3535        self.systems['WGS84']=crs 
     36         
     37        # define WGS84 CRS:        #no time?  
     38        #crs=CRSystem(srsName='WGS84', axes =['longitude','latitude']) 
     39        #crs.lonAxis=0 
     40        #crs.latAxis= 1 
     41        ##crs.timeAxis=0 
     42        #self.systems['WGS84']=crs 
    3643         
    3744         
     
    5259         
    5360        # define lon lat pressure time CRS:         
    54         crs=CRSystem(srsName='ndg:crs:xypt', axes =['longitude', 'latitude','pressure','time']) 
     61        crs=CRSystem(srsName='ndg:crs:lonlatpt', axes =['longitude', 'latitude','pressure','time']) 
    5562        crs.lonAxis=0 
    5663        crs.latAxis=1 
    5764        crs.timeAxis=3 
    58         self.systems['ndg:crs:xypt']=crs 
     65        self.systems['ndg:crs:lonlatpt']=crs 
    5966         
    6067        # define lon lat height time CRS:         
    61         crs=CRSystem(srsName='ndg:crs:xyht', axes =['longitude', 'latitude','height','time']) 
     68        crs=CRSystem(srsName='ndg:crs:lonlatht', axes =['longitude', 'latitude','height','time']) 
    6269        crs.lonAxis=0 
    6370        crs.latAxis=1 
    6471        crs.timeAxis=3 
    65         self.systems['ndg:crs:xyht']=crs 
     72        self.systems['ndg:crs:lonlatht']=crs 
    6673         
    6774        # define lon lat time CRS: 
    68         crs=CRSystem(srsName='ndg:crs:xyt', axes =['longitude', 'latitude','time']) 
    69         self.systems['ndg:crs:xyt']=crs 
     75        crs=CRSystem(srsName='ndg:crs:lonlatt', axes =['longitude', 'latitude','time']) 
     76        self.systems['ndg:crs:lonlatt']=crs 
    7077        crs.lonAxis=0 
    7178        crs.latAxis=1 
     
    7380         
    7481        # define lon lat height CRS: 
    75         crs=CRSystem(srsName='ndg:crs:xyh', axes =['longitude', 'latitude','height']) 
    76         self.systems['ndg:crs:xyh']=crs 
     82        crs=CRSystem(srsName='ndg:crs:lonlath', axes =['longitude', 'latitude','height']) 
     83        self.systems['ndg:crs:lonlath']=crs 
    7784        crs.lonAxis=0 
    7885        crs.latAxis=1 
     
    8895         
    8996        #define unknown 2D CRS: 
    90         crs=CRSystem(srsName='ndg:crs:undefined2d', axes=['tba','time']) 
    91         self.pseudosystems['ndg:crs:undefined2d']=crs 
     97        crs=CRSystem(srsName='ndg:crs:undefined_xt', axes=['tba','time']) 
     98        self.pseudosystems['ndg:crs:undefined_xt']=crs 
    9299        crs.timeAxis=1 
    93100        crs.lonAxis=None 
     
    95102         
    96103        #define unknown 3D CRS: 
    97         crs=CRSystem(srsName='ndg:crs:undefinedll3d', axes=['longitude','latitude','tba']) 
    98         self.pseudosystems['ndg:crs:undefinedll3d']=crs 
     104        crs=CRSystem(srsName='ndg:crs:undefined_lonlatz', axes=['longitude','latitude','tba']) 
     105        self.pseudosystems['ndg:crs:undefined_lonlatz']=crs 
    99106        crs.lonAxis=0 
    100107        crs.latAxis=1 
     
    102109         
    103110        #define unknown 4D CRS: 
    104         crs=CRSystem(srsName='ndg:crs:undefinedllt4d', axes=['longitude','latitude','tba','time']) 
    105         self.pseudosystems['ndg:crs:undefinedllt4d']=crs 
     111        crs=CRSystem(srsName='ndg:crs:undefined_lonlatzt', axes=['longitude','latitude','tba','time']) 
     112        self.pseudosystems['ndg:crs:undefined_lonlatzt']=crs 
    106113        crs.lonAxis=0 
    107114        crs.latAxis=1 
     
    128135        #given the name of a CRS e.g. 'ndg:crs:xypt' return the CRSystem object  
    129136        #labels are only required if it is a ndg:pseudoCRS 
     137        print 'INCOMING:' 
     138        print srsName 
     139        print labels 
    130140        try: 
    131141            return self.systems[srsName] 
    132142        except: 
    133             if srsName=='ndg:pseudoCRS': 
    134                 labellist=[] 
    135                 try: 
    136                     for label in labels.split(): 
    137                         labellist.append(label) 
    138                 except: 
    139                         labellist=labels 
    140             #need to find the right pseudosystem. 
    141             #at the moment a simple test on number of dimensions works, but need to make this more generic. 
    142             for psystem in self.pseudosystems:                 
    143                 try: 
    144                     if len(self.pseudosystems[psystem].axes) == len (labellist): 
    145                         return self.pseudosystems[psystem] 
    146                 except: 
    147                     print 'rejecting %s'%psystem 
    148                     pass 
    149             else: 
    150                 return self.systems['ndg:crs:unknown'] 
     143            return self.pseudosystems[srsName] 
     144        #try: 
     145            #if srsName not in ['ndg:crs:pseudoCRS','ndg:crs:undefined_xt','ndg:crs:undefined_lonlatz','ndg:crs:undefined_lonlatzt']: 
     146                #return self.systems[srsName] 
     147        #except: 
     148            ##if srsName=='ndg:pseudoCRS': #pseudoCRS label kept in for now for legacy reasons 
     149            #if srsName in ['ndg:crs:pseudoCRS','ndg:crs:undefined_xt','ndg:crs:undefined_lonlatz','ndg:crs:undefined_lonlatzt']: 
     150                #labellist=[] 
     151                #try: 
     152                    #for label in labels.split(): 
     153                        #labellist.append(label) 
     154                #except: 
     155                        #labellist=labels 
     156            ##need to find the right pseudosystem. 
     157            ##at the moment a simple test on number of dimensions works, but need to make this more generic. 
     158            #for psystem in self.pseudosystems:                 
     159                #try: 
     160                    #if len(self.pseudosystems[psystem].axes) == len (labellist): 
     161                        #print 'TRUE' 
     162                        #return self.pseudosystems[psystem] 
     163                #except: 
     164                    #print 'rejecting %s'%psystem 
     165                    #pass 
     166            #else: 
     167                #return self.systems['ndg:crs:unknown'] 
    151168     
    152169    def getUnitType(self, unit): 
     
    250267                            axisLabels=axisLabels + ax + ' '          
    251268                     
    252                         crs=CRSystem('ndg:pseudoCRS', orderedNewAxes) #this should be ordered list. 
     269                        #crs=CRSystem('ndg:pseudoCRS', orderedNewAxes) #this should be ordered list. 
     270                        crs=CRSystem(psystem, orderedNewAxes) #this should be ordered list. 
    253271                        crs.axisLabels=axisLabels 
    254272                        crs.timeAxis=self.pseudosystems[psystem].timeAxis 
  • TI02-CSML/trunk/csml/csmllibs/csmlextra.py

    r2741 r2904  
    143143    latname='latitude' 
    144144    timename='time' 
    145     srs='ndg:crs:xyt' 
     145    srs='WGS84' 
    146146    tnewmin=None 
    147147    tnewmax=None 
     
    221221        env.beginPosition=csml.parser.csString(tmin) 
    222222        env.endPosition= csml.parser.csString(tmax) 
    223         env.srsName='srs tba' 
     223        env.srsName=srs 
    224224        if aggregator is None: 
    225225            aggregator=EnvelopeAggregator(env) 
Note: See TracChangeset for help on using the changeset viewer.