Ignore:
Timestamp:
30/05/07 15:08:38 (13 years ago)
Author:
domlowe
Message:

some CRS issues resolved

File:
1 edited

Legend:

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

    r2500 r2527  
    7070        crs.timeAxis=1 
    7171         
    72         #define unknown 3D CRS: 
    73         crs=CRSystem(srsName='ndg:crs:undefined2d', axes=['tba','tba']) 
     72        #define unknown 2D CRS: 
     73        crs=CRSystem(srsName='ndg:crs:undefined2d', axes=['tba','time']) 
    7474        self.pseudosystems['ndg:crs:undefined2d']=crs 
     75        crs.timeAxis=1 
    7576         
    7677        #define unknown 3D CRS: 
     
    112113            if srsName=='ndg:pseudoCRS': 
    113114                labellist=[] 
    114                 for label in labels.split(): 
    115                     labellist.append(label) 
     115                try: 
     116                    for label in labels.split(): 
     117                        labellist.append(label) 
     118                except: 
     119                        labellist=labels 
    116120            #need to find the right pseudosystem. 
    117121            #at the moment a simple test on number of dimensions works, but need to make this more generic. 
     
    191195                crs=self.systems[system] 
    192196                break 
    193         if match==1:  #couldn't find a match - generate a pseudo crs    
     197        if match==1:  #couldn't find a match - generate a pseudo crs             
    194198            for psystem in self.pseudosystems: 
    195                 if len(self.pseudosystems[psystem].axes) != len(crsMap): 
    196                     #wrong dimensionality, skip this crs 
    197                     continue 
    198                 axisorder={} 
    199                 indexes=[] 
    200                 for ax in crsMap: 
    201                     if ax in self.pseudosystems[psystem].axes: 
    202                         axisorder[ax]=crsMap.index(ax) 
    203                         indexes.append(crsMap.index(ax)) 
    204                               
    205                 if len(axisorder)== len(self.pseudosystems[psystem].axes) - 1: 
    206                     for ax in enumerate(crsMap): 
    207                         if ax[1] not in axisorder: 
    208                             for i in range(3): 
    209                                 if i not in indexes:                                 
    210                                     axisorder[axes[ax[0]]]=i 
    211                                     break           
     199                if len(self.pseudosystems[psystem].axes) == len(crsMap): 
     200                    axisorder={} 
     201                    indexes=[] 
     202                    for ax in crsMap: 
     203                        if ax in self.pseudosystems[psystem].axes: 
     204                            axisorder[ax]=crsMap.index(ax) 
     205                            indexes.append(crsMap.index(ax)) 
    212206                                 
    213                     axisLabels=''                   
    214                     orderedNewAxes=[]  
    215                     for ax in self.pseudosystems[psystem].axes: 
    216                         orderedNewAxes.append(ax) 
    217                     for key in axisorder: 
    218                         if key in orderedNewAxes: 
    219                             pass 
    220                         else: 
    221                             orderedNewAxes[orderedNewAxes.index('tba')] = key 
    222  
    223                     for ax in orderedNewAxes: 
    224                         axisLabels=axisLabels + ax + ' '          
    225                   
    226                     crs=CRSystem('ndg:pseudoCRS', orderedNewAxes) #this should be ordered list. 
    227                     crs.axisLabels=axisLabels 
    228                     crs.timeAxis=self.pseudosystems[psystem].timeAxis 
    229                     crs.latAxis=self.pseudosystems[psystem].latAxis 
    230                     crs.latAxis=self.pseudosystems[psystem].lonAxis 
     207                    if len(axisorder)== len(self.pseudosystems[psystem].axes) - 1: 
     208                        for ax in enumerate(crsMap): 
     209                            if ax[1] not in axisorder: 
     210                                for i in range(3): 
     211                                    if i not in indexes:                                 
     212                                        axisorder[axes[ax[0]]]=i 
     213                                        break           
     214                                     
     215                        axisLabels=''                   
     216                        orderedNewAxes=[]  
     217                        for ax in self.pseudosystems[psystem].axes: 
     218                            orderedNewAxes.append(ax) 
     219                        for key in axisorder: 
     220                            if key in orderedNewAxes: 
     221                                pass 
     222                            else: 
     223                                orderedNewAxes[orderedNewAxes.index('tba')] = key 
     224    
     225                        for ax in orderedNewAxes: 
     226                            axisLabels=axisLabels + ax + ' '          
     227                     
     228                        crs=CRSystem('ndg:pseudoCRS', orderedNewAxes) #this should be ordered list. 
     229                        crs.axisLabels=axisLabels 
     230                        crs.timeAxis=self.pseudosystems[psystem].timeAxis 
     231                        crs.latAxis=self.pseudosystems[psystem].latAxis 
     232                        crs.latAxis=self.pseudosystems[psystem].lonAxis 
     233                        return crs, axisorder 
    231234        return crs, axisorder 
    232235         
Note: See TracChangeset for help on using the changeset viewer.