Changeset 684


Ignore:
Timestamp:
21/03/06 13:03:59 (13 years ago)
Author:
domlowe
Message:

added MeasureOrNullListType?

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

Legend:

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

    r683 r684  
    212212        if not hasattr(self,'id'): 
    213213            print 'gml:id mandatory value missing in ' + csmlFrag.tag 
    214             sys.exit() 
     214            #sys.exit() 
    215215    def toXML(self,csmlFrag): 
    216216        csmlFrag=AbstractGML.toXML(self,csmlFrag) 
     
    910910                self.parameter=None 
    911911                if frag.getchildren() == []: 
    912                     if frag.attrib.has_key(XLINK('href')): 
    913                         self.href = frag.attrib[XLINK('href')] 
     912                    self.parameter=Definition() 
     913                    self.parameter.fromXML(frag) 
    914914                else: 
    915915                    subFrag=frag.getchildren()[0] 
     
    920920                    elif subFrag.tag == OM('ParameterisedPhenomenon'): 
    921921                        self.parameter = ParameterisedPhenomenon() 
    922                 if hasattr(self,'parameter'): 
    923                     if self.parameter is not None: 
    924                         self.parameter.fromXML(subFrag) 
     922                    self.parameter.fromXML(subFrag) 
    925923                         
    926924    def toXML(self,csmlFrag): 
     
    943941                frag.append(subFrag) 
    944942                csmlFrag.append(frag) 
    945  
    946             if hasattr(self, 'href'): 
    947                 frag.attrib[XLINK('href')] = self.href 
     943            #if hasattr(self, 'href'): 
     944            elif isinstance(self.parameter,Definition): 
     945                Definition.toXML(self.parameter,frag) 
     946                csmlFrag.append(frag) 
     947                 
     948                #frag.attrib[XLINK('href')] = self.href 
    948949 
    949950        return csmlFrag 
     
    14651466            self.uom=uom 
    14661467    def fromXML(self,csmlFrag): 
    1467                 self.measure=csmlFrag.text 
    1468                 if csmlFrag.attrib.has_key('uom'): 
    1469                     self.uom = csmlFrag.attrib['uom'] 
     1468        self.measure=csmlFrag.text 
     1469        if csmlFrag.attrib.has_key('uom'): 
     1470            self.uom = csmlFrag.attrib['uom'] 
    14701471    def toXML(self, csmlFrag): 
    14711472        if hasattr(self,'measure'): 
     
    14771478        return csmlFrag 
    14781479 
    1479  
     1480class MeasureOrNullList: 
     1481    #class MeasureOrNullList: 
     1482    # +uom[1]:anyURI 
     1483    #Actually based on doubleOrNullList, but not modelled to that level of detail. 
     1484     
     1485    def __init__(self, uom=None, val=None): 
     1486        if uom: 
     1487            self.uom=uom 
     1488        if val: 
     1489            self.val=val 
     1490    def fromXML(self,csmlFrag): 
     1491        self.val=csmlFrag.text 
     1492        if csmlFrag.attrib.has_key('uom'): 
     1493            self.uom = csmlFrag.attrib['uom'] 
     1494    def toXML(self, csmlFrag): 
     1495        if hasattr(self,'val'): 
     1496            csmlFrag.text = self.val 
     1497        if hasattr(self,'uom'): 
     1498           csmlFrag.attrib[('uom')] = self.uom 
     1499        return csmlFrag 
    14801500     
    14811501class CompositeValue: 
     
    16451665        # +gml:File 
    16461666    #class GML RangeSet 
    1647     def __init__(self,QuantityList=None, DataBlock=None, ArrayDescriptor=None): 
    1648         if QuantityList: 
    1649             self.QuantityList=QuantityList 
    1650         if DataBlock: 
    1651             self.DataBlock=DataBlock 
    1652         if ArrayDescriptor: 
    1653             self.ArrayDescriptor=ArrayDescriptor 
     1667    def __init__(self,quantityList=None, dataBlock=None, arrayDescriptor=None, aggregatedArray=None): 
     1668        if quantityList: 
     1669            self.quantityList=quantityList 
     1670        if dataBlock: 
     1671            self.dataBlock=dataBlock 
     1672        if arrayDescriptor: 
     1673            self.arrayDescriptor=arrayDescriptor 
     1674        if aggregatedArray: 
     1675            self.aggregatedArray=aggregatedArray 
    16541676             
    16551677    def fromXML(self,csmlFrag): 
    16561678        for frag in csmlFrag.getchildren(): 
    16571679            if frag.tag==GML('QuantityList'): 
    1658                 self.QuantityList=frag.text 
    1659                 if frag.attrib.has_key('uom'): 
    1660                     self.uom = frag.attrib['uom'] 
     1680                self.quantityList=MeasureOrNullList() 
     1681                MeasureOrNullList.fromXML(self.quantityList,frag) 
    16611682            elif frag.tag==GML('DataBlock'): 
    1662                 self.DataBlock=DataBlock() 
    1663                 DataBlock.fromXML(self.DataBlock, frag) 
     1683                self.dataBlock=DataBlock() 
     1684                DataBlock.fromXML(self.dataBlock, frag) 
    16641685            elif frag.tag == CSML('NetCDFExtract'): 
    1665                 self.ArrayDescriptor=NetCDFExtract() 
    1666                 NetCDFExtract.fromXML(self.ArrayDescriptor,frag) 
     1686                self.arrayDescriptor=NetCDFExtract() 
     1687                NetCDFExtract.fromXML(self.arrayDescriptor,frag) 
    16671688            elif frag.tag == CSML('NASAmesExtract'): 
    1668                 self.ArrayDescriptor=NASAAmesExtract() 
    1669                 NASAAmesExtract.fromXML(self.ArrayDescriptor,frag) 
     1689                self.arrayDescriptor=NASAAmesExtract() 
     1690                NASAAmesExtract.fromXML(self.arrayDescriptor,frag) 
    16701691            elif frag.tag == CSML('GRIBExtract'): 
    1671                 self.ArrayDescriptor=GRIBExtract() 
     1692                self.arrayDescriptor=GRIBExtract() 
    16721693                GRIBExtract.fromXML(self.ArrayDescriptor,frag) 
    16731694            elif frag.tag == CSML('AggregatedArray'): 
    1674                 self.AggregatedArray=AggregatedArray() 
    1675                 AggregatedArray.fromXML(self.AggregatedArray,frag) 
     1695                self.aggregatedArray=AggregatedArray() 
     1696                AggregatedArray.fromXML(self.aggregatedArray,frag) 
    16761697    def toXML(self, csmlFrag): 
    1677         if hasattr(self,'QuantityList'): 
     1698        if hasattr(self,'quantityList'): 
    16781699            frag = Element(GML('QuantityList')) 
    1679             frag.text=self.QuantityList 
    1680             if hasattr(self,'uom'): 
    1681                 frag.attrib['uom'] = self.uom 
    1682             csmlFrag.append(frag) 
    1683         if hasattr(self,'DataBlock'): 
     1700            MeasureOrNullList.toXML(self.quantityList,frag) 
     1701            csmlFrag.append(frag) 
     1702        if hasattr(self,'dataBlock'): 
    16841703            frag=Element(GML('DataBlock')) 
    1685             DataBlock.toXML(self.DataBlock,frag) 
    1686             csmlFrag.append(frag) 
    1687         if hasattr(self,'AggregatedArray'): 
     1704            DataBlock.toXML(self.dataBlock,frag) 
     1705            csmlFrag.append(frag) 
     1706        if hasattr(self,'aggregatedArray'): 
    16881707            frag=Element(GML('AggregatedArray')) 
    1689             AggregatedArray.toXML(self.AggregatedArray,frag) 
    1690             csmlFrag.append(frag) 
    1691         if hasattr(self,'ArrayDescriptor'): 
    1692             if isinstance(self.ArrayDescriptor,NetCDFExtract): 
     1708            AggregatedArray.toXML(self.aggregatedArray,frag) 
     1709            csmlFrag.append(frag) 
     1710        if hasattr(self,'arrayDescriptor'): 
     1711            if isinstance(self.arrayDescriptor,NetCDFExtract): 
    16931712                frag=Element(CSML('NetCDFExtract')) 
    1694                 NetCDFExtract.toXML(self.ArrayDescriptor,frag) 
     1713                NetCDFExtract.toXML(self.arrayDescriptor,frag) 
    16951714                csmlFrag.append(frag) 
    1696             elif isinstance(self.ArrayDescriptor,NASAAmesExtract): 
     1715            elif isinstance(self.arrayDescriptor,NASAAmesExtract): 
    16971716                frag=Element(CSML('NASAAmesExtract')) 
    1698                 NASAAmesExtract.toXML(self.ArrayDescriptor,frag) 
     1717                NASAAmesExtract.toXML(self.arrayDescriptor,frag) 
    16991718                csmlFrag.append(frag) 
    1700             elif isinstance(self.ArrayDescriptor,GRIBExtract): 
     1719            elif isinstance(self.arrayDescriptor,GRIBExtract): 
    17011720                frag=Element(CSML('GRIBExtract')) 
    1702                 GRIBAmesExtract.toXML(self.ArrayDescriptor,frag) 
     1721                GRIBAmesExtract.toXML(self.arrayDescriptor,frag) 
    17031722                csmlFrag.append(frag) 
    17041723                 
  • TI02-CSML/trunk/newparser/demoCreateCSML.py

    r683 r684  
    7070ph.id='rainfall' 
    7171dm.append(ph) 
     72ph =Phenomenon() 
     73ph.id='another Phenomenon name' 
     74dm.append(ph) 
    7275pds = PhenomenonDefinitions(definitionMembers=dm) 
    7376############################################################### 
    74  
    75 #################### FeatureCollection ############################ 
    76  
    77 #empty list to hold featureMembers 
    78 fms =[] 
    79 pf=PointFeature() 
    80 pf.id='feat01' 
    81 pf.description=Description('Temperature reading from thermometer') 
    82 pd=PointDomain() 
    83 p=Position() 
    84 p.srsName ='urn:EPSG:geographicCRS:4979' 
    85 p.axisLabels='Lat Long h' 
    86 p.uomLabels = 'degree degree m' 
    87 p.location='0.1 1.5 25' 
    88 p.time='2000-08-13T13:51:10' 
    89 pd.domainReference=p 
    90 pf.pointDomain=pd 
    91 rs=RangeSet() 
    92 #TODO populate rangeSet 
    93 pf.rangeSet=rs 
    94  
    95 fms.append(pf) 
    96  
    97  
    98 fc=FeatureCollection(members=fms) 
    99 etp = EnvelopeWithTimePeriod() 
    100 etp.lowerCorner='-10 15' 
    101 etp.upperCorner='30 65' 
    102 etp.timePosition='1998-01-01' 
    103 etp.timePosition2='2003-12-31' 
    104 fc.boundedBy=etp 
    10577 
    10678 
     
    216188#nclist.append(nc) 
    217189adlist.append(ag) 
     190###################################################### 
     191 
     192#################### FeatureCollection ####################### 
     193 
     194#empty list to hold featureMembers 
     195fms =[] 
     196 
     197 
     198#### PointFeature: ##### 
     199pf=PointFeature() 
     200pf.id='feat01' 
     201pf.description=Description('Temperature reading from thermometer') 
     202pd=PointDomain() 
     203p=Position() 
     204p.srsName ='urn:EPSG:geographicCRS:4979' 
     205p.axisLabels='Lat Long h' 
     206p.uomLabels = 'degree degree m' 
     207p.location='0.1 1.5 25' 
     208p.time='2000-08-13T13:51:10' 
     209pd.domainReference=p 
     210pf.pointDomain=pd 
     211rs=RangeSet() 
     212rs.quantityList=MeasureOrNullList(uom='udunits.xml#degreesC',val = '10') 
     213rs.parameter= 
     214pf.rangeSet=rs 
     215fms.append(pf) 
     216 
     217#### ProfileFeature: ##### 
     218 
     219#### GridFeature: ##### 
     220#### PointSeriesFeature: ##### 
     221#### ProfileSeriesFeature: ##### 
     222#### GridSeriesFeature: ##### 
     223#### TrajectoryFeature ###### 
     224 
     225#instantiate FeatrueCollection object: 
     226fc=FeatureCollection(members=fms) 
     227etp = EnvelopeWithTimePeriod() 
     228etp.lowerCorner='-10 15' 
     229etp.upperCorner='30 65' 
     230etp.timePosition='1998-01-01' 
     231etp.timePosition2='2003-12-31' 
     232fc.boundedBy=etp 
     233 
     234 
     235 
     236 
     237 
     238 
     239 
     240 
     241 
     242 
    218243 
    219244 
  • TI02-CSML/trunk/newparser/example.xml

    r683 r684  
    170170                                <PointDomain> 
    171171                                        <domainReference> 
    172                                                 <Position  srsName="urn:EPSG:geographicCRS:4979" axisLabels="Lat Long h" uomLabels="degree degree m"> 
     172                                                <Position  srsName="urn:EPSG:geographicCRS:4979" axisLabels="Lat Long h" uomLabels="degree degree m'"> 
    173173                                                        <location>0.1 1.5 25</location> 
    174174                                                        <time>2000-08-13T13:51:10</time> 
     
    179179                                        <gml:QuantityList uom="udunits.xml#degreesC">10</gml:QuantityList> 
    180180                                </gml:rangeSet> 
    181                                 <parameter xlink:href="CFStandardNames.xml#air_temperature"/> 
     181                                <parameter gml:id="dummy id added"  xlink:href="CFStandardNames.xml#air_temperature"/> 
    182182                        </PointFeature> 
    183183                </gml:featureMember> 
Note: See TracChangeset for help on using the changeset viewer.