Changeset 1839 for TI02-CSML


Ignore:
Timestamp:
08/12/06 11:34:08 (13 years ago)
Author:
domlowe
Message:

RangeSet, CoverageFunction, AggregatedArray, Envelope, !SRSInformationGroup, !SRSReferenceGroup added

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

Legend:

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

    r1834 r1839  
    1818nsSWE='http://www.opengis.net/swe' 
    1919     
     20  
     21                 
    2022def myQName(uri,tag): 
    2123    return "{"+uri+"}"+tag 
     
    5557  else: 
    5658    obj.ATTRIBUTES=atts 
     59 
     60 
     61#Some variable definitions: these things are often repeated so store in variables. 
     62FILEFORMATS=[CSML('NetCDFExtract'),CSML('NASAAmesExtract')] 
     63  
    5764 
    5865class csElement(object): 
     
    205212        addatts(self,a) 
    206213 
     214class SRSReferenceGroup(csElement): 
     215    def __init__(self, **kwargs): 
     216        a =['srsName','srsDimension']  
     217        addatts(self,a) 
     218         
     219class SRSInformationGroup(csElement): 
     220    def __init__(self, **kwargs): 
     221        a =['uomLabels','axisLabels']  
     222        addatts(self,a) 
     223 
     224class ArrayDescriptor(AbstractGML, csElement): 
     225    def __init__(self,**kwargs): 
     226        AbstractGML.__init__(self,**kwargs) 
     227        children={'arraySize':[CSML('arraySize'), 'csString'], 'uom':[CSML('uom'),'csString'], 'numericType':[CSML('numericType'),'csString'], 'regExpTransform':[CSML('regExpTransform'),'csString'], 'numericTransform':[CSML('numericTransform'),'csString']} 
     228        addchildren(self,children) 
     229 
     230class DirectPosition(AbstractGML, SRSReferenceGroup,SRSInformationGroup,csElement): 
     231    def __init__(self, **kwargs): 
     232        AbstractGML.__init__(self,**kwargs) 
     233 
     234 
     235class Envelope(AbstractGML,SRSReferenceGroup, csElement): 
     236    def __init__(self, **kwargs): 
     237        SRSReferenceGroup.__init__(self,**kwargs) 
     238        AbstractGML.__init__(self,**kwargs) 
     239        children={'lowerCorner':[GML('lowerCorner'), 'DirectPosition'],'upperCorner':[GML('upperCorner'), 'DirectPosition']} 
     240        addchildren(self,children) 
     241 
     242 
    207243class AbstractFeature(AbstractGML,csElement): 
    208244    def __init__(self, **kwargs): 
     
    215251        AbstractFeature.__init__(self,**kwargs) 
    216252 
    217 class domainSet(AbstractGML,AssociationAttributeGroup,csElement): 
     253class DomainSet(AbstractGML,AssociationAttributeGroup,csElement): 
    218254    def __init__(self, **kwargs): 
    219255        AbstractGML.__init__(self,**kwargs) 
    220256        addchildren(self,{}) 
    221257 
    222 class ReferenceableGridDomain(domainSet): 
    223     def __init__(self, **kwargs): 
    224         domainSet.__init__(self,**kwargs) 
    225         addchildren(self,{}) 
    226  
    227 class PointDomain(domainSet): 
    228     def __init__(self, **kwargs): 
    229         domainSet.__init__(self,**kwargs) 
    230         addchildren(self,{}) 
     258class AggregatedArray(ArrayDescriptor,csElement): 
     259    def __init__(self, **kwargs): 
     260        ArrayDescriptor.__init__(self,**kwargs) 
     261        children={'aggType':[CSML('aggType'),'csString'], 'aggIndex':[CSML('aggIndex'),'csString'],'components':[FILEFORMATS, 'ArrayDescriptor',CSML('component')]} 
     262        addchildren(self,children) 
     263#'component':[CSML:('component'), 'ArrayDescriptor', CSML('component')], 
     264class MeasureOrNullList(AbstractGML,csElement): 
     265    def __init__(self, **kwargs): 
     266        AbstractGML.__init__(self,**kwargs) 
     267        children={} 
     268        addchildren(self,children) 
     269         
     270class CompositeValue(AbstractGML,csElement): 
     271    def __init__(self, **kwargs): 
     272        AbstractGML.__init__(self,**kwargs) 
     273        children={'measures':[GML('measure'),'csString',GML('valueComponents')]} 
     274        addchildren(self,children) 
     275         
     276class DataBlock(AbstractGML,csElement): 
     277    def __init__(self, **kwargs): 
     278        AbstractGML.__init__(self,**kwargs) 
     279        children={'doubleOrNullTupleList':[GML('doubleOrNullTupleList'),'csString'],'rangeParameters':[GML('CompositeValue'), 'CompositeValue', GML('rangeParameters')]} 
     280        addchildren(self,children) 
     281 
     282class RangeSet(AbstractGML,AssociationAttributeGroup,csElement): 
     283    def __init__(self, **kwargs): 
     284        AbstractGML.__init__(self,**kwargs) 
     285        children={'quantityList':[GML('QuantityList'), 'MeasureOrNullList'],        'dataBlock':[GML('DataBlock'),'DataBlock'],'arrayDescriptor':[FILEFORMATS, 'ArrayDescriptor'],  'aggregatedArray':[CSML('AggregatedArray'), 'AggregatedArray']} 
     286        addchildren(self,children) 
     287 
     288class PointDomain(DomainSet): 
     289    def __init__(self, **kwargs): 
     290        DomainSet.__init__(self,**kwargs) 
     291        children={'pointMember':[GML('pointMember'), 'csString']} 
     292        addchildren(self,children) 
    231293 
    232294class AbstractCoverage(AbstractFeature, csElement): 
     
    239301        addchildren(self,{}) 
    240302 
     303class GridCoordinatesTable(AbstractGML,csElement): 
     304    def __init__(self,**kwargs): 
     305        AbstractGML.__init__(self,**kwargs) 
     306        children={'pointMember':[GML('pointMember'), 'csString']} 
     307        addchildren(self,children) 
     308         
    241309class ReferenceableGrid(AbstractGML, AssociationAttributeGroup, csElement): 
    242310    def __init__(self, **kwargs): 
    243311        AbstractGML.__init__(self,**kwargs) 
    244312        AssociationAttributeGroup.__init__(self,**kwargs) 
    245         addchildren(self,{}) 
     313        children={'coordTransformTable':[GML('GridCoordinatesTable'), 'GridCoordinatesTable', GML('coordTransformTable')]} 
     314        addchildren(self,children) 
    246315        a=['dimension'] 
    247316        addatts(self,a) 
     
    256325    def __init__(self, **kwargs): 
    257326        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    258         children={'pointDomain':[CSML('PointDomain'),'PointDomain' ,CSML('pointDomain') ]} 
     327        children={'pointDomain':[CSML('PointDomain'),'PointDomain' ,CSML('pointDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
    259328        addchildren(self,children) 
    260329 
     
    284353        addchildren(self,children) 
    285354 
    286 class ArrayDescriptor(AbstractGML, csElement): 
    287     def __init__(self,**kwargs): 
    288         AbstractGML.__init__(self,**kwargs) 
    289         children={'arraySize':[CSML('arraySize'), 'csString'], 'uom':[CSML('uom'),'csString'], 'numericType':[CSML('numericType'),'csString'], 'regExpTransform':[CSML('regExpTransform'),'csString'], 'numericTransform':[CSML('numericTransform'),'csString']} 
    290         addchildren(self,children) 
     355 
    291356         
    292357class FileExtract(ArrayDescriptor, csElement): 
     
    332397        AbstractGML.__init__(self,**kwargs) 
    333398        #children = {'ncExtract':[CSML('NetCDFExtract'), 'NetCDFExtract'], 'featureCollection':[CSML('featureCollection') ,'FeatureCollection']} 
    334         children = {'featureCollection':[GML('FeatureCollection') ,'FeatureCollection'],'fileExtracts':[[CSML('NetCDFExtract'),CSML('NASAAmesExtract')], 'ArrayDescriptor']} 
     399        children = {'featureCollection':[GML('FeatureCollection') ,'FeatureCollection'],'fileExtracts':[FILEFORMATS, 'ArrayDescriptor']} 
    335400        addchildren(self,children) 
    336401    def toXML(self): 
  • TI02-CSML/branches/CSML2/test.xml

    r1834 r1839  
    4343                        <pointDomain> 
    4444                            <PointDomain gml:id="ID002"> 
     45                                <gml:pointMember>12 12</gml:pointMember> 
    4546                            </PointDomain> 
    4647                        </pointDomain> 
     48                        <gml:rangeSet> 
     49                            <gml:DataBlock> 
     50                                <gml:doubleOrNullTupleList>11, 22, 22, 22</gml:doubleOrNullTupleList> 
     51                            </gml:DataBlock> 
     52                        </gml:rangeSet> 
     53                        <gml:boundedBy> 
     54                            <gml:lowerCorner>12 34</gml:lowerCorner> 
     55                            <gml:upperCorner>32 56</gml:upperCorner> 
     56                        </gml:boundedBy> 
     57                        <gml:coverageFunction></gml:coverageFunction>                       
     58                    </PointCoverage> 
     59                </value> 
     60                <parameter></parameter> 
     61            </PointFeature> 
     62            <PointFeature gml:id="feature4"> 
     63                <time></time> 
     64                <value> 
     65                    <PointCoverage> 
     66                        <pointDomain> 
     67                            <PointDomain gml:id="ID002"> 
     68                                <gml:pointMember>12 12</gml:pointMember> 
     69                            </PointDomain> 
     70                        </pointDomain> 
     71                        <gml:rangeSet> 
     72                            <gml:DataBlock> 
     73                                <gml:rangeParameters> 
     74                                    <gml:CompositeValue> 
     75                                        <gml:valueComponents> 
     76                                            <gml:measure>123 
     77                                            </gml:measure> 
     78                                            <gml:measure>456 
     79                                            </gml:measure> 
     80                                        </gml:valueComponents> 
     81                                    </gml:CompositeValue> 
     82                                </gml:rangeParameters> 
     83                            </gml:DataBlock> 
     84                        </gml:rangeSet> 
     85                        <gml:boundedBy> 
     86                            <gml:lowerCorner>12 34</gml:lowerCorner> 
     87                            <gml:upperCorner>32 56</gml:upperCorner> 
     88                        </gml:boundedBy> 
     89                        <gml:coverageFunction></gml:coverageFunction>                       
     90                    </PointCoverage> 
     91                </value> 
     92                <parameter></parameter> 
     93            </PointFeature> 
     94            <PointFeature gml:id="feature5"> 
     95                <time></time> 
     96                <value> 
     97                    <PointCoverage> 
     98                        <pointDomain> 
     99                            <PointDomain gml:id="ID002"> 
     100                                <gml:pointMember>12 12</gml:pointMember> 
     101                            </PointDomain> 
     102                        </pointDomain> 
     103                        <gml:rangeSet> 
     104                            <AggregatedArray gml:id="feat05cruisetrack"> 
     105                                <arraySize>2 50</arraySize> 
     106                                <aggType>new</aggType> 
     107                                <aggIndex>1</aggIndex> 
     108                                <component> 
     109                                    <NetCDFExtract> 
     110                                        <arraySize>50</arraySize> 
     111                                        <fileName>cruisetrack.nc</fileName> 
     112                                        <variableName>alat</variableName> 
     113                                    </NetCDFExtract> 
     114                                </component> 
     115                                <component> 
     116                                    <NetCDFExtract> 
     117                                        <arraySize>50</arraySize> 
     118                                        <fileName>cruisetrack.nc</fileName> 
     119                                        <variableName>alon</variableName> 
     120                                    </NetCDFExtract> 
     121                                </component> 
     122                               </AggregatedArray> 
     123                        </gml:rangeSet> 
     124                        <gml:boundedBy> 
     125                            <gml:lowerCorner>12 34</gml:lowerCorner> 
     126                            <gml:upperCorner>32 56</gml:upperCorner> 
     127                        </gml:boundedBy> 
     128                        <gml:coverageFunction>blahh</gml:coverageFunction>                       
    47129                    </PointCoverage> 
    48130                </value> 
Note: See TracChangeset for help on using the changeset viewer.