Provides a number of data container, earth coordinate transformation, and polynomial approximation classes for use with earth locatable data.

In order to manipulate satellite data in a generic way, it is useful to have the notion of a data variable -- a container that holds the data and any attributes it might have. The {@link noaa.coastwatch.util.DataVariable} class and its subclasses function as generic data containers. They allow the data values, name, units, scaling factors, and other attributes to be associated together in a single structure. The dimensions of a data variable depend on the specific subclass. Specifically, the {@link noaa.coastwatch.util.Line} class handles 1D data such as ship track, while the {@link noaa.coastwatch.util.Grid} class handles 2D gridded data such as satellite imagery with navigational corrections. The {@link noaa.coastwatch.util.DataLocation} class specifies coordinates that may be used to set and retrieve values within a data variable. The {@link noaa.coastwatch.util.EarthDataInfo} class binds a number of common DataVariable objects by providing the originating satellite, sensor, date, time, geolocation, and other common attributes.

The {@link noaa.coastwatch.util.trans.EarthTransform} and subclasses {@link noaa.coastwatch.util.trans.DataProjection}, {@link noaa.coastwatch.util.trans.MapProjection}, and {@link noaa.coastwatch.util.trans.SwathProjection} provide coordinate transformations between data coordinates such as (row, column) represented by the {@link noaa.coastwatch.util.DataLocation} class and geographic latitude and longitude coordinates represented by the {@link noaa.coastwatch.util.EarthLocation} class. The MapProjection class uses {@link noaa.coastwatch.util.GCTP} to provide cartographic transformations for some of the most commonly used map projections such as mercator, polar stereographic, and so on. Generic coordinate transforms are a required component of any data registration or resampling procedure. An EarthTransform object is typically used in conjunction with a number of DataVariable objects to translate between data and geographic coordinates. The {@link noaa.coastwatch.util.EarthArea} class may be used in conjunction with an EarthTransform to represent irregularly shaped areas on the Earth.

In some cases it may be necessary to approximate the value of a smooth function between a number of known function data values. The {@link noaa.coastwatch.util.UnivariateEstimator}, {@link noaa.coastwatch.util.BivariateEstimator}, and {@link noaa.coastwatch.util.VariableEstimator} provide polynomial estimation methods for this purpose. The VariableEstimator in particular is useful for approximating the value of a smoothly changing DataVariable such as latitude, longitude, satellite zenith, and other angle data. To aid in approximating smooth data fields with an appropriate number of known data points, the {@link noaa.coastwatch.util.EarthPartition} can be used to divide earth locatable data variables into subsections of a specified physical size.