Changeset 678


Ignore:
Timestamp:
16/03/06 14:22:42 (14 years ago)
Author:
domlowe
Message:

GridSeriesFeatures? done

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

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/newparser/Parser.py

    r677 r678  
    659659                elif subfrag.tag == GML('TimeInstant'): 
    660660                    self.domainReference=TimeInstant() 
     661                elif subfrag.tag == GML('TimePositionList'): 
     662                    self.domainReference=TimePositionList() 
    661663                self.domainReference.fromXML(subfrag) 
    662  
     664                 
    663665            if frag.tag == CSML('domainComplement'): 
    664666                subfrag=frag.getchildren()[0] 
     
    699701                frag.append(subFrag) 
    700702                csmlFrag.append(frag) 
     703            elif isinstance(self.domainReference,TimePositionList): 
     704                subFrag=Element(GML('TimePositionList')) 
     705                self.domainReference.toXML(subFrag) 
     706                frag.append(subFrag) 
     707                csmlFrag.append(frag)     
    701708        if hasattr(self,'domainComplement'): 
    702709            frag = Element(CSML('domainComplement')) 
     
    11051112            csmlFrag.append(frag) 
    11061113         return csmlFrag 
    1107           
     1114 
     1115class TimePositionList: 
     1116    def __init__(self, timePositions=None): 
     1117        if timePositions: 
     1118            self.timePositions=timePositions 
     1119    def fromXML(self,csmlFrag): 
     1120        self.timePositions=csmlFrag.text 
     1121    def toXML(self,csmlFrag): 
     1122         if hasattr(self,'timePositions'): 
     1123            csmlFrag.text=self.timePositions 
     1124         return csmlFrag 
     1125              
    11081126class Measure: 
    11091127    def __init__(self, uom=None): 
     
    11971215class TypedCategory: 
    11981216#class om:TypedCategory 
    1199     def __init__(self,*args,**kwargs): 
    1200         pass 
    1201     def fromXML(self,csmlFrag): 
    1202         pass 
    1203     def toXML(self,csmlFrag): 
    1204  
     1217    # +axis (attrib) 
     1218    # + codeSpace (attrib) 
     1219    def __init__(self,axis=None, codeSpace=None,text=None,*args,**kwargs): 
     1220        if axis: 
     1221            self.axis=axis 
     1222        if codeSpace: 
     1223            self.codeSpace=codeSpace 
     1224        if text: 
     1225            self.text=text 
     1226    def fromXML(self,csmlFrag): 
     1227        if csmlFrag.attrib.has_key('axis'): 
     1228            self.axis=csmlFrag.attrib['axis'] 
     1229        if csmlFrag.attrib.has_key('codeSpace'): 
     1230            self.codeSpace=csmlFrag.attrib['codeSpace'] 
     1231        self.text=csmlFrag.text 
     1232    def toXML(self,csmlFrag): 
     1233        if hasattr(self,'axis'): 
     1234            csmlFrag.attrib[('axis')] =self.axis 
     1235        if hasattr(self,'codeSpace'): 
     1236            csmlFrag.attrib[('codeSpace')] =self.codeSpace 
     1237        csmlFrag.text=self.text 
    12051238        return csmlFrag 
    12061239 
     
    12221255 
    12231256class CompositePhenomenon(Phenomenon): 
    1224     def __init__(self,*args,**kwargs): 
     1257    #Class om:CompositePhenomenon 
     1258    # + om:componentPhenomenon [1...*] 
     1259    def __init__(self,componentPhenomenon=None,*args,**kwargs): 
    12251260        Phenomenon.__init__(self,*args,**kwargs) 
     1261        if componentPhenomenon: 
     1262            self.componentPhenomenon=componentPhenomenon 
    12261263    def fromXML(self,csmlFrag): 
    12271264        Phenomenon.fromXML(self,csmlFrag) 
     1265        for frag in csmlFrag.getchildren(): 
     1266            if frag.tag == OM('componentPhenomenon'): 
     1267                checkArrayAttrib(self,'componentPhenomenon') 
     1268                self.componentPhenomenon.append(frag.attrib) 
    12281269    def toXML(self,csmlFrag): 
    12291270        Phenomenon.toXML(self,csmlFrag) 
     1271        for cp in self.componentPhenomenon: 
     1272            frag=Element(OM('componentPhenomenon')) 
     1273            frag.attrib= cp 
     1274            csmlFrag.append(frag) 
    12301275        return csmlFrag 
    12311276     
    12321277class ParameterisedPhenomenon(Phenomenon): 
     1278    #Class ParameterisedPhenomenon: 
     1279        # + basePhenomenon 
     1280        # + constraint 
     1281        # + href (attrib) 
    12331282    def __init__(self,*args,**kwargs): 
    12341283        Phenomenon.__init__(self,*args,**kwargs) 
     
    12591308            frag=Element(OM('constraint')) 
    12601309            subFrag=Element(OM('TypedCategory')) 
    1261             subFrag.text=self.constraint.toXML(subFrag) 
     1310            subFrag=self.constraint.toXML(subFrag) 
    12621311            frag.append(subFrag) 
    12631312            csmlFrag.append(frag) 
     
    12991348                self.ArrayDescriptor=GRIBExtract() 
    13001349                GRIBExtract.fromXML(self.ArrayDescriptor,frag) 
     1350            elif frag.tag == CSML('AggregatedArray'): 
     1351                self.AggregatedArray=AggregatedArray() 
     1352                AggregatedArray.fromXML(self.AggregatedArray,frag) 
    13011353    def toXML(self, csmlFrag): 
    13021354        if hasattr(self,'QuantityList'): 
     
    13091361            frag=Element(GML('DataBlock')) 
    13101362            DataBlock.toXML(self.DataBlock,frag) 
     1363            csmlFrag.append(frag) 
     1364        if hasattr(self,'AggregatedArray'): 
     1365            frag=Element(GML('AggregatedArray')) 
     1366            AggregatedArray.toXML(self.AggregatedArray,frag) 
    13111367            csmlFrag.append(frag) 
    13121368        if hasattr(self,'ArrayDescriptor'): 
     
    15001556 
    15011557 
    1502 class GridSeriesFeature: 
    1503     def __init__(self): 
    1504         pass 
    1505     def fromXML(self,csmlFrag): 
    1506         pass 
    1507     def toXML(self,csmlFrag): 
    1508         return csmlFrag 
     1558class GridSeriesFeature(AbstractStaticCoverageFeature): 
     1559    def __init__(self,GridSeriesDomain=None,*args,**kwargs): 
     1560        AbstractStaticCoverageFeature.__init__(self,*args,**kwargs) 
     1561        if GridSeriesDomain: 
     1562            self.GridSeriesDomain=GridSeriesDomain 
     1563    def fromXML(self,csmlFrag): 
     1564        AbstractStaticCoverageFeature.fromXML(self,csmlFrag) 
     1565        for frag in csmlFrag.getchildren(): 
     1566            if frag.tag == CSML('GridSeriesDomain'): 
     1567                self.GridSeriesDomain = GridSeriesDomain() 
     1568                self.GridSeriesDomain.fromXML(frag) 
     1569    def toXML(self,csmlFrag): 
     1570        AbstractStaticCoverageFeature.toXML(self,csmlFrag) 
     1571        if hasattr(self,'GridSeriesDomain'): 
     1572             frag = Element(CSML('GridSeriesDomain')) 
     1573             GridSeriesDomain.toXML(self.GridSeriesDomain,frag) 
     1574             csmlFrag.append(frag) 
     1575        return csmlFrag 
     1576 
    15091577class TrajectoryFeature: 
    15101578    def __init__(self): 
     
    16621730    def fromXML(self,csmlFrag): 
    16631731        AbstractGML.fromXML(self,csmlFrag) 
     1732         
    16641733        for frag in csmlFrag.getchildren(): 
    16651734            if frag.tag == CSML('UnitDefinitions'): 
  • TI02-CSML/trunk/newparser/test.py

    r655 r678  
    3939############################################################################## 
    4040# 1. Test parsing from CSML file 
    41 tree = ElementTree(file='example.xml') 
     41#tree = ElementTree(file='example.xml') 
     42#tree = ElementTree(file='/home/users/domlowe/CSML/Coapec/Coapec.v2.xml') 
     43tree = ElementTree(file='era40gridseries.xml') 
    4244dataset = Dataset() 
    4345dataset.fromXML(tree.getroot()) 
Note: See TracChangeset for help on using the changeset viewer.