Go to the previous, next section.

Answers to Some Frequently Asked Questions

Here we collect, in one place, answers to some of the most frequently asked questions about netCDF availability and support. A more comprehensive and up-to-date list of answers to frequently asked questions about netCDF is maintained in a file available for anonymous FTP access from:

host:  ftp.unidata.ucar.edu
file:  pub/netcdf/FAQ

What is netCDF?

NetCDF (network Common Data Form) is an interface for scientific data access and a freely-distributed software library that provides an implementation of the interface. It was developed by Glenn Davis, Russ Rew, and Steve Emmerson at the Unidata Program Center in Boulder, Colorado. The netCDF library also defines a machine-independent format for representing scientific data. Together, the interface, library, and format support the creation, access, and sharing of scientific data.

NetCDF data is:

How do I get the netCDF software package?

Via anonymous FTP from

host:       ftp.unidata.ucar.edu
file:       pub/netcdf/netcdf.tar.Z

Make sure the file is transmitted in BINARY mode. This is version 2.3.2, last updated in June 1993, or later. There may also be some patch files available from the same directory to fix bugs found before the next version is released.

What does netCDF run on?

Version 2.3 of netCDF has been tested on the following platforms:

The experience of outside developers indicates that netCDF is relatively easy to port to any system that has a C compiler and an XDR library (eXternal Data Representation, used for NFS and usually supplied by vendors).

What is the connection between netCDF and CDF?

CDF was developed at the NASA Space Science Data Center at Goddard, and is freely available. It was originally a VMS FORTRAN interface for scientific data access. Unidata reimplemented the library from scratch to use XDR for a machine-independent representation, designed the CDL text representation for netCDF data, wrote a User's Guide and made other additions including aggregate data access, single-file implementation, named dimensions, and variable-specific attributes.

NetCDF and CDF have evolved independently. CDF now supports many of the same features as netCDF (aggregate data access, XDR representation, single-file representation, variable-specific attributes), but some differences remain (netCDF doesn't support native-mode representation, CDF doesn't support named dimensions).

What is the connection between netCDF and HDF?

The National Center for Supercomputing Applications (NCSA) developed the HDF software and makes it freely available. HDF is an extensible data format for self-describing files that was developed independently of netCDF. Applications and utilities based on HDF are available that support raster-image manipulation and display and browsing through multidimensional scientific data. The HDF software includes a package of routines for accessing each HDF data type, as well as a lower-level interface for building packages to support new types. HDF supports both C and Fortran interfaces, and it has been successfully ported to a wide variety of machine architectures and operating systems. HDF emphasizes a single common format for data, on which many interfaces can be built.

NCSA has implemented software that provides a netCDF interface to HDF. With this software, it is possible to use the netCDF calling interface to place data into an HDF file. The netCDF calling interface has not changed and netCDF files stored in XDR format are readable, so existing programs and data will still be usable (although programs will need to be relinked to the new library). There is currently no support for the mixing of HDF and netCDF structures. For example, a raster image can exist in the same file as a netCDF object, but you have to use the Raster Image interface to read the image and the netCDF interface to read the netCDF object. The other HDF interfaces are currently being modified to allow multi-file access, closer integration with the netCDF interface will probably be delayed until the end of that project.

Eventually, it may be possible to integrate netCDF objects with the rest of the HDF tool suite. Such an integration will then allow tools written for netCDF and tools written for HDF to both interact intelligently with the new data files.

What are the files in pub/netcdf/ on ftp.unidata.ucar.edu?

`README'
general information about netCDF

`FAQ'
A more up-to-date and extensive version of this list of frequently asked questions

`utilities.txt'
a list of software packages currently available or under development for manipulating and displaying netCDF data

`guide.ps.Z'
a compressed PostScript file of the NetCDF User's Guide. This is included in the netcdf.tar.Z distribution, so you don't need both.

`ncprogs.ps'
a draft PostScript document describing an initial set of netCDF operator and utility programs under development

`ncprogs.txt'
an ASCII version of ncprogs.ps

`Conventions/'
a directory intended for documents describing discipline-specific conventions from various groups that are using netCDF.

`cdl/'
a directory containing some examples of CDL files (an ASCII representation for netCDF files).

`msdos/'
a directory containing executables and binaries for netCDF under MSDOS 5.0. These can also be built from the sources in netcdf.tar.Z, if you have the necessary Microsoft compilers.

`mac/'
a directory containing notes and Macintosh MPW makefiles for porting netCDF to an Apple Macintosh.

