Changeset 1283


Ignore:
Timestamp:
05/07/06 14:01:10 (13 years ago)
Author:
domlowe
Message:

More on CSMLdocBuilder class

File:
1 edited

Legend:

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

    r1282 r1283  
    66from cElementTree import * 
    77from Parser import * 
    8 import elementtree.ElementTree as etree 
    9 import sys 
    10 import urlparse 
     8import parser_extra 
    119import string 
    1210 
     
    2725 
    2826class CSMLdocBuild: 
    29     def __init__(docID, docMetaDataProperty): 
     27    def __init__(self,docID, docMetaDataProperty): 
     28        ''' 
     29        docID = gml:id of Dataset element 
     30        docMetaDataProperty = gml:metaDataProperty of Dataset element  #hmm may need to allow a list here. 
     31        ''' 
    3032        #initialise a new document 
    31         #Create an Empty Dataset 
     33        #Create an Empty Dataset & FeatureCollection 
    3234        self.ds = Dataset() 
    33         #Set objects as attributes of dataset 
    34                 
     35        self.fc=FeatureCollection() 
     36        #Set attributes of dataset 
    3537        #if docMetaDataProperty is a URI, set it as href attribute if MetaDataProperty instance, 
    3638        #else set it as a text attribute of a MetaDataProperty instance. 
     
    5153         
    5254    #separate build classes for each feature type 
    53     def buildPointFeature(self): 
     55    def addPointFeature(self): 
    5456        pass 
    5557        return feat 
    5658             
    57     def buildProfileFeature(self): 
     59    def addProfileFeature(self): 
    5860        pass 
    5961        return feat 
    6062 
    61     def buildGridFeature(self): 
     63    def addGridFeature(self): 
    6264        pass 
    6365        return feat 
    6466             
    65     def buildPointSeriesFeature(self): 
     67    def addPointSeriesFeature(self): 
    6668        pass 
    6769        return feat 
    6870             
    69     def buildProfileSeriesFeature(self): 
     71    def addProfileSeriesFeature(self): 
    7072        pass 
    7173        return feat 
    7274 
    73     def buildGridSeriesFeature(self): 
     75    def addGridSeriesFeature(self): 
    7476        pass 
    7577        return feat 
    7678                         
    77     def buildTrajectoryFeature(self): 
     79    def addTrajectoryFeature(self): 
    7880        pass 
    7981        return feat 
    80      
    81     def addFeature(self,featureID): 
    82         #Pass a feature and have it appended to the feature collection. 
    83         pass 
    8482 
    85     def addFileExtract(self): 
    86         #handles the addition of file extract classes (can probably get away with one method for all types of extracts) 
    87         pass 
    88      
     83    def addFileExtract(self,extractType, id, variableName=None,arraySize=None,fileName=None): 
     84        #handles the addition of file extract classes (can probably get away with one method for all types of extracts for now) 
     85        if extractType=='NetCDFExtract': 
     86            ex=NetCDFExtract() 
     87        if extractType=='NASAAmesExtract': 
     88            ex=NASAAmesExtract()  
     89        if extractType=='GRIBExtract': 
     90            ex=GRIBExtract()  
     91        if extractType=='PPExtract': 
     92            ex=PPExtract()  
     93        ex.id =id 
     94        if arraySize: 
     95            ex.arraySize=[arraySize] 
     96        if fileName: 
     97            ex.fileName=fileName 
     98        if variableName: 
     99            ex.variableName=variableName 
     100        self.ad.append(ex) 
     101 
     102 
    89103    def removeFileExtract(self): 
    90104        #not implemented yet 
     
    101115        #not implemented yet. 
    102116        pass 
     117     
     118    def setBoundingEnvelope(self,lowerCorner,upperCorner,timePosition1,timePosition2): 
     119        #set the bounding box envelope of the feature collection. 
     120        etp = EnvelopeWithTimePeriod() 
     121        etp.lowerCorner=lowerCorner 
     122        etp.upperCorner=upperCorner 
     123        etp.timePosition=timePosition1 
     124        etp.timePosition2=timePosition2 
     125        self.fc.boundedBy=etp 
     126        pass 
     127     
    103128    def consolidate(self): 
    104         #when you have finished building the document, need to consolidate it and return a CSML document. 
    105         return csmldoc 
     129        #when you have finished building the document, need to consolidate it and return a CSML document (string) 
     130        self.ds.arrayDescriptors=self.ad 
     131        csml=self.ds.toXML() 
     132        #parse and pretty print the result 
     133        strCSML=parser_extra.PrettyPrint(csml) 
     134        strCSML=parser_extra.removeInlineNS(strCSML) 
     135        return strCSML 
     136 
     137     
     138#test building a CSML document 
     139def main(): 
     140    csml=CSMLdocBuild('mydoc', 'http://mycsmldoc.com') 
     141    csml.addFileExtract('NetCDFExtract', 'myNCextract', variableName='myVar',arraySize=30,  fileName='myfile.nc') 
     142    csml.addFileExtract('NASAAmesExtract', 'myNAextract', variableName='myVar2',arraySize=40,  fileName='myfile2.nc') 
     143    #csml.addGridSeriesFeature() 
     144    #csml.addGridSeriesFeature() 
     145    #csml.addPointFeature() 
     146    #csml.addDefintion() 
     147    strCSML=csml.consolidate() 
     148    print strCSML 
     149 
     150main() 
Note: See TracChangeset for help on using the changeset viewer.