Class NTv2Transform

All Implemented Interfaces:
Serializable, MathTransform, MathTransform2D

public class NTv2Transform extends AbstractMathTransform implements MathTransform2D, Serializable
The "NTv2" coordinate transformation method (EPSG:9615).

This transformation depends on an external resource (the NTv2 grid file). If the file is not available, a recoverable NoSuchIdentifierException will be thrown on instantiation.

Author:
Oscar Fonts
See Also:
  • Field Details

    • LOGGER

      protected static final Logger LOGGER
      Logger
  • Constructor Details

    • NTv2Transform

      public NTv2Transform(URI file) throws NoSuchIdentifierException
      Constructs a NTv2Transform from the specified grid shift file.

      This constructor checks for grid shift file availability, but doesn't actually load the full grid into memory to preserve resources.

      Parameters:
      file - NTv2 grid file name
      Throws:
      NoSuchIdentifierException - if the grid is not available.
  • Method Details

    • hashCode

      public int hashCode()
      Returns a hash value for this transform.
      Overrides:
      hashCode in class AbstractMathTransform
    • equals

      public boolean equals(Object object)
      Compares the specified object with this one for equality. Checks if object is this same instance, or a NTv2Transform with the same parameter values.
      Overrides:
      equals in class AbstractMathTransform
      Parameters:
      object - The object to compare with this transform.
      Returns:
      true if the given object is this, or a NTv2Transform with same parameter values, which would mean that given identical source position, the transformed position would be the same.
    • inverse

      public MathTransform2D inverse()
      Returns the inverse of this transform.
      Specified by:
      inverse in interface MathTransform
      Specified by:
      inverse in interface MathTransform2D
      Overrides:
      inverse in class AbstractMathTransform
      Returns:
      the inverse of this transform
    • transform

      public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws TransformException
      Transforms a list of coordinate point ordinal values. This method is provided for efficiently transforming many points. The supplied array of ordinal values will contain packed ordinal values. For example, if the source dimension is 3, then the ordinals will be packed in this order: (x0,y0,z0,

      x1,y1,z1 ...).

      Specified by:
      transform in interface MathTransform
      Parameters:
      srcPts - the array containing the source point coordinates.
      srcOff - the offset to the first point to be transformed in the source array.
      dstPts - the array into which the transformed point coordinates are returned. May be the same than srcPts.
      dstOff - the offset to the location of the first transformed point that is stored in the destination array.
      numPts - the number of point objects to be transformed.
      Throws:
      TransformException - if an IO error occurs reading the grid file.
    • inverseTransform

      public void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws TransformException
      Parameters:
      srcPts - the array containing the source point coordinates.
      srcOff - the offset to the first point to be transformed in the source array.
      dstPts - the array into which the transformed point coordinates are returned. May be the same than srcPts.
      dstOff - the offset to the location of the first transformed point that is stored in the destination array.
      numPts - the number of point objects to be transformed.
      Throws:
      TransformException - if an IO error occurs reading the grid file.
    • getSourceDimensions

      public int getSourceDimensions()
      Description copied from class: AbstractMathTransform
      Gets the dimension of input points.
      Specified by:
      getSourceDimensions in interface MathTransform
      Specified by:
      getSourceDimensions in class AbstractMathTransform
      Returns:
      The dimension of input points.
    • getTargetDimensions

      public int getTargetDimensions()
      Description copied from class: AbstractMathTransform
      Gets the dimension of output points.
      Specified by:
      getTargetDimensions in interface MathTransform
      Specified by:
      getTargetDimensions in class AbstractMathTransform
      Returns:
      The dimension of output points.
    • getParameterValues

      public ParameterValueGroup getParameterValues()
      Returns the parameter values for this math transform.
      Overrides:
      getParameterValues in class AbstractMathTransform
      Returns:
      A copy of the parameter values for this math transform.
      See Also: