All Implemented Interfaces:
Serializable, Formattable, MathTransformProvider, Deprecable, LenientComparable, org.opengis.referencing.IdentifiedObject, org.opengis.referencing.operation.OperationMethod

public final class Molodensky extends GeocentricAffineBetweenGeographic
The provider for "Molodensky transformation" (EPSG:9604). This provider constructs transforms between two geographic reference systems without passing though a geocentric one. This class nevertheless extends GeocentricAffineBetweenGeographic because it is an approximation of GeocentricTranslation3D.

The translation terms (dx, dy and dz) are common to all authorities. But remaining parameters are specified in different ways depending on the authority:

  • EPSG defines "Semi-major axis length difference" and "Flattening difference" parameters.
  • OGC rather defines "src_semi_major", "src_semi_minor", "tgt_semi_major", "tgt_semi_minor" and "dim" parameters.
Since:
0.7
Version:
1.3
Author:
Rueben Schulz (UBC), Martin Desruisseaux (IRD, Geomatys)
See Also:
  • Field Details

    • AXIS_LENGTH_DIFFERENCE

      public static final org.opengis.parameter.ParameterDescriptor<Double> AXIS_LENGTH_DIFFERENCE
      The operation parameter descriptor for the Semi-major axis length difference optional parameter value. This parameter is defined by the EPSG database and can be used in replacement of GeocentricAffineBetweenGeographic.TGT_SEMI_MAJOR. Units are metres.
      Parameter names
      EPSG: Semi-major axis length difference
      Notes:
      • No default value
    • FLATTENING_DIFFERENCE

      public static final org.opengis.parameter.ParameterDescriptor<Double> FLATTENING_DIFFERENCE
      The operation parameter descriptor for the Flattening difference optional parameter value. This parameter is defined by the EPSG database and can be used in replacement of GeocentricAffineBetweenGeographic.TGT_SEMI_MINOR. Valid values range from -1 to +1, dimensionless.
      Parameter names
      EPSG: Flattening difference
      Notes:
      • Value domain: [-1.0 … 1.0]
      • No default value
    • PARAMETERS

      public static final org.opengis.parameter.ParameterDescriptorGroup PARAMETERS
      The group of all parameters expected by this coordinate operation.
  • Constructor Details

    • Molodensky

      public Molodensky()
      Constructs a new provider.
  • Method Details

    • internal

      @Debug public static org.opengis.parameter.ParameterDescriptorGroup internal()
      Creates a descriptor for the internal parameters of MolodenskyTransform. This is similar to the standard parameters except that the redundant target axes lengths are omitted.
      Returns:
      internal parameter descriptor.
    • createMathTransform

      public org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup values) throws org.opengis.util.FactoryException
      Creates a Molodensky transform from the specified group of parameter values.
      Specified by:
      createMathTransform in interface MathTransformProvider
      Overrides:
      createMathTransform in class GeocentricAffineBetweenGeographic
      Parameters:
      factory - the factory to use for creating concatenated transforms.
      values - the group of parameter values.
      Returns:
      the created Molodensky transform.
      Throws:
      org.opengis.util.FactoryException - if a transform cannot be created.
    • redimension

      @Deprecated public final org.opengis.referencing.operation.OperationMethod redimension(int sourceDimensions, int targetDimensions)
      Deprecated.
      ISO 19111:2019 removed source/target dimensions attributes.
      Returns the elements of the given array at an index computed from the given dimensions.
      Overrides:
      redimension in class DefaultOperationMethod
      Parameters:
      sourceDimensions - the desired number of input dimensions.
      targetDimensions - the desired number of output dimensions.
      Returns:
      the redimensioned operation method, or null if none.
    • inverse

      public AbstractProvider inverse()
      The inverse of GeodeticOperation is usually the same operation with parameter signs inverted.
      Overrides:
      inverse in class AbstractProvider
      Returns:
      this for most GeodeticOperation instances.
      See Also: