Changeset 1355


Ignore:
Timestamp:
03/08/06 12:19:53 (13 years ago)
Author:
domlowe
Message:

more changes to allow full use of ArrayGenerator class, including change and some corrections to parser code

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

Legend:

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

    r1352 r1355  
    22from API import * 
    33import sys 
    4  
     4import cdtime 
     5     
    56def getGeneratedValues(self,frame, summary=None): 
    67    #For times, given a CF 'frame' generate a list of times. 
     
    1011    cal=frame.split(':',1)[0] 
    1112    basedate=frame.split(':',1)[1] 
    12     print cal 
    13     print basedate 
    14      
    15     if self.uom == 'udunits.xml#seconds': 
    16         pass 
    17     if self.uom == 'udunits.xml#minutes': 
    18         pass 
    19     if self.uom == 'udunits.xml#hours': 
    20         pass 
    21     if self.uom == 'udunits.xml#days': 
    22         pass 
    23      
    24     start=self.expression.split(':')[0] 
    25     interval=self.expression.split(':')[1] 
    26     end=self.expression.split(':')[2] 
    27      
     13    csmltime.setcdtimeCalendar(cal) 
     14    start=int(self.expression.split(':')[0]) 
     15    interval=int(self.expression.split(':')[1]) 
     16    end=int(self.expression.split(':')[2]) 
     17    cdtime.DefaultCalendar=cdtime.MixedCalendar 
    2818    if summary is not None: 
    2919        #return a summary of times (min, interval, max)  using cdtime 
    30         pass 
     20        timelist=[] 
     21        tmin = cdtime.reltime(start, basedate).tocomp() 
     22        tmin=csmltime.UDtimeToCSMLtime(tmin) 
     23        tmax = cdtime.reltime(end, basedate).tocomp() 
     24        tmax=csmltime.UDtimeToCSMLtime(tmax) 
     25        timelist.append(tmin) 
     26        timelist.append(tmax) 
     27        print timelist 
     28        print cdtime.DefaultCalendar 
     29        
    3130    else: 
    32         #use cdtime to return a full list of times 
    33         pass 
    34          
     31        #use cdtime to return a full list of times - may take a long time.. 
     32        timelist=[] 
     33        t = cdtime.reltime(start, basedate).tocomp() 
     34        for i in range(start, end, interval): 
     35            t = t.add(60,cdtime.Seconds) 
     36            #t = cdtime.reltime(i, basedate).tocomp() 
     37            #t=csmltime.UDtimeToCSMLtime(t) 
     38            timelist.append(t) 
     39        print timelist[:150] 
    3540         
    3641     
    37     pass 
     42    return timelist 
    3843     
  • TI02-CSML/trunk/parser/API/ops_PointSeriesFeature.py

    r1352 r1355  
    1818            time = {} 
    1919            timeframe=self.domain.domainReference.times.frame 
    20             time['t'] = self.domain.domainReference.times.timePositions.getGeneratedValues(timeframe) 
     20            time['t'] = self.domain.domainReference.times.timePositions.getGeneratedValues(timeframe, summary=1) 
    2121            domainref  = time 
    2222        else: 
  • TI02-CSML/trunk/parser/Parser.py

    r1352 r1355  
    25922592        AssociationAttributeGroup.__init__(self,*args,**kwargs) 
    25932593    def fromXML(self,csmlFrag): 
    2594         self.timePositions=csmlFrag.text 
     2594        for frag in csmlFrag.getchildren(): 
     2595            if frag.tag == CSML('NetCDFExtract'): 
     2596                self.timePositions=NetCDFExtract() 
     2597                NetCDFExtract.fromXML(self.timePositions,frag) 
     2598            elif frag.tag == CSML('NASAAmesExtract'): 
     2599                self.timePositions=NASAAmesExtract() 
     2600                NASAAmesExtract.fromXML(self.timePositions,frag) 
     2601            elif frag.tag == CSML('GRIBExtract'): 
     2602                self.timePositions=GRIBExtract() 
     2603                GRIBExtract.fromXML(self.timePositions,frag) 
     2604            elif frag.tag == CSML('PPExtract'): 
     2605                self.timePositions=PPExtract() 
     2606                PPExtract.fromXML(self.timePositions,frag) 
     2607            elif frag.tag == CSML('AggregatedArray'): 
     2608                self.timePositions=AggregatedArray() 
     2609                AggregatedArray.fromXML(self.timePositions,frag) 
     2610            elif frag.tag == CSML('ArrayGenerator'): 
     2611                self.timePositions=ArrayGenerator() 
     2612                ArrayGenerator.fromXML(self.timePositions,frag) 
     2613            else: 
     2614                self.timePositions=csmlFrag.text 
    25952615        if csmlFrag.attrib.has_key('frame'): 
    25962616            self.frame = csmlFrag.attrib['frame'] 
     
    26142634                PPExtract.toXML(self.timePositions,subFrag) 
    26152635                csmlFrag.append(subFrag) 
     2636            elif  isinstance(self.timePositions, AggregatedArray): 
     2637                subFrag=Element(CSML('AggregatedArray')) 
     2638                AggregatedArray.toXML(self.timePositions,subFrag) 
     2639                csmlFrag.append(subFrag) 
    26162640            elif  isinstance(self.timePositions, ArrayGenerator): 
    26172641                subFrag=Element(CSML('ArrayGenerator')) 
     
    26592683            self.val=val 
    26602684    def fromXML(self,csmlFrag): 
    2661         self.val=csmlFrag.text 
    2662         if csmlFrag.attrib.has_key('uom'): 
    2663             self.uom = csmlFrag.attrib['uom'] 
     2685        for frag in csmlFrag.getchildren(): 
     2686            if frag.tag == CSML('NetCDFExtract'): 
     2687                self.val=NetCDFExtract() 
     2688                NetCDFExtract.fromXML(self.val,frag) 
     2689            elif frag.tag == CSML('NASAAmesExtract'): 
     2690                self.val=NASAAmesExtract() 
     2691                NASAAmesExtract.fromXML(self.val,frag) 
     2692            elif frag.tag == CSML('GRIBExtract'): 
     2693                self.val=GRIBExtract() 
     2694                GRIBExtract.fromXML(self.val,frag) 
     2695            elif frag.tag == CSML('PPExtract'): 
     2696                self.val=PPExtract() 
     2697                PPExtract.fromXML(self.val,frag) 
     2698            elif frag.tag == CSML('AggregatedArray'): 
     2699                self.val=AggregatedArray() 
     2700                AggregatedArray.fromXML(self.val,frag) 
     2701            elif frag.tag == CSML('ArrayGenerator'): 
     2702                self.val=ArrayGenerator() 
     2703                ArrayGenerator.fromXML(self.val,frag) 
     2704            else: 
     2705                self.val=csmlFrag.text 
     2706            if csmlFrag.attrib.has_key('uom'): 
     2707                self.uom = csmlFrag.attrib['uom'] 
    26642708    def toXML(self, csmlFrag): 
    26652709        if hasattr(self,'val'): 
     
    26802724                PPExtract.toXML(self.val,subFrag) 
    26812725                csmlFrag.append(subFrag) 
     2726            elif  isinstance(self.val, ArrayGenerator): 
     2727                subFrag=Element(CSML('ArrayGenerator')) 
     2728                ArrayGenerator.toXML(self.val,subFrag) 
     2729                csmlFrag.append(subFrag) 
     2730             elif  isinstance(self.val, AggregatedArray): 
     2731                subFrag=Element(CSML('AggregatedArray')) 
     2732                AggregatedArray.toXML(self.val,subFrag) 
     2733                csmlFrag.append(subFrag) 
    26822734            else: 
    26832735                csmlFrag.text = self.val 
     
    28962948                self.arrayDescriptor=NetCDFExtract() 
    28972949                NetCDFExtract.fromXML(self.arrayDescriptor,frag) 
    2898             elif frag.tag == CSML('NASAmesExtract'): 
     2950            elif frag.tag == CSML('NASAAmesExtract'): 
    28992951                self.arrayDescriptor=NASAAmesExtract() 
    29002952                NASAAmesExtract.fromXML(self.arrayDescriptor,frag) 
Note: See TracChangeset for help on using the changeset viewer.