
Francesc Alted wrote:
A Monday 25 May 2009 19:55:28 Eric Firing escrigué:
If the aim is to come up with a method of saving numpy arrays that uses a standard protocol and does not introduce large dependencies, then could this be accomplished using netcdf instead of hdf5, specifically Roberto De Almeida's pupynere, which is already in scipy.io as netcdf.py? Or does hdf5 have essential characteristics for this purpose that netcdf lacks?
After looking a bit at the code of pupynere, there is the next line:
assert magic == 'CDF', "Error: %s is not a valid NetCDF 3 file" % self.filename
So, the current version of pupynere is definitely for version 3 of NetCDF, not version 4.
Yes, and I presume it will stay that way--which is fine for the question I am asking above. I should have said "netcdf3" explicitly. Its simplicity compared to hdf5 and netcdf4 is potentially a virtue. The question is, is it *too* simple for the intended purpose?
From what I understand, netCFD is based on on HDF5, at least as of the
version 4 release. Netcdf4 is indeed built on hdf5, but netcdf3 is not, and netcdf3 format is likely to stick around for a *very* long time. The netcdf4 library is backwards-compatible with netcdf3.
NetCDF4 is backwards-compatible with NetCDF3 just at API level, not the file format. NetCDF3 has a much more simple format, and completely different from NetCDF4, which is based on HDF5.
Yes, but the netcdf4 *library* includes full netcdf3 compatibility; you can read and write netcdf3 using the netcdf4 library. For example, you can build Jeff Whitaker's http://code.google.com/p/netcdf4-python/ with all the hdf5 bells and whistles, and it will still happily read and, upon request, write netcdf3 files. Eric
Cheers,