Class VerticalOffset

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

public final class VerticalOffset extends AbstractProvider
The provider for "Vertical Offset" (EPSG:9616). The Apache SIS implementation of this operation method always perform the vertical offset in metres. The vertical axis of source and target CRS shall be converted to metres before this operation is applied.
Axis direction
The EPSG guidance note defines this operation as (ignoring unit conversions):
X₂ = m⋅X₁ + offset
where m is +1 if source and target axes have the same direction, or -1 if they have opposite direction. Consequently, the offset value is always applied in the direction of the target axis. This is different than the Apache SIS design, which always interpret the parameter in the direction of a normalized coordinate axis (up in this case, regardless the source and target coordinate systems). Consequently, the sign of the "Vertical Offset" parameter value needs to be reversed if the target coordinate system axis is down.
Since:
0.7
Version:
1.3
Author:
Martin Desruisseaux (Geomatys)
See Also:
  • Constructor Details

    • VerticalOffset

      public VerticalOffset()
      Constructs a provider with default parameters.
  • Method Details

    • createMathTransform

      public org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup values) throws org.opengis.parameter.ParameterNotFoundException
      Creates a transform from the specified group of parameter values. The parameter value is unconditionally converted to metres.
      Parameters:
      factory - ignored (can be null).
      values - the group of parameter values.
      Returns:
      the created math transform.
      Throws:
      org.opengis.parameter.ParameterNotFoundException - if a required parameter was not found.
    • postCreate

      public static org.opengis.referencing.operation.MathTransform postCreate(org.opengis.referencing.operation.MathTransform parameterized, org.opengis.referencing.operation.Matrix after) throws org.opengis.util.FactoryException
      Invoked by DefaultMathTransformFactory after the transform has been created but before it is concatenated with operations performing axis changes. This method performs the parameter sign adjustment as documented in the class javadoc if and only if this method detects that the target axis is oriented toward down. This orientation is detected by a negative sign for the m₀₀ coefficient in the given 2×2 affine transform matrix.
      Implementation note: for now we define this method as a static one because it is the only special case handled by DefaultMathTransformFactory. But if there is more special cases in a future SIS version, then we should make this method non-static and declare an overrideable postCreate method in AbstractProvider instead.
      Parameters:
      parameterized - the transform created by createMathTransform(…).
      after - the matrix for the operation to be concatenated after parameterized.
      Returns:
      the transform to use instead of parameterized.
      Throws:
      org.opengis.util.FactoryException - if an error occurred while creating the new transform.
    • 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: