Changeset 2499 for TI02-CSML


Ignore:
Timestamp:
21/05/07 14:18:14 (12 years ago)
Author:
domlowe
Message:

time variable now added to netcdf file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/csmllibs/netCDFWriter.py

    r2495 r2499  
    2929            setattr(ax, key,kwargs[key]) 
    3030        self.axes.append(ax) 
    31         pass 
     31         
    3232     
     33    def getAxis(self, axID): 
     34        for axis in self.axes: 
     35            if axis.id == axID: 
     36                return axis 
     37     
     38     
     39     
     40    def addTimeVariable(self,timeval):   
     41        dataarray=MV.array(timeval) 
     42        #dataarray.id='time' 
     43        #dataarray.name ='time' 
     44        ax=self.getAxis('time') 
     45        dataarray.setAxis(0,ax)             
     46        self.nc.write(dataarray) 
     47         
     48         
    3349    def addVariable(self,data, variableName,axesList, fillvalue,  **kwargs):         
    3450        #creates a new variable containing data with named attributes from **kwargs 
     
    3955            setattr(dataarray, key,kwargs[key]) 
    4056        axisCount=0 
    41          
     57 
    4258        #depending on whether time is modelled in the underlying data as a dimension or not the shapes may not match 
    4359        if len(dataarray.shape) < len(axesList):   
     60            #take time out and create a separate variable 
    4461            newaxesList=[] 
    4562            for a in axesList: 
     
    4865            axesList=newaxesList 
    4966        if hasattr(self, 'axes'): 
     67            #sys.exit() 
    5068            for axis in axesList: 
    5169                for ax in self.axes: 
     
    6381        tOne=csml.csmllibs.csmltime.getCDtime(times[0]) 
    6482        tbase=csml.csmllibs.csmltime.getBaseUnits(tOne) 
    65          
    6683        for time in times: 
    6784            time=csml.csmllibs.csmltime.getCDtime(time).torel(tbase) 
    6885            floatTimes.append(time.value) 
    6986        self.addAxis('time',floatTimes,isTime=1,units=tbase,calendar=caltype) 
    70      
     87   
    7188        axesdone.append('time') 
    7289        if ordinates is not None: 
     
    108125                self.addAxis(name,vals,isLon=lon,isLat=lat,units=unitlist[position]) 
    109126                axesdone.append(name)         
    110                  
    111127        self.addVariable(fulldata,varid, axisorder, fillvalue, units=unitlist[-1] ) #to do, units attribute for CF compliance 
     128 
     129        for ax in self.axes: 
     130            if ax.id =='time': 
     131                if self.nc.variables.has_key('time') is False: 
     132                    self.addTimeVariable(floatTimes) 
     133         
    112134         
    113135    def closeFinishedFile(self): 
Note: See TracChangeset for help on using the changeset viewer.