Changeset 2316 for TI02-CSML


Ignore:
Timestamp:
23/03/07 14:11:32 (13 years ago)
Author:
domlowe
Message:

pseudo crs code, used when cannot determine obvious crs for feature

File:
1 edited

Legend:

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

    r2313 r2316  
    124124        Alternatively, supply with a list of knownCRSAxes names (e.g. 'latitude', 'longitude', 'height') to get the right crs object         
    125125        ''' 
    126                         
     126        import sys                
    127127        axisorder=[] 
     128 
    128129        if knownCRSAxes is not None: 
    129130            axes=knownCRSAxes 
     
    147148                unittype=self.getUnitType(unit)             
    148149                crsMap.append(unittype) 
    149             print '-------' 
    150             print axes 
    151             print crsMap 
    152             print '-------' 
    153150             
    154151         
     
    172169                crs=self.systems[system] 
    173170                break 
    174         if match==1:  #couldn't find a match - generate a psuedo crs     
     171        if match==1:  #couldn't find a match - generate a psuedo crs    
    175172            for psystem in self.pseudosystems: 
    176173                if len(self.pseudosystems[psystem].axes) != len(crsMap): 
     
    183180                        axisorder[ax]=crsMap.index(ax) 
    184181                        indexes.append(crsMap.index(ax)) 
    185                 print 'axorder %s'%axisorder 
    186                 print 'crsmap %s'%crsMap 
    187                 print 'system %s'%self.pseudosystems[psystem].axes 
    188                 ##############################this bit is broken############################ 
     182                              
    189183                if len(axisorder)== len(self.pseudosystems[psystem].axes) - 1: 
    190                     for ax in crsMap: 
    191                         if ax not in axisorder: 
     184                    for ax in enumerate(crsMap): 
     185                        if ax[1] not in axisorder: 
    192186                            for i in range(3): 
    193                                 if i not in indexes: 
    194                                     axisorder[ax]=i 
     187                                if i not in indexes:                                 
     188                                    axisorder[axes[ax[0]]]=i 
    195189                                    break           
    196                     
    197                     newaxes={} 
    198                     axisLabels='' 
    199                     print 'axisorder now %s'%axisorder 
    200                     for ax in axisorder: 
    201                         if ax in crsMap: 
    202                             print 'yes' 
    203                             unitpos = crsMap.index(ax) 
    204                             axisname=axes[unitpos] 
    205                             newaxes[axisname]=unitpos 
    206                     print 'newaxes %s'%newaxes 
    207                     for ax in newaxes: 
    208                         axisLabels=axisLabels + ax + ' '        
    209                  #######################################################################    
    210                     crs=CRSystem('ndg:psuedoCRS', axes) 
     190                                 
     191                    axisLabels=''                   
     192                    orderedNewAxes=[]  
     193                    for ax in self.pseudosystems[psystem].axes: 
     194                        orderedNewAxes.append(ax) 
     195                    for key in axisorder: 
     196                        if key in orderedNewAxes: 
     197                            pass 
     198                        else: 
     199                            orderedNewAxes[orderedNewAxes.index('tba')] = key 
     200 
     201                    for ax in orderedNewAxes: 
     202                        axisLabels=axisLabels + ax + ' '          
     203                  
     204                    crs=CRSystem('ndg:psuedoCRS', orderedNewAxes) #this should be ordered list. 
    211205                    crs.axisLabels=axisLabels 
    212206                    crs.timeAxis=self.pseudosystems[psystem].timeAxis 
    213207                    crs.latAxis=self.pseudosystems[psystem].latAxis 
    214208                    crs.latAxis=self.pseudosystems[psystem].lonAxis 
    215         print 'labels %s'%crs.axisLabels 
    216209        return crs, axisorder 
    217210         
     
    234227    n=0 
    235228    #test each definition in dictionary 
     229         
    236230    for key in crsdictionary: 
    237231        n=n+1 
    238232        print '\n TEST %d'%n 
    239233        print '*************************************' 
    240        #make list from string. 
     234        #make list from string. 
    241235        axs=[] 
    242236        for item in key.split(): 
    243237            axs.append(item) 
     238        axs=eval(key) 
    244239        uns=crsdictionary[key] 
    245240        print 'AXES: %s'%axs 
    246241        print 'UNITS: %s'%uns 
     242        print '----------------------------' 
    247243        crs, axisorder= cat.determineCRS(axes=axs, units=uns) 
    248244        #print 'CRS: %s'%crs.srsName 
    249245        print 'ORDER:  %s'%axisorder 
    250         #print 'axis order =%s'%axisorder 
     246        print 'LABELS: %s'%crs.axisLabels 
     247        print 'CRS AXES: %s'%crs.axes 
    251248        labels='' 
    252249         
    253         #print axes 
    254         # ['t', 'ht', 'latitude_1', 'longitude_1'] 
    255         #print crs.axes 
    256          # ['Lon', 'Lat', 'Pressure', 'Time'] 
    257         #print axisorder 
    258         # [3, 2, 1, 0] 
    259250         
    260251        for axis in axes: 
     
    267258            #print '<GridOrdinate>' 
    268259            #unit=units[axes.index(axis)] 
    269            # print '     <coordAxisLabel>%s</coordAxisLabel>'%crs.axes[axisorder[axes.index(axis)]] 
    270           print '     <gridAxesSpanned>%s</gridAxesSpanned>'%axis 
    271          #   print '</GridOrdinate>' 
     260            #print '     <coordAxisLabel>%s</coordAxisLabel>'%crs.axes[axisorder[axes.index(axis)]] 
     261            #print '     <gridAxesSpanned>%s</gridAxesSpanned>'%axis 
     262            #print '</GridOrdinate>' 
    272263        #print '</GridSeriesDomain>' 
    273264         
    274         print '**************************************' 
     265        #print '**************************************' 
    275266   #test getting CRS by name: 
    276267    #print 'getting ndg:crs:xypt by name' 
Note: See TracChangeset for help on using the changeset viewer.