Changeset 672


Ignore:
Timestamp:
14/03/06 09:51:45 (13 years ago)
Author:
domlowe
Message:

coverageFunction added, Grid Feature/Domain? part added

File:
1 edited

Legend:

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

    r671 r672  
    455455     +fileOffset[0..1]: int 
    456456    """ 
    457     def __init__(self,parameterCode=None,recordNumber=None,fileOffset=None, 
    458                  *args,**kwargs): 
     457    def __init__(self,parameterCode=None,recordNumber=None,fileOffset=None, *args,**kwargs): 
    459458        AbstractFileExtract.__init__(self,*args,**kwargs) 
    460459        if parameterCode: 
     
    503502            csmlFrag.attrib['srsName']=self.srsName 
    504503        return csmlFrag 
    505  
     504         
     505class MappingRule(MutableString): 
     506    """Class representing a GML MappingRule element(string): 
     507    """ 
     508    def __init__(self,val=''): 
     509        MutableString.__init__(self,val) 
     510    def fromXML(self,csmlFrag): 
     511        self.data = csmlFrag.text 
     512        if csmlFrag.attrib.has_key('scanOrder'): 
     513            self.scanOrder=csmlFrag.attrib['scanOrder'] 
     514    def toXML(self,csmlFrag): 
     515        csmlFrag.text = self.data 
     516        if hasattr(self,'scanOrder'): 
     517            csmlFrag.attrib['scanOrder']=self.scanOrder 
     518        return csmlFrag 
     519 
     520     
     521     
     522     
     523     
    506524class AbstractDiscreteCoverage(AbstractGML): 
    507525     #note, does not inherit directly from AbstractGML but is sufficient for CSML purposes to inherit the standard GML attributes 
     
    521539                self.rangeSet.fromXML(frag) 
    522540            if frag.tag == GML('coverageFunction'): 
    523                 pass #TO DO!!  
     541                self.coverageFunction=MappingRule() 
     542                for subFrag in frag.getchildren(): 
     543                    if subFrag.tag==CSML('MappingRule'): 
     544                        self.coverageFunction.fromXML(subFrag) 
    524545 
    525546 
     
    530551            RangeSet.toXML(self.rangeSet,frag) 
    531552            csmlFrag.append(frag) 
    532  
    533         #to DO : CoverageFunction 
     553        if hasattr(self,'coverageFunction'): 
     554            frag = Element(GML('coverageFunction')) 
     555            subFrag=Element(CSML('MappingRule')) 
     556            MappingRule.toXML(self.coverageFunction,subFrag) 
     557            frag.append(subFrag) 
     558            csmlFrag.append(frag) 
    534559        return csmlFrag 
    535560         
     
    618643                elif subfrag.tag == CSML('OrientedTrajectory'): 
    619644                    self.domainReference=OrientedTrajectory() 
     645                elif subfrag.tag == GML('TimeInstant'): 
     646                    self.domainReference=TimeInstant() 
    620647                self.domainReference.fromXML(subfrag) 
    621648            if frag.tag == CSML('domainComplement'): 
     
    867894        return csmlFrag 
    868895 
    869  
     896class AbstractGeometryType(AbstractGML): 
     897    def __init__(self, low=None, high=None): 
     898        AbstractGML.__init__(self) 
     899        if low: 
     900            self.low=low 
     901        if high: 
     902            self.high=high 
     903    def fromXML(self, csmlFrag): 
     904        AbstractGML.fromXML(self,csmlFrag) 
     905    def toXML(self,csmlFrag): 
     906        AbstractGML.toXML(self,csmlFrag) 
     907        return csmlFrag 
     908 
     909 
     910class GmlGrid(AbstractGeometryType): 
     911    #Class GmlGrid, representing a gml:Grid element. 
     912    #  +dimension positiveInteger [1] 
     913    # +gml:limits  (gml:GridLimitsType) </gml:limits> [1] 
     914    #+gml:axisName  (string) [1..*] 
     915    def __init__(self,dimension=None,limits=None,axisName=None): 
     916        AbstractGeometryType.__init__(self) 
     917        if dimension: 
     918            self.dimension=dimension 
     919        if limits: 
     920            self.limits=limits 
     921        if axisName: 
     922            self.axisName=axisName 
     923    def fromXML(self, csmlFrag): 
     924        AbstractGeometryType.fromXML(self,csmlFrag) 
     925        for frag in csmlFrag.getchildren(): 
     926            pass 
     927        #if frag.tag ==  
     928    def toXML(self,csmlFrag): 
     929        AbstractGeometryType.toXML(self,csmlFrag) 
     930        return csmlFrag 
     931 
     932class Grid(GmlGrid): 
     933    def __init__(self): 
     934        GmlGrid.__init__(self) 
     935    def fromXML(self, csmlFrag): 
     936        GmlGrid.fromXML(self,csmlFrag) 
     937    def toXML(self,csmlFrag): 
     938        GmlGrid.toXML(self,csmlFrag) 
     939        return csmlFrag 
     940 
     941class TimeInstant: 
     942     
     943    def __init__(self, timePosition=None): 
     944        if timePosition: 
     945            self.timePosition=timePosition 
     946    def fromXML(self,csmlFrag): 
     947        for frag in csmlFrag.getchildren(): 
     948            print frag.tag 
     949            if frag.tag==GML('timePosition'): 
     950                self.timePosition=frag.text 
     951    def toXML(self,csmlFrag): 
     952         if hasattr(self,'timePosition'): 
     953            frag = Element(GML('timePosition')) 
     954            frag.text=self.timePosition 
     955            csmlFrag.append(frag) 
     956         return csmlFrag 
     957          
    870958class Measure: 
    871959    def __init__(self, uom=None): 
     
    11641252    #      +ProfileSeriesDomain 
    11651253 
    1166     def __init__(self,ProfileDomain=None,*args,**kwargs): 
     1254    def __init__(self,ProfileSeriesDomain=None,*args,**kwargs): 
    11671255        AbstractStaticCoverageFeature.__init__(self,*args,**kwargs) 
    1168         if ProfileDomain: 
     1256        if ProfileSeriesDomain: 
    11691257            self.ProfileSeriesDomain=ProfileSeriesDomain 
    11701258    def fromXML(self,csmlFrag): 
     
    11831271 
    11841272 
    1185 class GridFeature: 
    1186     def __init__(self): 
    1187         pass 
    1188     def fromXML(self,csmlFrag): 
    1189         pass 
    1190     def toXML(self,csmlFrag): 
     1273class GridFeature(AbstractStaticCoverageFeature): 
     1274#CSML GridFeature class 
     1275    #       GridFeature(AbstractStaticCoverageFeature): 
     1276    #      +GridDomain 
     1277 
     1278    def __init__(self,GridDomain=None,*args,**kwargs): 
     1279        AbstractStaticCoverageFeature.__init__(self,*args,**kwargs) 
     1280        if GridDomain: 
     1281            self.GridDomain=GridDomain 
     1282    def fromXML(self,csmlFrag): 
     1283        AbstractStaticCoverageFeature.fromXML(self,csmlFrag) 
     1284        for frag in csmlFrag.getchildren(): 
     1285            if frag.tag == CSML('GridDomain'): 
     1286                self.GridDomain = GridDomain() 
     1287                self.GridDomain.fromXML(frag) 
     1288    def toXML(self,csmlFrag): 
     1289        AbstractStaticCoverageFeature.toXML(self,csmlFrag) 
     1290        if hasattr(self,'GridDomain'): 
     1291             frag = Element(CSML('GridDomain')) 
     1292             GridDomain.toXML(self.GridDomain,frag) 
     1293             csmlFrag.append(frag) 
    11911294        return csmlFrag 
    11921295 
Note: See TracChangeset for help on using the changeset viewer.