## Package ucar.netcdf

Provides an abstraction for sampled functions between multidimensional spaces.

See:
Description

Interface Summary
AttributeIterator: Type specific Iterator.
AttributeSet: AttributeSet is an inquiry interface for a collection of Attributes.
DimensionIterator: Type specific Iterator.
DimensionSet: DimensionSet is an inquiry interface for a collection of Dimensions.
Named: An interface for Named objects in netcdf.
Netcdf: This is the interface for Netcdf objects.
NetcdfRemoteProxy: This interface wraps a single instance of Netcdf to provide Remote services required in the construction of an instance of RemoteNetcdf.
NetcdfService: This service provides a way to 'open' remote Netcdf data sets by name.
ProtoVariableIterator: Type specific Iterator.
VariableIterator: Type specific Iterator.

Class Summary
AbstractNetcdf: This abstract class provides a skeletal implementation of the Netcdf interface.
Attribute: Attributes are similar to "IndexedProperties" in the lingo of java beans.
AttributeDictionary: AttributeDictionary is the machinery to implement AttributeSet.
AttrVal
Dimension: A Dimension object is used to contain an array length which is named for use in multiple netcdf variables.
DimensionDictionary: DimensionDictionary is package private implementation of DimensionSet.
HTTPRandomAccessFile: HTTPRandomAccessFile.java.
NamedDictionary: NamedDictionary is a collection of Named things.
NetcdfFile: A concrete implementation of the Netcdf interface, this class provides connection to NetCDF version 1 files.
NetcdfRemoteProxyImpl: This class provides implementation of the interface NetcdfRemoteProxy.
NetcdfServer: A UnicastRemoteObject implementation of NetcdfService.
NetcdfWrapper: Abstract "decorator" class for wrapping a `Netcdf` object.
NumericAttrVal
ProtoVariable: Prototype for Netcdf Variable.
RandomAccessFile: A buffered drop-in replacement for java.io.RandomAccessFile.
RemoteAccessorImpl: RemoteAccessorImpl is a UnicastRemoteObject (RMI service) which implements ucar.multiarray.RemoteAccessor using the proxy pattern.
RemoteNetcdf: A concrete implementation of the Netcdf interface, this class uses java rmi to access a remote Netcdf.
Schema: Schema collects the metadata which describes or defines a Netcdf.
StringAttrVal
UnlimitedDimension: A Dimension object is used to contain an array length which is named for use in multiple netcdf variables.
Variable: Variable is a (potentially large) multi-dimensional array of primitives.

## Package ucar.netcdf Description

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.

For example, suppose we wish to model a curve in the plane with N samples. We might create a dimension named "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 as a whole may also have attributes, such as a string describing the pedigree of the data.

The ucar.netcdf includes the following basic elements

- Class Dimension - A named integer value. Used in the construction of ProtoVariable; specifies the shape of Variables and functional relationships among Variables
- Class Attribute - A name value pair. Contains the metadata
- Class ProtoVariable - Used as prototype in the construction of Variables. Has a name, type specification, an AttributeSet, and an array of Dimensions that specify its shape
- Class Variable - A named MultiArray with Attributes. Has an AttributeSet, and a DimensionIterator (see below). Instances with working I/O functionality generally exist in the context of a Netcdf data set.

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 instantiations.

- Interface DimensionSet, DimensionIterator
- Interface AttributeSet, AttributeIterator
- ProtoVariableIterator
- VariableIterator

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

- Class Schema - Implements set of ProtoVariable, has a DimensionSet and an AttributeSet. Used as a prototype in the construction of Netcdf datasets.
- Interface Netcdf - Extends set of Variable, has a DimensionSet and an AttributeSet. The top level interface of this API.
- Abstract Class AbstractNetcdf - Partial implementation of interface Netcdf. For use by implementors, not most clients.
- Class NetcdfFile - Extends AbstractNetcdf. Provides connection to netCDF version 1 files.

Annotated examples are available from our web site.