UCAR Netcdf API Overview

The Netcdf API provides an abstraction for sampled functions between multidimensional spaces. Samplings of the domain and range are represented as multidimensional arrays of values called variables (see ucar.multiarray). The functional relationship between the elements of the domain and the range is maintained through the use of shared named dimensions. When two variables share a dimension, there exists a mapping between them.

Perhaps an example would be illuminating. Suppose we wish to model a curve in the plane with N samples. We would create a dimension named, say "samples" whose length is N. We would then create two variables, say "x" and "y" which each have a single dimension, "samples". The relationship between elements of x and those of y is made explicit through the shared dimension.

An important feature of Netcdf is that the individual variables may have descriptive metadata, called attributes, associated with them. This might include characteristics such as the unit of measurement (as a string), identification of values which are to have special interpretation, or specifying the precision of data. The dataset has a whole may also have attributes.

The Netcdf API includes the following basic elements

Type specific containers and iterators of these are visible as the following interfaces. Each of these have similar interfaces except for type of the object contained or iterated. It might be useful to think of these as analogous to template class instanciations.

At the highest level we have two concrete collections and an interface.