Class InterpolatedMolodenskyTransform.Inverse

All Implemented Interfaces:
Serializable, Parameterized, LenientComparable, org.opengis.referencing.operation.MathTransform
Direct Known Subclasses:
InterpolatedMolodenskyTransform2D.Inverse
Enclosing class:
InterpolatedMolodenskyTransform

static class InterpolatedMolodenskyTransform.Inverse extends InterpolatedMolodenskyTransform
The inverse of the enclosing InterpolatedMolodenskyTransform. This transform applies an algorithm similar to the one documented in the enclosing class, with the following differences:
  1. First, target coordinates are estimated using the (MolodenskyFormula.tX, MolodenskyFormula.tY, MolodenskyFormula.tZ) translation.
  2. A new (ΔX, ΔY, ΔZ) translation is interpolated at the geographic coordinates found in above step, and target coordinates are recomputed again using that new translation.
Since:
0.7
Version:
0.7
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
  • Constructor Details

    • Inverse

      Inverse(InterpolatedMolodenskyTransform inverse, org.opengis.referencing.datum.Ellipsoid source, org.opengis.referencing.datum.Ellipsoid target)
      Constructs the inverse of an interpolated Molodensky transform.
      Parameters:
      inverse - the transform for which to create the inverse.
      source - the source ellipsoid of the given inverse transform.
      target - the target ellipsoid of the given inverse transform.
  • Method Details

    • transform

      public org.opengis.referencing.operation.Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) throws org.opengis.referencing.operation.TransformException
      Transforms the (λ,φ) or (λ,φ,h) coordinates between two geographic CRS, and optionally returns the derivative at that location.
      Overrides:
      transform in class InterpolatedMolodenskyTransform
      Parameters:
      srcPts - the array containing the source coordinates (cannot be null).
      srcOff - the offset to the point to be transformed in the source array.
      dstPts - the array into which the transformed coordinates is returned. May be the same than srcPts. May be null if only the derivative matrix is desired.
      dstOff - the offset to the location of the transformed point that is stored in the destination array.
      derivate - true for computing the derivative, or false if not needed.
      Returns:
      the matrix of the transform derivative at the given source position, or null if the derivate argument is false.
      Throws:
      org.opengis.referencing.operation.TransformException - if the point cannot be transformed or if a problem occurred while calculating the derivative.
      See Also:
    • transform

      public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws org.opengis.referencing.operation.TransformException
      Transforms the (λ,φ) or (λ,φ,h) coordinates between two geographic CRS. This method performs the same work than the above transform(…) method, but on an arbitrary number of coordinate tuples and without computing derivative.
      Specified by:
      transform in interface org.opengis.referencing.operation.MathTransform
      Overrides:
      transform in class InterpolatedMolodenskyTransform
      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:
      org.opengis.referencing.operation.TransformException - if a point cannot be transformed.