public abstract class CoordinateSystem extends Object implements Serializable
CoordinateSystem objects should be immutable.
Constructor and Description |
---|
CoordinateSystem(RealTupleType reference,
Unit[] units)
Constructs from the type of the reference coordinate system and units for
values in this coordinate system.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
canConvert(RealTupleType out,
CoordinateSystem coord_out,
RealTupleType in,
CoordinateSystem coord_in)
Check to see if a conversion can be done between values
of one RealTupleType and another given the CoordinateSystems
supplied.
|
abstract boolean |
equals(Object cs)
Indicates whether or not this instance is equal to an object
(note must test for cs == null).
|
abstract double[][] |
fromReference(double[][] value)
Convert RealTuple values from Reference coordinates;
for efficiency, input and output values are passed as
double[][] arrays rather than RealTuple[] arrays; the array
organization is double[tuple_dimension][number_of_tuples];
can modify and return argument array.
|
double[][] |
fromReference(double[][] value,
Unit[] units)
Convert values in Units specified to this CoordinateSystem's
Units.
|
float[][] |
fromReference(float[][] value)
Convert RealTuple values from Reference coordinates;
for efficiency, input and output values are passed as
float[][] arrays rather than RealTuple[] arrays; the array
organization is float[tuple_dimension][number_of_tuples];
can modify and return argument array.
|
float[][] |
fromReference(float[][] value,
Unit[] units)
Convert values in Units specified to this CoordinateSystem's
Units.
|
Unit[] |
getCoordinateSystemUnits()
Return the Units for this CoordinateSystem.
|
int |
getDimension()
Return the number of components in the reference RealTupleType.
|
RealTupleType |
getReference()
Return the reference RealTupleType for this CoordinateSystem.
|
Unit[] |
getReferenceUnits()
Return the Units for this CoordinateSystem's reference
RealTupleType.
|
abstract double[][] |
toReference(double[][] value)
Convert RealTuple values to Reference coordinates;
for efficiency, input and output values are passed as
double[][] arrays rather than RealTuple[] arrays; the array
organization is double[tuple_dimension][number_of_tuples];
can modify and return argument array.
|
double[][] |
toReference(double[][] value,
Unit[] units)
Convert values in Units specified to Reference coordinates.
|
float[][] |
toReference(float[][] value)
Convert RealTuple values to Reference coordinates;
for efficiency, input and output values are passed as
float[][] arrays rather than RealTuple[] arrays; the array
organization is float[tuple_dimension][number_of_tuples];
can modify and return argument array.
|
float[][] |
toReference(float[][] value,
Unit[] units)
Convert values in Units specified to Reference coordinates.
|
static double[][] |
transformCoordinates(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
double[][] value)
Transforms double-valued coordinates between two
RealTupleType s. |
static double[][] |
transformCoordinates(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
double[][] value,
boolean copy)
Transforms double-valued coordinates between two
RealTupleType s. |
static float[][] |
transformCoordinates(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
float[][] value)
Transforms float-valued coordinates between two
RealTupleType s. |
static float[][] |
transformCoordinates(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
float[][] value,
boolean copy)
Transforms float-valued coordinates between two
RealTupleType s. |
static double[][] |
transformCoordinatesFreeUnits(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
double[][] value)
Transforms double-valued coordinates between two
RealTupleType s. |
static float[][] |
transformCoordinatesFreeUnits(RealTupleType out,
CoordinateSystem coord_out,
Unit[] units_out,
ErrorEstimate[] errors_out,
RealTupleType in,
CoordinateSystem coord_in,
Unit[] units_in,
ErrorEstimate[] errors_in,
float[][] value)
Transforms float-valued coordinates between two
RealTupleType s. |
public CoordinateSystem(RealTupleType reference, Unit[] units) throws VisADException
reference
- The type of the reference coordinate
system. Numeric values in the reference
coordinate system shall be in units of
reference.getDefaultUnits()
unless specified otherwise.units
- The default units for this coordinate system.
Numeric values in this coordinate system shall
be in units of units
unless
specified otherwise. May be null
or an array of null
s.VisADException
- Couldn't create necessary VisAD object.public RealTupleType getReference()
public int getDimension()
public Unit[] getReferenceUnits()
toReference(double[][])
.public Unit[] getCoordinateSystemUnits()
toReference(double[][])
method.public abstract double[][] toReference(double[][] value) throws VisADException
value
- array of values assumed to be in coordinateSystem
units. Input array is not guaranteed to be immutable
and could be used for return.VisADException
- if problem with conversion.public abstract double[][] fromReference(double[][] value) throws VisADException
value
- array of values assumed to be in reference
Units. Input array is not guaranteed to be immutable
and could be used for return.VisADException
- if problem with conversion.public float[][] toReference(float[][] value) throws VisADException
toReference(double[][])
and then returns that converted
double array back as a float array. For efficiency, subclasses
should override this implementation.value
- array of values assumed to be in coordinateSystem
units. Input array is not guaranteed to be immutable
and could be used for return.VisADException
- if problem with conversion.public float[][] fromReference(float[][] value) throws VisADException
toReference(double[][])
and then returns that converted
double array back as a float array. For efficiency, subclasses
should override this implementation.value
- array of values assumed to be in reference
Units. Input array is not guaranteed to be immutable
and could be used for return.VisADException
- if problem with conversion.public static boolean canConvert(RealTupleType out, CoordinateSystem coord_out, RealTupleType in, CoordinateSystem coord_in)
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.public static double[][] transformCoordinates(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, double[][] value) throws VisADException
Transforms double-valued coordinates between two RealTupleType
s.
Unit conversion is always performed even if no coordinate transformation
is done.
This implementation uses transformCoordinatesFreeUnits(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
to do
most of the transformation.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component. The values might
be modified upon return from this method.VisADException
- if a VisAD failure occurs.NullPointerException
- if units_out
is
null
.public static double[][] transformCoordinates(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, double[][] value, boolean copy) throws VisADException
Transforms double-valued coordinates between two RealTupleType
s.
Unit conversion is always performed even if no coordinate transformation
is done.
This implementation uses transformCoordinatesFreeUnits(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
to do
most of the transformation.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component. The values might
be modified upon return from this method.copy
- if false, the underlying value
array
transformations may be done in place.VisADException
- if a VisAD failure occurs.NullPointerException
- if units_out
is
null
.public static double[][] transformCoordinatesFreeUnits(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, double[][] value) throws VisADException
Transforms double-valued coordinates between two RealTupleType
s.
This is just like transformCoordinates(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
, except that final Unit
conversion to units_out
is not done; rather,
units_out[i]
is set to the final Unit
of
value[i]
.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units or null
.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component.VisADException
- if a VisAD failure occurs.public static float[][] transformCoordinates(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, float[][] value) throws VisADException
Transforms float-valued coordinates between two RealTupleType
s.
Unit conversion is always performed even if no coordinate transformation
is done.
This implementation uses transformCoordinatesFreeUnits(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
to do
most of the transformation.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component. The values might
be modified upon return from this method.VisADException
- if a VisAD failure occurs.NullPointerException
- if units_out
is
null
.public static float[][] transformCoordinates(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, float[][] value, boolean copy) throws VisADException
Transforms float-valued coordinates between two RealTupleType
s.
Unit conversion is always performed even if no coordinate transformation
is done.
This implementation uses transformCoordinatesFreeUnits(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
to do
most of the transformation.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component. The values might
be modified upon return from this method.copy
- if false, the underlying value
array
transformations may be done in place.VisADException
- if a VisAD failure occurs.NullPointerException
- if units_out
is
null
.public static float[][] transformCoordinatesFreeUnits(RealTupleType out, CoordinateSystem coord_out, Unit[] units_out, ErrorEstimate[] errors_out, RealTupleType in, CoordinateSystem coord_in, Unit[] units_in, ErrorEstimate[] errors_in, float[][] value) throws VisADException
Transforms float-valued coordinates between two RealTupleType
s.
This is just like transformCoordinates(visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], visad.RealTupleType, visad.CoordinateSystem, visad.Unit[], visad.ErrorEstimate[], double[][])
, except that final Unit
conversion to units_out
is not done; rather,
units_out[i]
is set to the final Unit
of
value[i]
.
If both RealTupleType
s have a reference coordinate system, then
this implementation always transforms the input domain values by
first transforming them according to the input reference coordinate system
and then inverse transforming them according to the output reference
coordinate system -- even if the input and output RealTupleType
s
are equal.
out
- The output RealTupleType
.coord_out
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_out
- The output units or null
.errors_out
- The output error estimates or null
.in
- The input RealTupleType
.coord_in
- The coordinate system transformation associated
with the output RealTupleType
or
null
.units_in
- The input units or null
.errors_in
- The input error estimates or null
.value
- The input coordinate values. value[i][j]
is the j
-th sample of the
i
-th component.VisADException
- if a VisAD failure occurs.public double[][] toReference(double[][] value, Unit[] units) throws VisADException
value
- array of values assumed to be in the Units
specified or CoordinateSystem units if null.units
- Units of input values. If non-null, input values
are converted to CoordinateSystem Units (if they
are non-null) before calling
toReference(double[][])
.VisADException
- if problem with conversion.public float[][] toReference(float[][] value, Unit[] units) throws VisADException
value
- array of values assumed to be in the Units
specified or CoordinateSystem units if null.units
- Units of input values. If non-null, input values
are converted to CoordinateSystem Units (if they
are non-null) before calling
toReference(float[][])
.VisADException
- if problem with conversion.public double[][] fromReference(double[][] value, Unit[] units) throws VisADException
value
- array of values assumed to be in the Units
specified or Reference units if null.units
- Units of input values. If non-null, input values
are converted to Reference Units (if they
are non-null) before calling
fromReference(double[][])
.VisADException
- if problem with conversion.public float[][] fromReference(float[][] value, Unit[] units) throws VisADException
value
- array of values assumed to be in the Units
specified or Reference units if null.units
- Units of input values. If non-null, input values
are converted to Reference Units (if they
are non-null) before calling
fromReference(float[][])
.VisADException
- if problem with conversion.Copyright © 1996–2023 The SSEC Visualization Project. All rights reserved.