Changeset 837


Ignore:
Timestamp:
26/04/06 14:53:33 (13 years ago)
Author:
domlowe
Message:

fixed problems with elementtree namespaces when scanning

Location:
TI02-CSML/trunk/Scanner
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/Scanner/commands.txt

    r627 r837  
    1414 
    1515 
    16  
     16python csmlscan.py -d /home/users/domlowe/CSML/Coapec/testfiles -o test.xml -t 't' GridSeriesFeature 
  • TI02-CSML/trunk/Scanner/csmllibs/__init__.py

    r758 r837  
    2020try: 
    2121    import Parser 
     22    import parser_extra 
    2223except: 
    2324    print 'Could not import CSML Parser module. Make sure the parser code is in ../newparser directory on the same level as ../Scanner directory.' 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlbuilder.py

    r758 r837  
    124124        self.strCSML= parseString(tostring(csml)).toprettyxml() 
    125125        #tidy up elementtree style namespaces 
    126         #TODO, where to keep this function? 
    127         #strCSML=removeInlineNS(strCSML) 
     126        self.strCSML=csmllibs.parser_extra.removeInlineNS(self.strCSML) 
    128127        #open file, write to it. 
    129128        f = open(self.outputfile, "w") 
  • TI02-CSML/trunk/Scanner/csmllibs/csmldataiface.py

    r57 r837  
    7373class NappyInterface(AbstractDI):        
    7474        # Data Interface for Nappy (NASA Ames Processing in Python) 
    75                  
     75     
    7676        def __init__(self): 
    7777                self.extractType='NASAAmesExtract' 
     
    250250                 
    251251class cdunifInterface(AbstractDI): 
    252         #Data Interface for cdunif (netcdf & pp formats & grib (not tested with grib) 
    253                                          
    254         def __init__(self): 
    255                 #these are just temporary values until we can determine whether the  
    256                 #file is netcdf pp or grib               
    257                 self.extractType='cdunifExtract' 
    258                 self.extractPrefix = '_cdunifextract_' 
    259                  
    260         def openFile(self, filename): 
    261                 self.file=cdms.open(filename) 
    262                 print 'cdunifopen ' + filename 
    263                  
    264                 #now we have the file name can properly determine extractType/Prefix 
    265                 fileExtension = str(filename)[-3:] 
    266                 if fileExtension == '.nc': 
    267                         self.extractType = 'NetCDFExtract' 
    268                         self.extractPrefix = '_ncextract_' 
    269                 elif fileExtension == '.pp': 
    270                         self.extractType  = 'PPExtract' 
    271                         self.extractPrefix = '_ppextract_' 
    272                 elif fileExtension == 'grb': 
    273                                 extractType = 'GRIBExtract'      
    274                                 extractPrefix = '_gribextract_' 
    275                  
    276         def getListOfAxes(self): 
    277                 axes=self.file.dimensions.keys() 
    278                 return axes 
    279          
    280         def getSizeOfAxis(self,axis): 
    281                 axisSize=self.file.dimensions[axis] 
    282                 return axisSize                          
    283          
    284         def getListofVariables(self): 
    285                 variableList=self.file.variables.keys() 
    286                 return variableList 
    287          
    288         def setAxis(self,axis): 
    289                 self.axisobj=self.file.getAxis(axis) 
    290                                                                                          
    291         def getAxisAttribute(self, att): 
    292                 attValue=self.axisobj.attributes[att] 
    293                 return attValue 
    294          
    295         def getTimeUnits(self): 
    296                 #this does the same as getAxisAttribute, but is a separate function as different formats handle time differently. 
    297                 return self.getAxisAttribute('units') 
    298                  
    299         def getDataForAxis(self): 
    300                 data = self.axisobj.getValue() 
    301                 return data 
    302          
    303         def setVariable(self,varname): 
    304                 self.varobj=self.file.variables[varname] 
    305                          
    306         def getVariableAxes(self): 
    307                 varAxesList=self.varobj.getAxisIds() 
    308                 return varAxesList 
    309          
    310         def getVariableAttribute(self,attName): 
    311                 attribValue = self.varobj.attName 
    312                 return attribValue 
    313          
    314         def getDataForVar(self): 
    315                 data = self.varobj.getValue() 
    316                 return data 
    317          
    318         def getArraySizeOfVar(self): 
    319         #iterates through all dimensions in variable to get array size i.e a 3x3x3 array would have a size of 27 
    320                 var = self.varobj 
    321                 size = var.shape 
    322                 varsize = 1 
    323                 for item in size: 
    324                         varsize = item *varsize 
    325                 return varsize 
    326          
    327         def getShapeOfVar(self): 
    328                 varShape=self.varobj.shape 
    329                 return varShape 
    330          
    331         def getLowLimits(self): 
    332                 dimNames = self.varobj.getAxisIds() 
    333                 lowlims = "" 
    334                 for i in range (1, len(dimNames)): 
    335                         #for now, assume low limit is always of form 1 1 1 ..  
    336                         lowlims =lowlims + str(1)  +' ' 
    337                 return lowlims 
    338                  
    339         def getHighLimits(self): 
    340                 dimNames = self.varobj.getAxisIds() 
    341                 highlims = "" 
    342                 for i in range (1, len(dimNames)): 
    343                         dimValue = self.file.dimensions[dimNames[i]]  
    344                         highlims =highlims  + str(dimValue) +' ' 
    345                 return highlims  
    346                  
    347  
    348  
    349          
     252    #Data Interface for cdunif (netcdf & pp formats & grib (not tested with grib) 
     253     
     254    def __init__(self): 
     255        #these are just temporary values until we can determine whether the  
     256        #file is netcdf pp or grib               
     257        self.extractType='cdunifExtract' 
     258        self.extractPrefix = '_cdunifextract_' 
     259        print "hello" 
     260         
     261    def openFile(self, filename): 
     262        self.file=cdms.open(filename) 
     263        print 'cdunifopen ' + filename 
     264         
     265        #now we have the file name can properly determine extractType/Prefix 
     266        fileExtension = str(filename)[-3:] 
     267        if fileExtension == '.nc': 
     268            self.extractType = 'NetCDFExtract' 
     269            self.extractPrefix = '_ncextract_' 
     270        elif fileExtension == '.pp': 
     271            self.extractType  = 'PPExtract' 
     272            self.extractPrefix = '_ppextract_' 
     273        elif fileExtension == '.ctl': 
     274            self.extractType = 'GRIBExtract' 
     275            self.extractPrefix = '_gribextract_' 
     276 
     277    def getListOfAxes(self): 
     278        axes=self.file.dimensions.keys() 
     279        return axes 
     280     
     281    def getSizeOfAxis(self,axis): 
     282        axisSize=self.file.dimensions[axis] 
     283        return axisSize                           
     284     
     285    def getListofVariables(self): 
     286        variableList=self.file.variables.keys() 
     287        return variableList 
     288     
     289    def setAxis(self,axis): 
     290        self.axisobj=self.file.getAxis(axis) 
     291                                                                         
     292    def getAxisAttribute(self, att): 
     293        attValue=self.axisobj.attributes[att] 
     294        return attValue 
     295         
     296    def getTimeUnits(self): 
     297        #this does the same as getAxisAttribute, but is a separate function as different formats handle time differently. 
     298        return self.getAxisAttribute('units') 
     299                 
     300    def getDataForAxis(self): 
     301        data = self.axisobj.getValue() 
     302        return data 
     303 
     304    def setVariable(self,varname): 
     305        self.varobj=self.file.variables[varname] 
     306     
     307    def getVariableAxes(self): 
     308        varAxesList=self.varobj.getAxisIds() 
     309        return varAxesList 
     310 
     311    def getVariableAttribute(self,attName): 
     312        attribValue = self.varobj.attName 
     313        return attribValue 
     314 
     315    def getDataForVar(self): 
     316        data = self.varobj.getValue() 
     317        return data 
     318 
     319    def getArraySizeOfVar(self): 
     320    #iterates through all dimensions in variable to get array size i.e a 3x3x3 array would have a size of 27 
     321        var = self.varobj 
     322        size = var.shape 
     323        varsize = 1 
     324        for item in size: 
     325            varsize = item *varsize 
     326        return varsize 
     327     
     328    def getShapeOfVar(self): 
     329        varShape=self.varobj.shape 
     330        return varShape 
     331     
     332    def getLowLimits(self): 
     333        dimNames = self.varobj.getAxisIds() 
     334        lowlims = "" 
     335        for i in range (1, len(dimNames)): 
     336            #for now, assume low limit is always of form 1 1 1 ..  
     337            lowlims =lowlims + str(1)  +' ' 
     338        return lowlims 
     339         
     340    def getHighLimits(self): 
     341        dimNames = self.varobj.getAxisIds() 
     342        highlims = "" 
     343        for i in range (1, len(dimNames)): 
     344            dimValue = self.file.dimensions[dimNames[i]]  
     345            highlims =highlims  + str(dimValue) +' ' 
     346        return highlims  
     347         
     348     
     349 
     350         
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfeaturetypes.py

    r779 r837  
    174174                         #(axisid stored in dictionary = current filename + variable name) 
    175175                        axisid=repfilename+dimName 
    176                         ord.axisValues=self.fileExtractDictionary[axisid] 
     176                        ord.axisValues='#'+self.fileExtractDictionary[axisid] 
    177177                         
    178178                        grid.ordinates.append(ord) 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfileextracts.py

    r771 r837  
    3636            self.extractType = DI.extractType 
    3737            self.extractPrefix = str(fileid)+'_'+DI.extractPrefix 
     38            print dir(DI) 
    3839            allDimNames=DI.getListOfAxes() 
    3940            numDomains=len(allDimNames) 
     
    4950                if self.extractType=='PPExtract': 
    5051                    arrayDescriptor=csmllibs.Parser.PPExtract() 
     52                print self.extractType 
    5153                arrayDescriptor.id=str(self.extractPrefix+allDimNames[j]) 
    5254     
Note: See TracChangeset for help on using the changeset viewer.