org.deegree.tools.crs.georeferencing.application.transformation
Class AffineTransformation

java.lang.Object
  extended by org.deegree.cs.CRSIdentifiable
      extended by org.deegree.cs.transformations.Transformation
          extended by org.deegree.tools.crs.georeferencing.application.transformation.AbstractTransformation
              extended by org.deegree.tools.crs.georeferencing.application.transformation.AffineTransformation
All Implemented Interfaces:
Object, TypedObjectNode, CRSResource

public class AffineTransformation
extends AbstractTransformation

Implementation of the affine transformation with 6 parameters.

  • Build an array of balanced points calculated from the passpoints.
  • Calculate the coodinates to the balancedPoints.
  • Calculate the coodinates to the balancedPoints(the points for E, N, X, Y, dX, dY).
  • Calculate helpers for the caluculation of the needed transformation constants(SumY''X'', mSubtrahend, X''²sum, Y''²sum).
  • Calculate the transformation constants applied to the helpers.
  • Calculate the residuals for each coordiante.
  • Finally caluculate the coordinates of the footprint polygons.
  • GeoRefPointsX-Dimension GeoRefPointsY-Dimension FootprintPointsX-Dimension FootprintPointsY-Dimension
    terminology N E X Y
    passPoints passPointsSrcN passPointsSrcE passPointsDstX passPointsDstY
    balancedPoints balancedPointN balancedPointE balancedPointDstX balancedPointDstY
    resultingPoints passPointsN_one passPointsE_one calculatedN_one calculatedE_one

    Version:
    $Revision: 29642 $, $Date: 2011-02-11 13:59:33 +0100 (Fri, 11 Feb 2011) $
    Author:
    Steffen Thomas, last edited by: $Author: lbuesching $

    Nested Class Summary
     
    Nested classes/interfaces inherited from class org.deegree.tools.crs.georeferencing.application.transformation.AbstractTransformation
    AbstractTransformation.TransformationType
     
    Field Summary
     
    Fields inherited from class org.deegree.tools.crs.georeferencing.application.transformation.AbstractTransformation
    footPrint, mappedPoints, order, sceneValues, sourceCRS, targetCRS
     
    Constructor Summary
    AffineTransformation(List<Triple<Point4Values,Point4Values,PointResidual>> mappedPoints, Footprint footPrint, Scene2DValues sceneValues, ICRS sourceCRS, ICRS targetCRS, int order)
               
     
    Method Summary
     PointResidual[] calculateResiduals()
              Calculates the Residuals for the mappedPoints
     List<Ring> computeRingList()
              Calculates the Polygons for the transformation.
     List<javax.vecmath.Point3d> doTransform(List<javax.vecmath.Point3d> srcPts)
              Do a transformation, e.g. the incoming data will be transformed into other coordinates.
     String getImplementationName()
               
     AbstractTransformation.TransformationType getType()
               
     boolean isIdentity()
               
     
    Methods inherited from class org.deegree.tools.crs.georeferencing.application.transformation.AbstractTransformation
    getArraySize, getCRSCodeType, getIdentifiable, getResiduals
     
    Methods inherited from class org.deegree.cs.transformations.Transformation
    areInverse, canTransform, contains, copyTransformation, createFromTo, doTransform, doTransform, equalOnCRS, equals, getSourceCRS, getSourceDimension, getTargetCRS, getTargetDimension, getTransformationName, getTransformationPath, inverse, isInverseTransform, setSourceCRS
     
    Methods inherited from class org.deegree.cs.CRSIdentifiable
    addAreaOfUse, addName, checkForNullObject, checkForNullObject, checkForNullObject, getAreaOfUse, getAreaOfUseBBox, getAreasOfUse, getCode, getCodeAndName, getCodes, getDescription, getDescriptions, getId, getName, getNames, getOrignalCodeStrings, getVersion, getVersions, hasCode, hashCode, hasId, hasIdOrName, setDefaultAreaOfUse, setDefaultDescription, setDefaultId, setDefaultName, setDefaultVersion, toString
     
    Methods inherited from class java.lang.Object
    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
     

    Constructor Detail

    AffineTransformation

    public AffineTransformation(List<Triple<Point4Values,Point4Values,PointResidual>> mappedPoints,
                                Footprint footPrint,
                                Scene2DValues sceneValues,
                                ICRS sourceCRS,
                                ICRS targetCRS,
                                int order)
                         throws UnknownCRSException
    Throws:
    UnknownCRSException
    Method Detail

    computeRingList

    public List<Ring> computeRingList()
    Description copied from class: AbstractTransformation
    Calculates the Polygons for the transformation.

    Specified by:
    computeRingList in class AbstractTransformation
    Returns:
    a list of RingPolygons, can be null.

    getType

    public AbstractTransformation.TransformationType getType()
    Specified by:
    getType in class AbstractTransformation
    Returns:
    the TransformationType for this transformationmethod.

    calculateResiduals

    public PointResidual[] calculateResiduals()
    Description copied from class: AbstractTransformation
    Calculates the Residuals for the mappedPoints

    Specified by:
    calculateResiduals in class AbstractTransformation
    Returns:
    a PointResidual object array, can be null.

    doTransform

    public List<javax.vecmath.Point3d> doTransform(List<javax.vecmath.Point3d> srcPts)
                                            throws TransformationException
    Description copied from class: Transformation
    Do a transformation, e.g. the incoming data will be transformed into other coordinates.

    Specified by:
    doTransform in class Transformation
    Parameters:
    srcPts - the points which must be transformed, expected are following values either, long_1, lat_1, height_1, long_2, lat_2, height_2. or long_1, lat_1, long_2, lat_2
    Returns:
    the transformed points
    Throws:
    TransformationException - if a transform could not be calculated.

    getImplementationName

    public String getImplementationName()
    Specified by:
    getImplementationName in class Transformation
    Returns:
    the name of the transformation.

    isIdentity

    public boolean isIdentity()
    Specified by:
    isIdentity in class Transformation
    Returns:
    true if this transformation doesn't transform the incoming points. (e.g. is the id. matrix)


    Copyright © 2011. All Rights Reserved.