Changeset 2290


Ignore:
Timestamp:
19/03/07 09:51:59 (12 years ago)
Author:
domlowe
Message:

subset ProfileSeries to Profile, netcdf working

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

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/API/ops_ProfileSeriesFeature.py

    r2288 r2290  
    7171    pathToSubsetNetCDF, crs, timeName, times, strTimes, calunits, caltype, axisorder,units, fulldata, fillvalue, kwargs=self._subsetProfileSeries(csmlpath, ncpath,**kwargs)  
    7272     
    73     #print crs 
    74     #print timeName 
    75     #print times 
    76     #print strTimes 
    77     #print calunits 
    78     #print caltype 
    79     #print axisorder 
    80     #print units 
    81     #print fillvalue 
    82     #print kwargs   
    83     #import sys 
    84      
    85      
    8673    (time, lat, lon)=(crs.axes[crs.timeAxis],crs.axes[crs.latAxis], crs.axes[crs.lonAxis]) 
    8774    print axisorder 
     
    124111  
    125112    ### write netcdf using NCWriter class (wraps cdms) ### 
    126     #nc=csml.csmllibs.netCDFWriter.NCwriter(pathToSubsetNetCDF) 
    127     #ords=None 
    128     #axislist=[] 
    129     #for a in axisorder: 
    130         #axislist.append(self.gridnames[a]) 
    131     #nc.genWriteVar(self.id,ords, times, calunits, caltype, axislist, units, fulldata, fillvalue) 
    132     #nc.closeFinishedFile() 
     113    nc=csml.csmllibs.netCDFWriter.NCwriter(pathToSubsetNetCDF) 
     114    axislist=[] 
     115    for a in axisorder: 
     116        if self.gridnames.has_key(a): 
     117            axislist.append(self.gridnames[a]) 
     118        else: 
     119            axislist.append(a) 
     120    ords=None 
     121    nc.genWriteVar(self.id,ords, times, calunits, caltype, axislist, units, fulldata, fillvalue) 
     122    nc.closeFinishedFile() 
    133123    print 'NetCDF file written to %s'%pathToSubsetNetCDF 
    134124    return subsettedFeature, pathToSubsetNetCDF 
  • TI02-CSML/trunk/csml/csmllibs/csmldataiface.py

    r2275 r2290  
    342342    def openFile(self, filename): 
    343343        self.file=cdms.open(filename) 
    344         #print 'cdunifopen ' + filename 
    345344 
    346345        #now we have the file name can properly determine extractType/Prefix 
     
    429428        return data 
    430429 
    431     def getSubsetOfDataForVar(self, **kwargs): 
     430    def getSubsetOfDataForVar(self, **kwargs):       
     431        print 'subset...' 
     432        print kwargs 
     433         
     434         
    432435        #takes keyword args defining subset eg 
    433436        #subset=getSubsetOfDataForVar(latitude=(0.,10.0), longitude=(90, 100.0)) 
  • TI02-CSML/trunk/csml/csmllibs/netCDFWriter.py

    r2288 r2290  
    6363        self.addAxis('time',floatTimes,isTime=1,units=calunits,calendar=caltype) 
    6464        axesdone.append('time') 
    65         for ord in enumerate(ordinates): 
    66             vals=[] 
    67             lon,lat=None,None 
    68             if ord[1].coordAxisLabel.CONTENT=='time': 
    69                 continue 
    70             else: 
    71                 for val in ord[1].coordAxisValues.coordinateList.CONTENT.split(','): 
    72                     if val != ' ': 
    73                         vals.append(float(val))   
    74             if ord[1].coordAxisLabel.CONTENT=='longitude': 
    75                 lon=1 
    76                 name='longitude' 
    77             elif ord[1].coordAxisLabel.CONTENT=='latitude': 
    78                 lat=1 
    79                 name='latitude' 
    80             else: 
    81                 name=ord[1].coordAxisLabel.CONTENT 
    82             for ax in enumerate(axisorder): 
    83                 if ax[1]==name: 
    84                     position=ax[0] 
    85             axesdone.append(name) 
    86             self.addAxis(name,vals,isLon=lon,isLat=lat,units=unitlist[position])#to do, units attribute for CF compliance 
     65        if ordinates is not None: 
     66            for ord in enumerate(ordinates): 
     67                vals=[] 
     68                lon,lat=None,None 
     69                if ord[1].coordAxisLabel.CONTENT=='time': 
     70                    continue 
     71                else: 
     72                    for val in ord[1].coordAxisValues.coordinateList.CONTENT.split(','): 
     73                        if val != ' ': 
     74                            vals.append(float(val))   
     75                if ord[1].coordAxisLabel.CONTENT=='longitude': 
     76                    lon=1 
     77                    name='longitude' 
     78                elif ord[1].coordAxisLabel.CONTENT=='latitude': 
     79                    lat=1 
     80                    name='latitude' 
     81                else: 
     82                    name=ord[1].coordAxisLabel.CONTENT 
     83                for ax in enumerate(axisorder): 
     84                    if ax[1]==name: 
     85                        position=ax[0] 
     86                axesdone.append(name) 
     87                self.addAxis(name,vals,isLon=lon,isLat=lat,units=unitlist[position])#to do, units attribute for CF compliance 
    8788         
    8889        if kwargs is not None: 
Note: See TracChangeset for help on using the changeset viewer.