Why do I get XDR error messages when trying to write data?

Probably due to a write error, perhaps because of exceeding disk quotas, a full device, or permission problems. The netCDF library is usually built on a vendor-supplied XDR library layer. Sometimes errors occur in the XDR layer rather than the netCDF layer, and in this case the error messages from the XDR layer can be cryptic. For example, if the user is writing data and exceeds a disk space quota, this might be detected first in the XDR layer. Although we try to catch and elaborate on errors that occur in the XDR layer, sometimes there is not enough information passed up to calling routines from the XDR layer to make construction of a meaningful error message possible.

What's the best way to represent data using netCDF?

There are many ways to represent the same information in any general-purpose data model. Choices left up to the user in the case of netCDF include which information to represent as variables or as variable attributes; what names to choose for variables, dimensions, and attributes; what order to use for the dimensions of multidimensional variables; what variables to include in the same netCDF file; and how to use variable attributes to capture the structure and meaning of data. We provide some guidelines in the NetCDF User's Guide (See section Differences between Attributes and Variables), but we've found that a little experience helps. Occasionally we have decided it was useful to change the structure of netCDF files after experience with how the data is used.

Are there plans to add facilities for data compression to netCDF?

We have no plans to add data compression to netCDF (although we do plan to eventually add a form of transparent data packing on write and unpacking on read whenever the reserved attributes _Nbits, _Scale, and _Offset are defined).

Hyperslab access and direct access to individual array values conflict with most simple compression schemes. With netCDF, the elements of an array variable can be filled in any order or as cross-sections in any direction. NetCDF permits writing elements in one order and reading them later in different orders.

Some compression methods require that all the data to be compressed are known before starting the compression. Techniques like run-length encoding or anything that depends on exploiting similarities in nearby values can't be used if nearby values aren't all known at the time some of the data are to be written.

An alternative that can be implemented above the netCDF library is to adopt a convention for compressed data that uses a "compression" attribute to encode the method of compression, e.g.

x:compression = "rle" ;
for run-length encoding of the data in a variable x. Then when you write the data, compress them into a bland array of bytes and write all the bytes. Note that it would be difficult to define the size of such a variable in advance, since its compressed size depends on its values. You would also have to give up on hyperslab access for such variables, but instead read the compressed array in all at once and uncompress it before using it.

What utilities are available for netCDF?

The only utilities available in the current netCDF distribution are ncdump and ncgen, for converting netCDF files to an ASCII human-readable form and for converting from the ASCII human-readable form back to a binary netCDF file or a C or FORTRAN program for generating the netCDF file. In addition, the first release of the netcdf operators package, containing a few general-purpose netCDF operators, is available from ftp.unidata.ucar.edu in the file `ncopers.tar.Z'. See the description of the file `utilities.txt' in the answer to the question above on important files in `/pub/netcdf' on ftp.unidata.ucar.edu for more information.

Is there a mailing list for netCDF discussions and questions?

Yes - there are two. The mailing list netcdfgroup@unidata.ucar.edu has over two hundred readers and gateways; you can subscribe or unsubscribe to the mailing list by sending mail to netcdfgroup-adm@unidata.ucar.edu.

If you would prefer to get only a single daily digest of the postings to the netcdfgroup mailing list, subscribe instead to the netcdfdigest mailing list by sending a request to netcdfdigest-adm@unidata.ucar.edu.

All the postings to the netcdfgroup mailing list are archived in the file `mail-archives/netcdfgroup' available via anonymous FTP from ftp.unidata.ucar.edu.

How do I make a bug report?

If you find a bug, please send a description to support@unidata.ucar.edu.

This is also a better address to use for questions or discussions about netCDF that you think are not appropriate for the entire netcdfgroup mailing list.

How widely is netCDF used?

The netcdfgroup and netcdfdigest mailing lists have 290 addresses, some of which are aliases to more addresses, in fifteen countries. Users in several groups have adopted netCDF as a standard way to represent at least some kinds of scientific datasets.

Is there any WAIS or gopher access to netCDF information?

Yes, `netcdf-group.src' is a WAIS source that provides a full-text search of the netcdfgroup mailing list archive and is registered with think.com for general use.

Another WAIS source, `unidata-support-netcdf.src', provides a full-text search of the support questions and answers about netCDF provided by Unidata support staff.

Both of these WAIS servers and access to other information about Unidata can be accessed most easily through the Unidata gopher server at gopher.unidata.ucar.edu.

Go to the previous, next section.