Changeset 1466


Ignore:
Timestamp:
31/08/06 14:28:50 (13 years ago)
Author:
domlowe
Message:

changes to allow time values to use different reference systems within the same feature

Location:
TI02-CSML/trunk/Scanner/csmllibs
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/Scanner/csmllibs/csmldataiface.py

    r1462 r1466  
    104104 
    105105        def getTimeUnits(self): 
    106                 units ='?' 
     106                axes = self.getListOfAxes() 
     107                for axis in axes: 
     108                        if string.find(string.upper(axis),'SECONDS SINCE') != -1: 
     109                                #found possible time axis. 
     110                                if axis[-3:]=='UTC': 
     111                                    units =string.lower(axis[:-4]) #hack! 
     112                                    units=units.replace('/','-') #try and clean it up 
     113                                else: 
     114                                    units=string.lower(axis) 
     115                                break 
     116                        elif string.find(string.upper(axis),'HOURS SINCE') != -1: 
     117                                #found possible time axis. 
     118                                units =(str(axis)) 
     119                                break 
     120                        elif string.find(string.upper(axis),'DAYS SINCE') != -1: 
     121                                #found possible time axis. 
     122                                units =(str(axis)) 
     123                                break 
     124                         
    107125                #revisit with udunits python library? 
    108126                return units 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfeaturefilemap.py

    r1462 r1466  
    3333                self.repFile=filename 
    3434                self.relatedFiles=[] 
    35                 print "FILE" 
    36                 print filename 
    3735                 
    3836        def getRepresentativeFileName(self): 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfeaturetypes.py

    r1464 r1466  
    6767        self.timeString ='' 
    6868        self.filesinDir = '' 
     69        print len(OrderedFileTimeList) 
    6970        for j in range (0, len(OrderedFileTimeList)): 
     71            print j 
    7072            t= OrderedFileTimeList[j][0] 
    7173            f = OrderedFileTimeList[j][1] 
     
    194196    ###End of createCSMLGridSeriesFeatures### 
    195197 
    196  
    197      
    198198    def createCSMLPointSeriesFeatures(self):  
    199199        representativeFiles=self.ffmap.getRepresentativeFiles() 
    200200        for repfile in representativeFiles: 
    201201            self.repfilename,self.listOfFiles=self._populateListOfFiles(repfile) 
     202            self._getFilesAndTimes() 
    202203            DI = csmllibs.csmldataiface.DataInterface() 
    203204            DI=DI.getUnknownInterfaceType(self.repfilename) 
     
    225226                 
    226227                if self.timestorage =='inline': 
    227                     t.times=csmllibs.Parser.TimePositionList('#RefSysX',str(times)) 
     228                    tpl =csmllibs.Parser.TimePositionList() 
     229                    tpl.timePositions=self.timeString 
     230                    tpl.frame='%s:%s'%(self.caltype,self.units) 
     231                    t.times=tpl 
    228232                else: 
    229                     #todo: depends on the file mapping??? 
    230                     t.times=csmllibs.Parser.TimePositionList('#RefSysX','blah') #blah = dummy times  
     233                    # do something to create a single extract for the times (from the representative file). 
     234                    tpl.timePositions = csmllibs.csmlfileextracts.createSingleExtract(self.extractType, repfilename, self.timedim, len(self.timeString.split()))  
     235                    tpl.frame='%s:%s'%(self.caltype,self.units) 
     236                 
     237                 
     238#                 if self.timestorage =='inline': 
     239#                     t.times=csmllibs.Parser.TimePositionList('#RefSysX',str(times)) 
     240#                 else: 
     241#                     #todo: depends on the file mapping??? 
     242#                     t.times=csmllibs.Parser.TimePositionList('#RefSysX','blah') #blah = dummy times  
    231243#                 print 'times: ' + str(allVarNames[i]) 
    232244#                 print len(times) 
  • TI02-CSML/trunk/Scanner/csmllibs/csmlfiles.py

    r1462 r1466  
    9090        repfile.setFeatureType(self.ft) 
    9191        #create related files from all other files 
    92         for f in allfiles[:]: 
     92        for f in allfiles[1:]: 
    9393            relfile = csmllibs.csmlfeaturefilemap.relatedFile(f) 
    9494            relfile.setFeatureType(self.ft) 
  • TI02-CSML/trunk/Scanner/csmllibs/csmltime.py

    r1464 r1466  
    4141 
    4242def getFileTimeList(filelist, timedim): 
    43      
    4443        #**************************************************************************************** 
    4544        #Given a list of files and a name for the time dimension this function will return a list containing 
     
    4847        #[(ta1,ta2,ta3,fa),(tb1,tb2,tb3,fb),(tc1,tc2,tc3,fc)] 
    4948        #***************************************************************************************** 
    50         FileTimeList = [] 
     49        FileTimeList = []  #list to hold the filesnames and corrsponding times 
    5150        DI=csmllibs.csmldataiface.DataInterface() 
    5251        #grab any (first) file                   
     
    5655                try: 
    5756                        DI.setAxis(timedim) 
     57                        data =DI.getDataForAxis() 
    5858                except: 
    59                         print "Could not set time axis" 
    60                         print "check you have the correct time axis (-t) set" 
    61                         sys.exit() 
    62                 data =DI.getDataForAxis() 
     59                        try: 
     60                            data=DI.getTimes() 
     61                        except: 
     62                            print 'tried alternative method to get time axis and failed' 
     63                            print "check you have the correct time axis (-t) set" 
     64                            sys.exit() 
    6365                times=[] 
    6466                for j in range(0,len(data)): 
    6567                        times.append(data[j]) 
    66                 ftTuple = (times, filelist[i]) 
     68                refTime=DI.getTimeUnits()   #maybe this can be optional? 
     69                ftTuple = (times, filelist[i],refTime) 
    6770                FileTimeList.append(ftTuple) 
    6871                DI.closeFile() 
     
    7982            cal='' 
    8083        try: 
    81             setcdtimeCalendar(cal) 
    8284            units=DI.getAxisAttribute('units') 
    8385        except: 
    8486            print "Could not get time unit info" 
    8587            units ='' 
    86              
    8788        FileTimeList.sort() 
    8889        #get the reference date for the time reference system. 
    89         refTime=DI.getTimeUnits() 
     90        #refTime=DI.getTimeUnits() 
    9091        DI.closeFile() 
    9192        FormattedFileTimeList = [] 
    92         for j in range (0,len(FileTimeList)): 
     93        for j in range (0,len(FileTimeList)): 
    9394                timeList = FileTimeList[j][0] 
     95                refTime=FileTimeList[j][2] 
    9496                #print 'timelist_____________________' +str(timeList) 
    95                 for k in range(0, len(timeList)): 
     97                print len(timeList) 
     98                #for k in range(0, len(timeList)): 
     99                for k in range(1, 3): 
     100                        print 'REFTIME: %s  + TIME: %s '%(refTime,timeList[k]) 
    96101                        relativetime= cdtime.reltime(timeList[k], refTime) 
     102                        print 'RELATIVE %s:'%relativetime 
     103                         
     104                        print cdtime.DefaultCalendar 
     105                        print relativetime.tocomp() 
    97106                        uduTime=UDtimeToCSMLtime(relativetime.tocomp()) 
     107                        print 'udtutime %s:'%uduTime 
    98108                        ftTuple = (uduTime, filelist[j]) 
    99109                        FormattedFileTimeList.append(ftTuple)                    
    100         return FormattedFileTimeList, cal,units 
     110        print  'finished time list' 
     111        return FormattedFileTimeList, cal,units 
Note: See TracChangeset for help on using the changeset viewer.