Class DatumShiftTransform
- All Implemented Interfaces:
- Serializable,- Parameterized,- LenientComparable,- MathTransform
- Direct Known Subclasses:
- InterpolatedGeocentricTransform,- InterpolatedMolodenskyTransform,- InterpolatedTransform,- MolodenskyTransform
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.
Datum shift methods overview
The two CRS's ellipsoids have slightly different scale and rotation in space, and their center are located in a slightly different position. Consequently, geodetic datum shifts are often approximated by a constant scale, rotation and translation applied on geocentric coordinates. Those approximations are handled in SIS by concatenations ofEllipsoidToCentricTransform with LinearTransform instead of 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.
- Since:
- 0.7
- See Also:
Defined in the sis-referencing module
- 
Nested Class SummaryNested classes/interfaces inherited from class AbstractMathTransformAbstractMathTransform.Inverse
- 
Method SummaryModifier and TypeMethodDescriptionprotected intComputes a hash value for this transform.booleanequals(Object object, ComparisonMode mode) Compares the specified object with this math transform for equality.protected ContextualParametersReturns the parameters used for creating the complete transformation.Returns the internal parameter values of thisDatumShiftTransforminstance (ignoring context).Methods inherited from class AbstractMathTransformderivative, equals, formatTo, getDomain, getParameterDescriptors, getSourceDimensions, getTargetDimensions, hashCode, inverse, isIdentity, transform, transform, transform, transform, transform, transform, tryConcatenateMethods inherited from class FormattableObjectprint, toString, toString, toWKTMethods inherited from class Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface MathTransformtoWKT
- 
Method Details- 
getParameterValuesReturns the internal parameter values of thisDatumShiftTransforminstance (ignoring context). The parameters returned by this method do not necessarily describe the whole datum shift process, becauseDatumShiftTransforminstances 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.Example: The chain of transforms of anThis method returns the parameters for the part in the middle of above example. The content of this part is highly implementation-dependent and used mostly for debugging purposes. The parameters that describe the process as a whole are rather given byInterpolatedGeocentricTransformis:→- Geographic to geocentric conversion
- Geocentric interpolation
- Geocentric to geographic conversion
 →getContextualParameters().- Specified by:
- getParameterValuesin interface- Parameterized
- Overrides:
- getParameterValuesin class- AbstractMathTransform
- Returns:
- the internal parameter values for this transform.
- See Also:
 
- 
getContextualParametersReturns the parameters used for creating the complete transformation. Those parameters describe a sequence of normalize →this→ denormalize transforms, not including axis swapping. Those parameters are used for formatting Well Known Text (WKT) and error messages.- Overrides:
- getContextualParametersin class- AbstractMathTransform
- Returns:
- the parameter values for the sequence of
         normalize → this→ denormalize transforms.
 
- 
computeHashCodeprotected int computeHashCode()Computes a hash value for this transform. This method is invoked byAbstractMathTransform.hashCode()when first needed.- Overrides:
- computeHashCodein class- AbstractMathTransform
- Returns:
- the hash code value. This value may change between different execution of the Apache SIS library.
 
- 
equalsCompares the specified object with this math transform for equality.- Specified by:
- equalsin interface- LenientComparable
- Overrides:
- equalsin class- AbstractMathTransform
- Parameters:
- object- the object to compare with this transform.
- mode- the strictness level of the comparison. Default to- STRICT.
- Returns:
- trueif the given object is considered equals to this math transform.
- See Also:
 
 
-