public abstract class DatumShiftTransform extends AbstractMathTransform implements Serializable
There is many different datum shift methods, ranging from transformations as simple as adding a constant offset
to geographic coordinates, to more complex transformations involving conversions to geocentric coordinates and/or
interpolations in a datum shift grid. The simple cases like adding a constant offset
are handled by other MathTransform
implementations like LinearTransform
.
More complex methods are subclasses of this DatumShiftTransform
base class, but users should not assume
that this is the case of every transforms performing a datum shift.
EllipsoidToCentricTransform
with LinearTransform
instead than a specific
DatumShiftTransform
subclass.
If the geodetic datum shifts is approximated only by a geocentric translation without any scale or rotation,
and if an error of a few centimetres it acceptable, then the MolodenskyTransform
subclass can be used
as an approximation of the above method. The Molodensky method requires less floating point operations since
it applies directly on geographic coordinates, without conversions to geocentric coordinates.
Some countries go one step further and allow the above geocentric translations to be non-constant.
Instead, a different geocentric translation is interpolated for each geographic input coordinates.
This case is handled by the InterpolatedGeocentricTransform
subclass, or its
InterpolatedMolodenskyTransform
variant if a few centimetres accuracy lost can be afforded.
A simpler alternative to the above is to interpolate translations to apply directly on geographic coordinates.
This is the approach taken by NADCON and NTv2 grids.
SIS handles those datum shifts with the InterpolatedTransform
subclass.
DatumShiftGrid
,
Serialized FormDefined in the sis-referencing
module
AbstractMathTransform.Inverse
Modifier and Type | Method and Description |
---|---|
protected int |
computeHashCode()
Computes a hash value for this transform.
|
boolean |
equals(Object object,
ComparisonMode mode)
Compares the specified object with this math transform for equality.
|
protected ContextualParameters |
getContextualParameters()
Returns the parameters used for creating the complete transformation.
|
ParameterValueGroup |
getParameterValues()
Returns the internal parameter values of this
DatumShiftTransform instance (ignoring context). |
derivative, equals, formatTo, getParameterDescriptors, getSourceDimensions, getTargetDimensions, hashCode, inverse, isIdentity, transform, transform, transform, transform, transform, transform, tryConcatenate
print, toString, toString, toWKT
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
toWKT
@Debug public ParameterValueGroup getParameterValues()
DatumShiftTransform
instance (ignoring context).
The parameters returned by this method do not necessarily describe the whole datum shift process,
because DatumShiftTransform
instances are often preceeded and followed by linear conversions.
It may be conversions between degrees and radians units, or conversions from geodetic coordinates to grid indices.
InterpolatedGeocentricTransform
is:
Degrees to radians | DatumShiftTransform work | Radians to degrees | ||
---|---|---|---|---|
→ |
|
→ |
getContextualParameters()
.getParameterValues
in interface Parameterized
getParameterValues
in class AbstractMathTransform
AbstractMathTransform.getContextualParameters()
,
AbstractSingleOperation.getParameterValues()
protected ContextualParameters getContextualParameters()
this
→ denormalize transforms, not
including axis swapping.
Those parameters are used for formatting Well Known Text (WKT) and error messages.getContextualParameters
in class AbstractMathTransform
this
→ denormalize transforms.protected int computeHashCode()
AbstractMathTransform.hashCode()
when first needed.computeHashCode
in class AbstractMathTransform
public boolean equals(Object object, ComparisonMode mode)
equals
in interface LenientComparable
equals
in class AbstractMathTransform
object
- the object to compare with this transform.mode
- the strictness level of the comparison. Default to STRICT
.true
if the given object is considered equals to this math transform.Utilities.deepEquals(Object, Object, ComparisonMode)
Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.