ANN: netcdf4-python version 0.5

Jeff Whitaker jswhit at fastmail.fm
Fri Sep 22 10:03:08 MDT 2006


A new release of the python netCDF4 python module (0.5) is now available 
that supports both compound and vlen data types.

Here's a simple example that shows how to create a compound data type, 
or table:


 >>> # open a new file for writing
 >>> import netCDF4
 >>> ncfile = netCDF4.Dataset('test.h5','w')
 >>> # create an unlimited dimension called 'station'
 >>> ncfile.createDimension('station',False)
 >>> # create a compound datatype.
 >>> # (a list of 3-tuples containing
 >>> # the name of each member, it's primitive data type, and it's size).
 >>> # Only fixed-size primitive data types allowed (no variable length
 >>> # strings, or other compound types)
 >>> # Members can be multi-dimensional arrays (in which case the third
 >>> # element is a shape tuple instead of a scalar).
 >>> datatype = [('latitude', 'f4',1), ('longitude', 'f4',1),
 >>>             ('sfc_press','i4',1), ('temp_sounding','f4',10)]
 >>> table = ncfile.createUserType(datatype,'compound','station_data')
 >>> # create a variable with this data type.
 >>> statdat = ncfile.createVariable('station_obs', table, ('station',))
 >>> # write one record of data.
 >>> statdat[0] = (40.78,-73.99,1002,
 >>>              (290.2,282.5,279.,277.9,276.,266.,264.1,260.,255.5,243.))
 >>> # close and reopen the file, take a look at the data.
 >>> ncfile.close()
 >>> ncfile = netCDF4.Dataset('test.h5')
 >>> statdat = ncfile.variables['station_obs']
 >>> # retrieve the data.
 >>> statdatout = statdat[:]
 >>> # print the data type
 >>> print statdatout.dtype
[('latitude', '>f4'), ('longitude', '>f4'), ('sfc_press', '>i4'), 
('temp_sounding', '>f4', (10,))]
 >>> # print the data.
 >>> print statdatout[:]
[ (40.779998779296875, -73.989997863769531, 1002, array([ 290.20001221,  
282.5       ,  279.        ,  277.8999939 ,
       276.        ,  266.        ,  264.1000061 ,  260.        ,
       255.5       ,  243.        ], dtype=float32))]


The primary restriction is that you can't yet have nested compound data 
types (compound data types whose elements are also compound data types).
The netCDF4_classic module provides a high-degree of compatibility with 
the most popular python netCDF3 module, Scientific.IO.NetCDF.  It can 
read or write NETCDF3 and NETCDF4_CLASSIC files, and can use zlib 
compression in NETCDF4_CLASSIC mode.
For more information,  and to download the source, see

http://code.google.com/p/netcdf4-python/

Regards,

-Jeff

P.S.  Russ or Ed, could you update the URL on 
http://www.unidata.ucar.edu/software/netcdf/software.html to point to 
the google URL?

-- 
Jeffrey S. Whitaker         Phone  : (303)497-6313
Meteorologist               FAX    : (303)497-6449
NOAA/OAR/PSD  R/PSD1        Email  : Jeffrey.S.Whitaker at noaa.gov
325 Broadway                Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg

==============================================================================
To unsubscribe netcdfgroup, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================



More information about the netcdfgroup mailing list