Changeset 2059 for TI02-CSML/trunk


Ignore:
Timestamp:
26/01/07 10:55:50 (13 years ago)
Author:
domlowe
Message:

xlinks in rangeSet also resolve to insertedElement.

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

Legend:

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

    r2057 r2059  
    371371        AbstractGML.__init__(self,**kwargs) 
    372372        #note __insertedExtract is used in resolving xlinks and shouldn't be written to directly (except by the code which handles the xlink resolutions) 
    373         children={'__insertedExtract':[FILEFORMATS,'FileExtract']} 
     373        children={'__insertedExtract':[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
    374374        addchildren(self,children) 
    375375        a =['uom']  
     
    481481    def __init__(self, **kwargs): 
    482482        AbstractGML.__init__(self,**kwargs) 
    483         children={'coordinateList':[CSML('coordinateList'),'csString'], 'timePositionList':[CSML('timePositionList'),'TimePositionList'],'__insertedExtract':[[CSML('NetCDFExtract'),CSML('NASAAmesExtract'),CSML('AggregatedArray')],'FileExtract',CSML('__insertedExtract')]} 
     483        children={'coordinateList':[CSML('coordinateList'),'csString'], 'timePositionList':[CSML('timePositionList'),'TimePositionList'],'__insertedExtract':[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
    484484        addchildren(self,children) 
    485485        a=['frame'] 
  • TI02-CSML/trunk/csml/parser_extra.py

    r2057 r2059  
    108108         
    109109                         
    110     def __findCLmatch(self, href): 
     110    def __findSDmatch(self, href): 
    111111        for sd in csml.csmllibs.csmlextra.listify(self.dataset.storageDescriptor.descriptors): 
    112             if type(sd) in [csml.parser.NetCDFExtract]: 
    113                 #print dir(sd) 
    114                 #print sd 
     112            if type(sd) in [csml.parser.NetCDFExtract, csml.parser.AggregatedArray]: 
    115113                if hasattr(sd, 'id'): 
    116                     #print sd 
    117                     if sd.id == href: 
     114                     if sd.id == href: 
    118115                        return sd 
    119                         #print 'found match' 
    120116                         
    121                          
     117               
    122118                 
    123119         
     
    147143                        if hasattr(ordinate.coordAxisValues,'coordinateList'): 
    148144                            if ordinate.coordAxisValues.coordinateList.CONTENT[:1] == '#': 
    149                                 dataforClist= self.__findCLmatch(ordinate.coordAxisValues.coordinateList.CONTENT[1:]) 
     145                                dataforClist= self.__findSDmatch(ordinate.coordAxisValues.coordinateList.CONTENT[1:]) 
    150146                                if dataforClist is not None: 
    151147                                    setattr(ordinate.coordAxisValues, '__insertedExtract', dataforClist) 
    152148                    break 
     149             
    153150            #now the rangeSet: 
    154              
    155             #for feature in self.dataset.featureCollection.featureMembers: 
    156             #if hasattr(feature.value.rangeSet, 'valueArray'): 
    157                 ##could be an xlink here.. 
    158                 #for vc in  csml.csmllibs.csmlextra.listify(feature.value.rangeSet.valueArray.valueComponent): 
    159                     #if hasattr(vc, 'href'): 
    160                         #self.dataset=csml.csmllibs.csmlxlink.resolveXlink(vc, self.dataset) 
    161 #        sys.exit() 
     151        for feature in self.dataset.featureCollection.featureMembers: 
     152            if hasattr(feature.value.rangeSet, 'valueArray'): 
     153                #could be an xlink here.. 
     154                for vc in  csml.csmllibs.csmlextra.listify(feature.value.rangeSet.valueArray.valueComponent): 
     155                    if hasattr(vc, 'href'): 
     156                        dataforQlist=self.__findSDmatch(vc.href[1:]) 
     157                        if dataforQlist is not None: 
     158                            if not hasattr(vc, 'quantityList'): 
     159                                setattr(vc, 'quantityList', csml.parser.MeasureOrNullList()) 
     160                            setattr(vc.quantityList, '__insertedExtract', dataforQlist) 
     161 
    162162        return self.dataset 
Note: See TracChangeset for help on using the changeset viewer.