Changeset 688


Ignore:
Timestamp:
22/03/06 12:33:22 (14 years ago)
Author:
domlowe
Message:

some fixes in light of demoCreateCSML.py code.

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

Legend:

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

    r685 r688  
    827827class DirectPositionList: 
    828828    #class representing a DirectPositionList 
    829     def __init__(self): 
    830         pass 
    831     def fromXML(self,csmlFrag): 
    832         self.text=csmlFrag.text 
     829    def __init__(self, srsName=None, vals=None): 
     830        if srsName: 
     831            self.srsName=srsName 
     832        if vals: 
     833            self.vals=vals 
     834    def fromXML(self,csmlFrag): 
     835        self.vals=csmlFrag.text 
    833836        if csmlFrag.attrib.has_key('srsName'): 
    834837            self.srsName=csmlFrag.attrib['srsName'] 
    835838    def toXML(self,csmlFrag):  
    836         csmlFrag.text=self.text 
     839        csmlFrag.text=self.vals 
    837840        if hasattr(self,'srsName'): 
    838841            csmlFrag.attrib['srsName']=self.srsName 
     
    11121115        return csmlFrag 
    11131116 
     1117 
     1118         
     1119class AngleList: 
     1120    #Should really inherit from MeasureList, but not implemented. 
     1121    #class AngleList 
     1122    #+uom[1]:anyURI 
     1123    #+double[0...1] 
     1124    def __init__(self,uom=None, vals=None): 
     1125        if uom: 
     1126            self.uom=uom 
     1127        if vals: 
     1128            self.vals=vals 
     1129    def fromXML(self,csmlFrag): 
     1130        self.vals=csmlFrag.text 
     1131        if csmlFrag.attrib.has_key('uom'): 
     1132            self.uom = csmlFrag.attrib['uom'] 
     1133    def toXML(self, csmlFrag): 
     1134        if hasattr(self,'vals'): 
     1135            csmlFrag.text = self.vals 
     1136        if hasattr(self,'uom'): 
     1137            csmlFrag.attrib[('uom')] = self.uom 
     1138        return csmlFrag 
    11141139         
    11151140class DirectionVectorList: 
     
    11221147        for frag in csmlFrag.getchildren(): 
    11231148            if frag.tag==GML('horizontalAngle'): 
    1124                 self.horizontalAngle=frag.text 
    1125                 if frag.attrib.has_key('uom'): 
    1126                     self.uom_H=frag.attrib['uom'] 
     1149                self.horizontalAngle=AngleList() 
     1150                AngleList.fromXML(self.horizontalAngle,frag) 
    11271151            elif frag.tag==GML('verticalAngle'): 
    1128                 self.verticalAngle=frag.text 
    1129                 if frag.attrib.has_key('uom'): 
    1130                     self.uom_V=frag.attrib['uom'] 
     1152                self.verticalAngle=AngleList() 
     1153                AngleList.fromXML(self.verticalAngle,frag) 
    11311154    def toXML(self,csmlFrag): 
    11321155         if hasattr(self,'horizontalAngle'): 
    11331156            frag = Element(GML('horizontalAngle')) 
    1134             frag.text=self.horizontalAngle 
    1135             if hasattr(self,'uom_H'): 
    1136                 frag.attrib['uom'] = self.uom_H 
    1137             csmlFrag.append(frag) 
    1138              
     1157            AngleList.toXML(self.horizontalAngle,frag) 
     1158            csmlFrag.append(frag) 
    11391159         if hasattr(self,'verticalAngle'): 
    11401160            frag = Element(GML('verticalAngle')) 
    1141             frag.text=self.verticalAngle 
    1142             if hasattr(self,'uom_V'): 
    1143                 frag.attrib['uom'] = self.uom_V 
    1144             csmlFrag.append(frag) 
     1161            AngleList.toXML(self.verticalAngle,frag) 
     1162            csmlFrag.append(frag) 
     1163         return csmlFrag 
    11451164 
    11461165         
     
    12261245                self.locations=frag.text 
    12271246            if frag.tag==CSML('times'): 
    1228                 self.times=frag.text 
     1247                self.times=TimePositionList() 
     1248                TimePositionList.fromXML(self.times,frag) 
    12291249    def toXML(self,csmlFrag): 
    12301250        if hasattr(self,'srsName'): 
     
    12361256        if hasattr(self,'times'): 
    12371257            frag = Element(CSML('times')) 
    1238             frag.text=self.times 
     1258            TimePositionList.toXML(self.times, frag) 
    12391259            csmlFrag.append(frag) 
    12401260        return csmlFrag 
     
    14351455 
    14361456class TimeInstant: 
    1437      
    14381457    def __init__(self, timePosition=None): 
    14391458        if timePosition: 
     
    14521471 
    14531472class TimePositionList: 
    1454     def __init__(self, timePositions=None): 
     1473              #class TimePositionList 
     1474              #+frame[0..1]:anyURI  
     1475              # + calendarEraName [0..1]:string (not implemented) 
     1476              # +indeterminatePosition[0..1]:=gml:TimeIndeterminateValueType  (not implemented) 
     1477    def __init__(self, frame=None, timePositions=None): 
     1478        if frame: 
     1479            self.frame=frame 
    14551480        if timePositions: 
    14561481            self.timePositions=timePositions 
    14571482    def fromXML(self,csmlFrag): 
    14581483        self.timePositions=csmlFrag.text 
     1484        if csmlFrag.attrib.has_key('frame'): 
     1485            self.frame = csmlFrag.attrib['frame'] 
    14591486    def toXML(self,csmlFrag): 
    14601487         if hasattr(self,'timePositions'): 
    14611488            csmlFrag.text=self.timePositions 
     1489         if hasattr(self,'frame'): 
     1490             csmlFrag.attrib['frame']=self.frame 
    14621491         return csmlFrag 
    14631492              
    14641493class Measure: 
    1465     def __init__(self, uom=None): 
     1494    def __init__(self, uom=None, vals=None): 
    14661495        if uom: 
    14671496            self.uom=uom 
     1497        if vals: 
     1498            self.vals=vals 
    14681499    def fromXML(self,csmlFrag): 
    14691500        self.measure=csmlFrag.text 
     
    14711502            self.uom = csmlFrag.attrib['uom'] 
    14721503    def toXML(self, csmlFrag): 
    1473         if hasattr(self,'measure'): 
    1474             frag = Element(GML('measure')) 
    1475             frag.text = self.measure 
    1476             if hasattr(self,'uom'): 
    1477                 frag.attrib[('uom')] = self.uom 
    1478             csmlFrag.append(frag) 
     1504        frag = Element(GML('measure')) 
     1505        if hasattr(self, 'vals'): 
     1506            frag.text = self.vals 
     1507        if hasattr(self,'uom'): 
     1508            frag.attrib[('uom')] = self.uom 
    14791509        return csmlFrag 
    14801510 
     
    15051535            self.valueComponents=valueComponents 
    15061536    def fromXML(self,csmlFrag): 
    1507          
    15081537        for frag in csmlFrag.getchildren(): 
    15091538            if frag.tag == GML('valueComponents'): 
     
    15191548            for valueComponent in self.valueComponents: 
    15201549                if isinstance(valueComponent,Measure): 
    1521                     Measure.toXML(valueComponent,frag) 
     1550                    subFrag=Element(GML('measure')) 
     1551                    Measure.toXML(valueComponent,subFrag) 
     1552                    frag.append(subFrag) 
    15221553            csmlFrag.append(frag) 
    15231554         return csmlFrag 
     
    15301561    #DataBlock() 
    15311562    #+gml:rangeParameters 
    1532     def __init__(self,rangeParameters=None): 
     1563    def __init__(self,rangeParameters=None, doubleOrNullTupleList=None): 
    15331564        if rangeParameters: 
    15341565            self.rangeParameters=rangeParameters 
     1566        if doubleOrNullTupleList: 
     1567            self.doubleOrNullTupleList=doubleOrNullTupleList 
    15351568    def fromXML(self,csmlFrag): 
    15361569        for frag in csmlFrag.getchildren(): 
  • TI02-CSML/trunk/newparser/demoCreateCSML.py

    r685 r688  
    223223t.srsName='urn:EPSG:geographicCRS:4979' 
    224224t.locations='0.1 1.5 25' 
    225 #t.times= 
     225t.times=TimePositionList('#RefSys01','0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 26 27 28 29 30 31') 
    226226ptsd.domainReference=t 
    227227ptsf.pointSeriesDomain=ptsd 
     228rs=RangeSet() 
     229rs.quantityList=MeasureOrNullList('udunits.xml#mm', '5 3 10 1 2 8 10 2 5 10 20 21 12 3 5 19 12 23 32 10 8 8 2 0 0 1 5 6 10 17 20') 
     230ptsf.rangeSet=rs 
    228231fms.append(ptsf) 
    229232 
    230233#### ProfileFeature: ##### 
     234prf=ProfileFeature() 
     235prf.id='feat03' 
     236prf.description=Description('Vertical wind profile') 
     237prd=ProfileDomain() 
     238op=OrientedPosition(srsName='urn:EPSG:geographicCRS:4326') 
     239op.location='-1 3' 
     240op.time='1999-07-21T10:00:00' 
     241horiz=AngleList('udunits.xml#degrees','0') 
     242vert=AngleList('udunits.xml#degrees','90') 
     243direct=DirectionVectorList(horiz,vert) 
     244op.direction=direct 
     245prd.domainReference=op 
     246dpl =DirectPositionList('#RefSys02','10 20 30 40 50 60 70 80 90 100') 
     247prd.domainComplement=dpl 
     248prf.profileDomain=prd 
     249rs=RangeSet() 
     250valueComps=[] 
     251vc1=Measure('udunits.xml#ms-1') 
     252valueComps.append(vc1) 
     253vc2 =Measure('udunits.xml#ms-1') 
     254valueComps.append(vc2) 
     255cv=CompositeValue(valueComponents=valueComps) 
     256db=DataBlock(rangeParameters=cv, doubleOrNullTupleList='2.0 1.1 2.4 0.8 3.3 0.1 2.6 -0.2 5.6 0.1 4.5 1.3 6.3 0.1 5.7 0.9 4.2 1.1 3.2 -0.1') 
     257rs.dataBlock=db 
     258prf.rangeSet=rs 
     259fms.append(prf) 
     260 
    231261#### ProfileSeriesFeature: ##### 
    232262#### GridFeature: ##### 
Note: See TracChangeset for help on using the changeset viewer.