org.geotools.referencing.operation.transform
Class MolodenskiTransform

java.lang.Object
  extended byorg.geotools.referencing.wkt.Formattable
      extended byorg.geotools.referencing.operation.transform.AbstractMathTransform
          extended byorg.geotools.referencing.operation.transform.MolodenskiTransform
All Implemented Interfaces:
org.opengis.referencing.operation.MathTransform, java.io.Serializable

public class MolodenskiTransform
extends AbstractMathTransform
implements java.io.Serializable

Two- or three-dimensional datum shift using the (potentially abridged) Molodensky transformation. The Molodensky transformation (EPSG code 9604) and the abridged Molodensky transformation (EPSG code 9605) transform two or three dimensional geographic points from one geographic coordinate reference system to another (a datum shift), using three shift parameters (delta X, delta Y, delta Z) and the difference between the semi-major axis and flattenings of the two ellipsoids.

Unlike the Bursa-Wolf 3 parameter method (which acts on geocentric coordinates), this transformation can be performed directly on geographic coordinates.

References:

Since:
2.1
Version:
$Id: MolodenskiTransform.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Rueben Schulz, Martin Desruisseaux
See Also:
Serialized Form

Nested Class Summary
static class MolodenskiTransform.Provider
          The provider for MolodenskiTransform.
static class MolodenskiTransform.ProviderAbridged
          The provider for abridged MolodenskiTransform.
 
Nested classes inherited from class org.geotools.referencing.operation.transform.AbstractMathTransform
AbstractMathTransform.Inverse
 
Constructor Summary
MolodenskiTransform(boolean abridged, double a, double b, boolean source3D, double ta, double tb, boolean target3D, double dx, double dy, double dz)
          Constructs a Molodenski transform from the specified parameters.
 
Method Summary
 boolean equals(java.lang.Object object)
          Compares the specified object with this math transform for equality.
 org.opengis.parameter.ParameterDescriptorGroup getParameterDescriptors()
          Returns the parameter descriptors for this math transform.
 org.opengis.parameter.ParameterValueGroup getParameterValues()
          Returns the parameters for this math transform.
 int getSourceDimensions()
          Gets the dimension of input points.
 int getTargetDimensions()
          Gets the dimension of output points.
 int hashCode()
          Returns a hash value for this transform.
 org.opengis.referencing.operation.MathTransform inverse()
          Creates the inverse transform of this object.
 void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)
          Transforms a list of coordinate point ordinal values.
 void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)
          Transforms a list of coordinate point ordinal values.
 
Methods inherited from class org.geotools.referencing.operation.transform.AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getDimSource, getDimTarget, isIdentity, needCopy, rollLongitude, transform, transform
 
Methods inherited from class org.geotools.referencing.wkt.Formattable
toString, toWKT, toWKT, toWKT
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opengis.referencing.operation.MathTransform
toWKT
 

Constructor Detail

MolodenskiTransform

public MolodenskiTransform(boolean abridged,
                           double a,
                           double b,
                           boolean source3D,
                           double ta,
                           double tb,
                           boolean target3D,
                           double dx,
                           double dy,
                           double dz)
Constructs a Molodenski transform from the specified parameters.

Parameters:
abridged - for the abridged formula, or for the complete one.
a - The source semi-major axis length in meters.
b - The source semi-minor axis length in meters.
source3D - if the source has a height.
ta - The target semi-major axis length in meters.
tb - The target semi-minor axis length in meters.
target3D - if the target has a height.
dx - The x translation in meters.
dy - The y translation in meters.
dz - The z translation in meters.
Method Detail

getParameterDescriptors

public org.opengis.parameter.ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this math transform.

Overrides:
getParameterDescriptors in class AbstractMathTransform
Returns:
The parameter descriptors for this math transform, or .
See Also:
OperationMethod.getParameters()

getParameterValues

public org.opengis.parameter.ParameterValueGroup getParameterValues()
Returns the parameters for this math transform.

Overrides:
getParameterValues in class AbstractMathTransform
Returns:
The parameters for this math transform.
See Also:
Operation.getParameterValues()

getSourceDimensions

public int getSourceDimensions()
Gets the dimension of input points.

Specified by:
getSourceDimensions in interface org.opengis.referencing.operation.MathTransform
Specified by:
getSourceDimensions in class AbstractMathTransform

getTargetDimensions

public final int getTargetDimensions()
Gets the dimension of output points.

Specified by:
getTargetDimensions in interface org.opengis.referencing.operation.MathTransform
Specified by:
getTargetDimensions in class AbstractMathTransform

transform

public void transform(double[] srcPts,
                      int srcOff,
                      double[] dstPts,
                      int dstOff,
                      int numPts)
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 org.opengis.referencing.operation.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 .
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.

transform

public void transform(float[] srcPts,
                      int srcOff,
                      float[] dstPts,
                      int dstOff,
                      int numPts)
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 org.opengis.referencing.operation.MathTransform
Overrides:
transform in class AbstractMathTransform
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 .
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.

inverse

public org.opengis.referencing.operation.MathTransform inverse()
Creates the inverse transform of this object.

Specified by:
inverse in interface org.opengis.referencing.operation.MathTransform
Overrides:
inverse in class AbstractMathTransform

hashCode

public final int hashCode()
Returns a hash value for this transform.

Overrides:
hashCode in class AbstractMathTransform

equals

public final boolean equals(java.lang.Object object)
Compares the specified object with this math transform for equality.

Overrides:
equals in class AbstractMathTransform


Copyright © GeoTools. All Rights Reserved.