|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.referencing.operation.builder.MathTransformBuilder
org.geotools.referencing.operation.builder.BursaWolfTransformBuilder
public class BursaWolfTransformBuilder
Builds MathTransform setup as BursaWolf transformation from a list of MappedPosition. The calculation uses least square method. Calculated parameters can be used for following operations:
The equations:
X = q * R * x + T ,Where X is the Matrix of destination points, q is the scale, R is the rotation Matrix, x is the Matrix of source points and T is matrix of translation. Expressing the errors, we get this:
Err = A * Dx + lwhere Err is the Error Matrix, A is Matrix of derivations, Dx is Matrix of difference changes of 7 parameters, and l is value of DX, DY, DZ for calculated from approximate values. Using the least square method to minimalize the errors we get this result:
Dx = (ATA)-1 ATl
Field Summary |
---|
Fields inherited from class org.geotools.referencing.operation.builder.MathTransformBuilder |
---|
mtFactory |
Constructor Summary | |
---|---|
BursaWolfTransformBuilder(java.util.List<MappedPosition> vectors)
Creates a BursaWolfTransformBuilder. |
Method Summary | |
---|---|
protected org.opengis.referencing.operation.MathTransform |
computeMathTransform()
Returns MathtTransform setup as BursaWolf transformation. |
protected GeneralMatrix |
getA()
Glues the submatrix of derivations into the A matrix. |
BursaWolfParameters |
getBursaWolfParameters(org.opengis.referencing.datum.GeodeticDatum Datum)
Returns Bursa Wolf Transformation parameters. |
java.lang.Class<? extends org.opengis.referencing.cs.CartesianCS> |
getCoordinateSystemType()
Returns the required coordinate system type, which is cartesian CS. |
int |
getDimension()
Returns the dimension for source and
target CRS, which is 2. |
protected GeneralMatrix |
getDq()
Generates partial derivative in q (scale factor). |
protected GeneralMatrix |
getDRalfa()
Generates partial derivative with respect to alfa. |
protected GeneralMatrix |
getDRbeta()
Generates partial derivative with respect to beta. |
protected GeneralMatrix |
getDRgamma()
Generates partial derivative with respect to gamma. |
GeneralMatrix |
getDxMatrix()
Method that claculates the parameters by iteration. |
protected GeneralMatrix |
getl()
Calculates the matrix of errors from aproximate values of prameters. |
int |
getMinimumPointCount()
Returns the minimum number of points required by this builder, which is 3. |
protected double[] |
getParameters()
Returns array of doubles of transformation parameters (dx, dy, dz, ex, ey, ez, scale). |
protected GeneralMatrix |
getRalfa()
Generates rotation matrix around X axis. |
protected GeneralMatrix |
getRbeta()
Generates rotation matrix around Y axis. |
protected GeneralMatrix |
getRgamma()
Generates rotation matrix around Z axis. |
protected GeneralMatrix |
getx()
Fills the x matrix by coordinates of source points. |
protected GeneralMatrix |
getX()
Fills the x matrix by coordinates of destination points. |
void |
setTargetGeodeticDatum(org.opengis.referencing.datum.GeodeticDatum gd)
|
protected GeneralMatrix |
specialMul(GeneralMatrix R,
GeneralMatrix x)
Method for multiplying matrix (3,3) by matrix of coordintes (3 number of coordinates,1) |
Methods inherited from class org.geotools.referencing.operation.builder.MathTransformBuilder |
---|
getErrorStatistics, getMappedPositions, getMathTransform, getName, getSourceCRS, getSourcePoints, getTargetCRS, getTargetPoints, getTransformation, printPoints, setMappedPositions, setSourcePoints, setTargetPoints, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public BursaWolfTransformBuilder(java.util.List<MappedPosition> vectors)
vectors
- list of mapped positions.Method Detail |
---|
public int getMinimumPointCount()
getMinimumPointCount
in class MathTransformBuilder
public int getDimension()
source
and
target
CRS, which is 2.
getDimension
in class MathTransformBuilder
target
CRS, which is 2.public java.lang.Class<? extends org.opengis.referencing.cs.CartesianCS> getCoordinateSystemType()
getCoordinateSystemType
in class MathTransformBuilder
protected GeneralMatrix getx()
protected GeneralMatrix getX()
protected GeneralMatrix getRalfa()
protected GeneralMatrix getRbeta()
protected GeneralMatrix getRgamma()
protected GeneralMatrix getDRalfa()
protected GeneralMatrix getDRbeta()
protected GeneralMatrix getDRgamma()
protected GeneralMatrix getDq()
protected GeneralMatrix getl()
protected GeneralMatrix specialMul(GeneralMatrix R, GeneralMatrix x)
R
- ratrixx
- matrix
protected GeneralMatrix getA()
protected double[] getParameters()
public GeneralMatrix getDxMatrix()
public BursaWolfParameters getBursaWolfParameters(org.opengis.referencing.datum.GeodeticDatum Datum)
Datum
- The target datum for this parameters.
public void setTargetGeodeticDatum(org.opengis.referencing.datum.GeodeticDatum gd)
protected org.opengis.referencing.operation.MathTransform computeMathTransform() throws org.opengis.referencing.FactoryException
computeMathTransform
in class MathTransformBuilder
org.opengis.referencing.FactoryException
- when the size of source and destination point
is not the same or if the number of points is too small to
define such transformation.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |