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.