public class SevenParameterTransformation extends AbstractCoordinateOperation implements GeoTransformation, ParamBasedTransformation
In the geodesy domain, formulas are often linearized, considering that rotation angles are small enough to replace sin(x) by x, cos(x) by 1 and sin(x)*sin(x) by 0. This is the case of Bursa-Wolf formulas and Coordinate- frame rotation. If you want to use non linearized formulas, please, use the createSevenParameterTransformation constructor
Geodesian also use two different conventions for rotation angle :
| Modifier and Type | Field and Description |
|---|---|
static int |
COORDINATE_FRAME
COORDINATE_FRAME sign convention is such that a positive rotation of the
frame about an axis is defined as a clockwise rotation of the coordinate
reference frame when viewed from the origin of the cartesian coordinate
reference system in the positive direction of that axis, that is a
positive rotation about the Z-axis only from source coordinate reference
system to target coordinate reference system will result in a smaller
longitude value for the point in the target coordinate reference system.
|
static boolean |
LINEARIZED
LINEARIZED when formulas use x (rad) instead of sin(x).
|
static boolean |
NOT_LINEARIZED
NOT_LINEARIZED when formulas use exact sin(x) function.
|
static int |
POSITION_VECTOR
POSITION_VECTOR sign convention is such that a positive rotation about an
axis is defined as a clockwise rotation of the position vector when
viewed from the origin of the cartesian coordinate reference system in
the positive direction of that axis; e.g. a positive rotation about the
Z-axis only from source system to target system will result in a larger
longitude value for the point in the target system.
|
precisionDEFAULT, LOCAL, UNKNOWN| Modifier and Type | Method and Description |
|---|---|
static SevenParameterTransformation |
createBursaWolfTransformation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm)
Create a Bursa-Wolf transformation with the default precision.
|
static SevenParameterTransformation |
createBursaWolfTransformation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm,
double precision)
Create a Bursa-Wolf transformation with a specific precision.
|
static SevenParameterTransformation |
createBursaWolfTransformation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm,
SevenParameterTransformation inverse) |
static SevenParameterTransformation |
createCoordinateFrameRotation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm)
Create a CoordinateFrame rotation with the default precision.
|
static SevenParameterTransformation |
createCoordinateFrameRotation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm,
double precision)
Create a Coordinate Frame rotation with a specific precision.
|
static SevenParameterTransformation |
createSevenParameterTransformation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm,
int rotationConvention,
boolean linearized)
Create a 7-Parameter transformation with a default precision.
|
static SevenParameterTransformation |
createSevenParameterTransformation(double tx,
double ty,
double tz,
double rx_sec,
double ry_sec,
double rz_sec,
double ds_ppm,
int rotationConvention,
boolean linearized,
double precision)
Create a 7-parameter transformation with a specific precision.
|
boolean |
equals(Object o)
Returns true if o is equals to
this. |
int |
hashCode()
Returns the hash code for this GeocentricTranslation.
|
SevenParameterTransformation |
inverse()
Creates the inverse CoordinateOperation.
|
SevenParameterTransformation |
inverse0063() |
SevenParameterTransformation |
inverseStandard() |
boolean |
isIdentity() |
String |
toString()
Return this SevenParameterTransformation as a String.
|
String |
toWKT()
Returns a WKT representation of the seven parameter transformation.
|
double[] |
transform(double[] coord)
Transform coord values
|
getPrecisionaddAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getComponent, getIdentifier, getName, getRemarks, getShortName, setIdentifier, setRemarks, setShortNameclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetPrecisionaddAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getName, getRemarks, getShortName, setRemarks, setShortNamepublic static final int POSITION_VECTOR
public static final int COORDINATE_FRAME
public static final boolean LINEARIZED
public static final boolean NOT_LINEARIZED
public static SevenParameterTransformation createSevenParameterTransformation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm, int rotationConvention, boolean linearized)
Create a 7-Parameter transformation with a default precision.
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds)ry_sec - rotation parameter around y axis (seconds)rz_sec - rotation parameter around z axis (seconds)ds_ppm - scale factor in ppm (parts per million)rotationConvention - convention used for the rotation (Position-
Vector or Coordinate-Frame)linearized - true if the formula is linearized (sin(x) = x)public static SevenParameterTransformation createSevenParameterTransformation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm, int rotationConvention, boolean linearized, double precision)
Create a 7-parameter transformation with a specific precision.
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds)ry_sec - rotation parameter around y axis (seconds)rz_sec - rotation parameter around z axis (seconds)ds_ppm - scale factor in ppm (parts per million)rotationConvention - convention used for the rotation (Position-
Vector or Coordinate-Frame)linearized - true if the formula is linearized (sin(x) = x)precision - precision of the transformation in meterspublic static SevenParameterTransformation createBursaWolfTransformation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm)
Create a Bursa-Wolf transformation with the default precision.
Bursa-Wolf transformation (or simplified seven parameters transformation or linearized Helmert transformation) is a 3D similarity with very small rotations (< 2") making it possible to approximate sin(r) with r, cos(r) with 1 and sin(r)*sin(r) with 0, which is very helpful to compute the transformation parameters from two data sets using a mean square method.
This is the the most widely used method to transform coordinates between two different datums, specially in Europe, and it is recommended by the International Association of Geodesy and ISO 19111).
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds, point vector
convention)ry_sec - rotation parameter around y axis (seconds, point vector
convention)rz_sec - rotation parameter around z axis (seconds, point vector
convention)ds_ppm - scale factor in ppm (parts per million)public static SevenParameterTransformation createBursaWolfTransformation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm, SevenParameterTransformation inverse)
public static SevenParameterTransformation createBursaWolfTransformation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm, double precision)
Create a Bursa-Wolf transformation with a specific precision.
Bursa-Wolf transformation (or simplified seven parameters transformation or linearized Helmert transformation) is a 3D similarity with very small rotations (< 2") making it possible to approximate sin(r) with r, cos(r) with 1 and sin(r)*sin(r) with 0, which is very helpful to compute the transformation parameters from two data sets using a mean square method.
This is the the most widely used method to transform coordinates between two different datums, specially in Europe, and it is recommended by the International Association of Geodesy and ISO 19111).
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds, point vector
convention)ry_sec - rotation parameter around y axis (seconds, point vector
convention)rz_sec - rotation parameter around z axis (seconds, point vector
convention)ds_ppm - scale factor in ppm (parts per million)precision - mean precision of the geodetic transformationpublic static SevenParameterTransformation createCoordinateFrameRotation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm)
Create a CoordinateFrame rotation with the default precision.
Coordinate frame rotation (sometimes called Helmert transformation or similarity) is the same transformation as Bursa-Wolf except it uses the opposite rotation angle convention. It is used in USA and recommended by NATO.
Formulas are linearized as in BursaWolf transformation.
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds, point vector
convention)ry_sec - rotation parameter around y axis (seconds, point vector
convention)rz_sec - rotation parameter around z axis (seconds, point vector
convention)ds_ppm - scale factor in ppm (parts per million)public static SevenParameterTransformation createCoordinateFrameRotation(double tx, double ty, double tz, double rx_sec, double ry_sec, double rz_sec, double ds_ppm, double precision)
Create a Coordinate Frame rotation with a specific precision.
Coordinate frame rotation (sometimes called Helmert transformation or similarity) is the same transformation as Bursa-Wolf except it uses the opposite rotation angle convention. It is used in USA and recommended by NATO.
Formulas are linearized as in BursaWolf transformation.
tx - translation parameter along x axis (meters)ty - translation parameter along y axis (meters)tz - translation parameter along z axis (meters)rx_sec - rotation parameter around x axis (seconds, point vector
convention)ry_sec - rotation parameter around y axis (seconds, point vector
convention)rz_sec - rotation parameter around z axis (seconds, point vector
convention)ds_ppm - scale factor in ppm (parts per million)precision - mean precision of the geodetic transformationpublic double[] transform(double[] coord)
throws IllegalCoordinateException
transform in interface CoordinateOperationtransform in class AbstractCoordinateOperationcoord - the coordinate to transformIllegalCoordinateException - if coord is not
compatible with this CoordinateOperation.public SevenParameterTransformation inverse()
inverse in interface CoordinateOperationinverse in interface GeocentricTransformationinverse in class AbstractCoordinateOperationpublic SevenParameterTransformation inverseStandard()
public SevenParameterTransformation inverse0063()
public String toString()
toString in class IdentifiableComponentpublic String toWKT()
toWKT in interface GeoTransformationpublic boolean equals(Object o)
this.
SevenParametersTransformations are equals if they both are identity, or
if all their parameters are equal.equals in class IdentifiableComponento - The object to compare this ProjectedCRS againstpublic int hashCode()
hashCode in class IdentifiableComponentpublic boolean isIdentity()
isIdentity in interface CoordinateOperationisIdentity in class AbstractCoordinateOperationCopyright © 2019 CNRS. All rights reserved.