Changeset 1899


Ignore:
Timestamp:
20/12/06 10:17:35 (13 years ago)
Author:
domlowe
Message:

parameter, and AggregatedArray? implemented in scanner. Also changes to AssociationAttributeGroup in parser

Location:
TI02-CSML/branches/CSML2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/branches/CSML2/csmllibs/csmlextra.py

    r1580 r1899  
    3333# a couple of string cleaning functions: 
    3434#   don't think these are used now 
    35 # def cleanString1(messystring): 
    36 #       #removes outer brackets and changes commas to spaces 
    37 #       cleanstring = messystring[1:-1] 
    38 #       cleanstring = cleanstring.replace(',',' ') 
    39 #       #strip off first (time) dimension. 
    40 #       #note, this might need rethinking for other datasets 
    41 #       cleanstring = cleanstring[3:] 
    42 #       return cleanstring 
     35def cleanString1(messystring): 
     36        #removes outer brackets and changes commas to spaces 
     37        cleanstring = messystring[1:-1] 
     38        cleanstring = cleanstring.replace(',',' ') 
     39        #strip off first (time) dimension. 
     40        #note, this might need rethinking for other datasets 
     41        cleanstring = cleanstring[3:] 
     42        return cleanstring 
    4343#        
    4444def cleanString(messystring): 
  • TI02-CSML/branches/CSML2/csmllibs/csmlfeaturetypes.py

    r1897 r1899  
    121121                #and an ordinate element 
    122122                axes=' ' 
    123                 for i in range (len(dimNames)): 
    124                     i=i+1 
    125                     axisname ='dim'+str(i) 
     123                for j in range (len(dimNames)): 
     124                    j=j+1 
     125                    axisname ='dim'+str(j) 
    126126                    axes =axes + axisname + ' ' 
    127127                gsDomain.axisLabels=cp.csString(axes) 
     
    163163                mr =csml.csmllibs.csmlextra.getMappingRule(len(dimNames)) 
    164164                gsCoverage.coverageFunction=cp.csString(mr) 
    165                 gsFeature.value=gsCoverage 
    166165                 
    167166                ##RANGESET 
    168                 #arrSz = DI.getArraySizeOfVar() 
    169                 #try: 
    170                     #strUom = DI.getVariableAttribute('units') 
    171                 #except AttributeError: 
    172                     ## if units attribute doesn't exist: 
    173                     #strUom ="dimensionless or units not determined" 
    174                 #rs=csml.parser.RangeSet() 
    175                 #if self.valuestorage=='inline': 
    176                     ##TO DO, store the rangeset inline - use Datablock class??? 
    177                     #pass  
    178                 #else: 
    179                     ##store the rangeSet as an aggregatedArray 
    180                     #aa=csml.parser.AggregatedArray() 
    181                     #aa.arraySize=[] 
     167                rs=csml.parser.RangeSet() 
     168                arrSz = DI.getArraySizeOfVar() 
     169                try: 
     170                    strUom = DI.getVariableAttribute('units') 
     171                except AttributeError: 
     172                    # if units attribute doesn't exist: 
     173                    strUom ="dimensionless or units not determined" 
     174                if self.valuestorage=='inline': 
     175                    #TO DO, store the rangeset inline - use Datablock class??? 
     176                    pass 
     177                else: 
     178                    #store the rangeSet as an aggregatedArray 
     179                    aa=cp.AggregatedArray() 
     180                    aa.arraySize=[] 
    182181                    #aa.arraySize.append(arrSz) 
    183182                    #aa.uom=strUom 
    184                     #aa.aggType='new' #can it be anything else? 
    185                     #aa.aggIndex='1' 
    186                     ##FileExtract (fe) element will be NetCDF/GRIB/PPExtract element (As defined earlier in ExtractType) 
    187                     #self.extractType= DI.extractType 
    188                     #fe = self._getCorrectExtractType() 
    189                     #varSize=DI.getShapeOfVar() 
    190                     #fe.arraySize=varSize 
    191                     #fe.fileName=self.filesinDir 
    192                     #fe.variableName=allVarNames[i] 
    193                     #aa.component=[fe] 
    194                     #rs.aggregatedArray=aa 
    195                 #GridSeriesFeature_element.rangeSet=rs 
    196                  
    197                  
    198                 ##DOMAIN COMPLEMENT 
    199                 #grid.srsName='urn:EPSG:GeographicCRS:4326' 
    200                 #numSpDims=len(varSize) -1  
    201                 #grid.srsDimension=str(numSpDims) 
    202                 #grid.dimension=str(numSpDims) 
    203                 #ge =csml.parser.GridEnvelope(low=DI.getLowLimits(), high=DI.getHighLimits()) 
    204                 #grid.limits=ge 
    205                 ##add an axisName element(s) for  each spatial dimension. 
    206                 ## and an ordinate element 
    207                 #axes=[] 
    208                 #for i in range (1, len(dimNames)): 
    209                     ##axisNames 
    210                     #axisname ='dim'+str(i) 
    211                     #axes.append(axisname) 
    212                     ##ordinates 
    213                     #grid.ordinates=[] 
    214                     #for i in range (1, len(dimNames)): 
    215                         #ord=csml.parser.GridOrdinateDescription() 
    216                         #ord.gridAxesSpanned='dim' + str(i) 
    217                         #ord.sequenceRule=csml.csmllibs.csmlextra.getSeqRule(len(dimNames)) 
    218                         #dimName=dimNames[len(dimNames)-i] 
    219                         #ord.definesAxis=dimName 
    220                         ##look up file extract name in dictionary 
    221                         ##(axisid stored in dictionary = current filename + variable name) 
    222                         #axisid=self.repfilename+dimName 
    223                         #if self.spatialstorage=='fileextract': 
    224                             ##refer to extract 
    225                             #ord.axisValues='#'+self.fileExtractDictionary[axisid] 
    226                         #else: 
    227                             ##store inline 
    228                              #DI.setAxis(dimName) 
    229                              #ord.axisValues=csml.csmllibs.csmlextra.cleanString(str(DI.getDataForAxis())) 
    230                         #grid.ordinates.append(ord) 
    231                     #grid.axisNames=axes 
    232                 #gsDomain.domainComplement=grid 
    233                 #GridSeriesFeature_element.domain=gsDomain 
    234                 #GridSeriesFeature_element.parameter=csml.parser.Phenomenon(href='http://badc.rl.ac.uk/localparams#%s'%allVarNames[i]) 
     183                    aa.aggType=cp.csString('new') #can it be anything else? 
     184                    aa.aggIndex=cp.csString('1') 
     185                    #FileExtract (fe) element will be NetCDF/GRIB/PPExtract element (As defined earlier in ExtractType) 
     186                    self.extractType= DI.extractType 
     187                    fe = self._getCorrectExtractType() 
     188                    varSize=DI.getShapeOfVar() 
     189                    varSize=csml.csmllibs.csmlextra.cleanString1(str(varSize)) 
     190                    fe.arraySize=cp.csString(varSize) 
     191                    fe.fileName=cp.csString(self.filesinDir) 
     192                    fe.variableName=cp.csString(allVarNames[i]) 
     193                    aa.components=[fe] 
     194                    rs.aggregatedArray=aa 
     195                gsCoverage.rangeSet=rs 
     196 
     197                gsFeature.parameter=csml.parser.Phenomenon(href='http://badc.rl.ac.uk/localparams#%s'%allVarNames[i]) 
     198                #gsFeature.parameter=csml.parser.Phenomenon() 
     199                gsFeature.value=gsCoverage 
    235200                self.fms.append(gsFeature) 
    236201            DI.closeFile() 
  • TI02-CSML/branches/CSML2/parser.py

    r1896 r1899  
    234234        a =[XLINK('href'),XLINK('role'), XLINK('arcrole'),XLINK('title'), XLINK('show'), XLINK('actuate')]  
    235235        addatts(self,a) 
     236        #Note the abbreviations href, role etc can be used to set these attributes rather than the full qualified name 
     237        if 'href' in kwargs: 
     238            self.__dict__[XLINK('href')]=kwargs['href'] 
     239        if 'role' in kwargs: 
     240            self.__dict__[XLINK('role')]=kwargs['role'] 
     241        if 'arcrole' in kwargs: 
     242            self.__dict__[XLINK('arcrole')]=kwargs['arcrole'] 
     243        if 'title' in kwargs: 
     244            self.__dict__[XLINK('title')]=kwargs['title'] 
     245        if 'show' in kwargs: 
     246            self.__dict__[XLINK('show')]=kwargs['show'] 
     247        if 'actuate' in kwargs: 
     248            self.__dict__[XLINK('actuate')]=kwargs['actuate'] 
    236249 
    237250class SRSReferenceGroup(csElement): 
Note: See TracChangeset for help on using the changeset viewer.