Class GeocentricAffine

All Implemented Interfaces:
Serializable, Formattable, MathTransformProvider, Deprecable, LenientComparable, org.opengis.referencing.IdentifiedObject, org.opengis.referencing.operation.OperationMethod
Direct Known Subclasses:
CoordinateFrameRotation, GeocentricAffineBetweenGeographic, GeocentricTranslation, PositionVector7Param

public abstract class GeocentricAffine extends AbstractProvider
The base class of operation methods performing a translation, rotation and/or scale in geocentric coordinates. Those methods may or may not include a Geographic/Geocentric conversion before the operation in geocentric domain, depending on whether or not implementations extend the GeocentricAffineBetweenGeographic subclass.
Note on class name: the GeocentricAffine class name is chosen as a generalization of GeocentricTranslation. "Geocentric translations" is an operation name defined by EPSG.
Since:
0.7
Version:
1.3
Author:
Martin Desruisseaux (IRD, Geomatys)
See Also:
  • Field Details

    • TX

      public static final org.opengis.parameter.ParameterDescriptor<Double> TX
      The operation parameter descriptor for the X-axis translation (tX) parameter value. Valid values range from negative to positive infinity. Units are metres.
      Parameter names
      EPSG: X-axis translation
      OGC: dx
    • TY

      public static final org.opengis.parameter.ParameterDescriptor<Double> TY
      The operation parameter descriptor for the Y-axis translation (tY) parameter value. Valid values range from negative to positive infinity. Units are metres.
      Parameter names
      EPSG: Y-axis translation
      OGC: dy
    • TZ

      public static final org.opengis.parameter.ParameterDescriptor<Double> TZ
      The operation parameter descriptor for the Z-axis translation (tZ) parameter value. Valid values range from negative to positive infinity. Units are metres.
      Parameter names
      EPSG: Z-axis translation
      OGC: dz
  • Method Details

    • 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 math transform from the specified group of parameter values. The default implementation creates an affine transform, but some subclasses will wrap that affine operation into Geographic/Geocentric conversions.
      Parameters:
      factory - the factory to use for creating concatenated transforms.
      values - the group of parameter values.
      Returns:
      the created math transform.
      Throws:
      org.opengis.util.FactoryException - if a transform cannot be created.
    • createParameters

      public static org.opengis.parameter.ParameterValueGroup createParameters(org.opengis.referencing.cs.CoordinateSystem sourceCS, org.opengis.referencing.cs.CoordinateSystem targetCS, org.opengis.referencing.operation.Matrix datumShift, DatumShiftMethod method)
      Returns the parameters for creating a datum shift operation. The operation method will be one of the GeocentricAffine subclasses, unless the specified method argument is DatumShiftMethod.NONE. If no single operation method can be used, then this method returns null.

      This method does not change the coordinate system type. The source and target coordinate systems can be both EllipsoidalCS or both CartesianCS. Any other type or mix of types (e.g. a EllipsoidalCS source and CartesianCS target) will cause this method to return null. In such case, it is caller's responsibility to apply the datum shift itself in Cartesian geocentric coordinates.

      Parameters:
      sourceCS - the source coordinate system. Only the type and number of dimensions is checked.
      targetCS - the target coordinate system. Only the type and number of dimensions is checked.
      datumShift - the datum shift as a matrix, or null if there is no datum shift information.
      method - the preferred datum shift method. Note that createParameters(…) may overwrite.
      Returns:
      the parameter values, or null if no single operation method can be found.
    • asDatumShift

      public static void asDatumShift(List<Object> transforms)
      Given a transformation chain, conditionally replaces the affine transform elements by an alternative object showing the Bursa-Wolf parameters. The replacement is applied if and only if the affine transform is a scale, translation or rotation in the geocentric domain.

      This method is invoked only by ConcatenatedTransform.getPseudoSteps() for the need of WKT formatting. The purpose of this method is very similar to the purpose of AbstractMathTransform.beforeFormat(List, int, boolean) except that we need to perform the forDatumShift(…) work only after beforeFormat(…) finished its work for all ContextualParameters, including the EllipsoidToCentricTransform's one.

      Parameters:
      transforms - the full chain of concatenated transforms.
    • 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: