|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.cts.IdentifiableComponent
org.cts.op.AbstractCoordinateOperation
org.cts.op.transformation.SevenParameterTransformation
public class SevenParameterTransformation
Seven-Parameter transformations are mathematical similarities or Helmert transformations in a three dimensional space.
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 :
| Field Summary | |
|---|---|
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. |
| Fields inherited from class org.cts.op.AbstractCoordinateOperation |
|---|
precision |
| Fields inherited from interface org.cts.Identifiable |
|---|
DEFAULT, LOCAL, UNKNOWN |
| Method Summary | |
|---|---|
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 |
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 object is equals to this. |
int |
hashCode()
Returns the hash code for this GeocentricTranslation. |
CoordinateOperation |
inverse()
Creates the inverse CoordinateOperation. |
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 |
| Methods inherited from class org.cts.op.AbstractCoordinateOperation |
|---|
getPrecision |
| Methods inherited from class org.cts.IdentifiableComponent |
|---|
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getComponent, getIdentifier, getName, getRemarks, getShortName, setIdentifier, setRemarks, setShortName |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.cts.Identifiable |
|---|
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getName, getRemarks, getShortName, setRemarks, setShortName |
| Field Detail |
|---|
public static final int POSITION_VECTOR
public static final int COORDINATE_FRAME
public static final boolean LINEARIZED
public static final boolean NOT_LINEARIZED
| Method Detail |
|---|
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 meters
public 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,
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 transformation
public 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 transformation
public double[] transform(double[] coord)
throws IllegalCoordinateException
transform in interface CoordinateOperationtransform in class AbstractCoordinateOperationcoord - the coordinate to transform
IllegalCoordinateException - if coord is not
compatible with this CoordinateOperation.
public CoordinateOperation inverse()
throws NonInvertibleOperationException
inverse in interface CoordinateOperationinverse in class AbstractCoordinateOperationNonInvertibleOperationExceptionpublic String toString()
toString in class IdentifiableComponentpublic String toWKT()
toWKT in interface GeoTransformationpublic boolean equals(Object o)
this. Tests equality between the references of both object,
then tests if the seven parameters values (tx, ty, tz, etc) used by each
SevenParameterTransformation are equals.
equals in class IdentifiableComponentobject - The object to compare this ProjectedCRS againstpublic int hashCode()
hashCode in class IdentifiableComponent
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||