This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Paulo, > I'92m a member of the team that made a marine numerical model called > Mohid (http://www.mohid.com). We have follow since the early days > the policy of writing our fields in hdf. We now write all our model > results in hdf5. > > Now we want to publish via OpenDap and ncWMS our operational model > results. One way is to develop a tool able to convert HDF5 in > NetCDF4 following the CF convention (V1.4). > > However in report publish by the HDF group it is state: > > ?NetCDF-4 is an I/O software package that retains the original > netCDF APIs while using HDF5 to store the data.? That's an over-simplification. NetCDF-4 has added many functions to the original netCDF-3 APIs to support an enhanced data model (groups, user-defined types, additional primitive types) and performance-related features (chunking, compression, parallel I/O, efficient additions to data schema). NetCDF-4 supports four format variants (classic, 64-bit offset, netCDF-4, and netCDF-4 classic model), the latter two of which use HDF5 for a storage layer. > My question: > > If NetCDF4 is build in top of HDF5 there is a more efficiency method > to convert one format in another without developing a tool that uses > NetCDF and HDF libs and convert one file format in another file > format? > > We have done that for NetCDF3 but right now looks a little bit > strange to maintain the same methodology if NetCDF4 understands > somehow HDF5. That's a good question. NetCDF-4 intentionally supports a simpler data model than HDF5, so there are HDF5 files that cannot easily be converted to netCDF-4. Also netCDF-4 has "shared dimensions", which can be used to define the shape of multiple variables (netCDF "variable = HDF5 "datasets") to indicate that they are intended to be defined on a common grid. To implement the concept of netCDF shared dimensions, netCDF-4 uses the new HDF5 "dimension scales" concept. So in answer to your question, HDF5 files that use the subset of features implemented in netCDF-4 can be accessed as netCDF-4 files with the addition of a dimension scale for each shared dimension, following the netCDF-4 convention for how to represent a shared dimension as a dimension scale. This addition is fairly easy, More details may be found here: http://www.unidata.ucar.edu/netcdf/docs/netcdf-tutorial/Interoperability.html However, HDF5 files that make use of "HDF5 references", user-defined primitive types, or groups that are not organized in a strict hierarchy require more effort to convert to netCDF_4. We may eventually develop a tool to do this sort of conversion, but currently no such tool exists. --Russ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: MFJ-124252 Department: Support netCDF Priority: Normal Status: Closed