Changeset 2527 for TI02-CSML


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

some CRS issues resolved

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

Legend:

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

    r2526 r2527  
    241241    cat=csml.csmllibs.csmlcrs.CRSCatalogue() 
    242242    if type(feature) == csml.parser.GridSeriesFeature: 
    243         crs=cat.getCRS(feature.value.gridSeriesDomain.srsName,feature.value.gridSeriesDomain.axisLabels) 
     243        crs=cat.getCRS(feature.value.gridSeriesDomain.srsName,labels=feature.value.gridSeriesDomain.axisLabels) 
    244244        gridordinates = feature.value.gridSeriesDomain.coordTransformTable.gridOrdinates 
    245245    elif type(feature) == csml.parser.ProfileSeriesFeature: 
    246         crs=cat.getCRS(feature.value.profileSeriesDomain.srsName) 
     246        crs=cat.getCRS(feature.value.profileSeriesDomain.srsName,labels = feature.value.profileSeriesDomain.axisLabels) 
    247247        gridordinates = feature.value.profileSeriesDomain.coordTransformTable.gridOrdinates 
     248     
    248249    timeName=crs.axes[crs.timeAxis] 
    249250    #Find the original time name (timeAxis) for the file. 
  • TI02-CSML/trunk/csml/API/ops_GridSeriesFeature.py

    r2526 r2527  
    219219    cat = csml.csmllibs.csmlcrs.CRSCatalogue() 
    220220    crsInfo=cat.determineCRS(knownCRSAxes=axes)     
    221     crs=cat.getCRS(crsInfo[0].srsName) 
     221    crs=cat.getCRS(crsInfo[0].srsName, labels=axes) 
    222222     
    223223    newdomain.coordTransformTable=cTT     
  • TI02-CSML/trunk/csml/API/ops_ProfileSeriesFeature.py

    r2526 r2527  
    5050    #get the CRS from a  the  catalogue 
    5151    cat=csml.csmllibs.csmlcrs.CRSCatalogue() 
    52     crs=cat.getCRS(self.value.profileSeriesDomain.srsName 
     52    crs=cat.getCRS(self.value.profileSeriesDomain.srsName, labels = self.value.profileSeriesDomain.axisLabels 
    5353     
    5454    #non-feature specific setup code, mainly handles the time dimension/calendar 
  • 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         
  • TI02-CSML/trunk/csml/csmllibs/netCDFWriter.py

    r2499 r2527  
    4949    def addVariable(self,data, variableName,axesList, fillvalue,  **kwargs):         
    5050        #creates a new variable containing data with named attributes from **kwargs 
     51         
    5152        dataarray=MV.array(data) 
    5253        dataarray.id=variableName 
     
    6566            axesList=newaxesList 
    6667        if hasattr(self, 'axes'): 
    67             #sys.exit() 
    6868            for axis in axesList: 
    6969                for ax in self.axes: 
Note: See TracChangeset for help on using the changeset viewer.