org.geotools.referencing.operation.builder
Class SimilarTransformBuilder

Object
  extended by MathTransformBuilder
      extended by ProjectiveTransformBuilder
          extended by SimilarTransformBuilder

public class SimilarTransformBuilder
extends ProjectiveTransformBuilder

Builds MathTransform setup as Similar transformation from a list of MappedPosition. The The calculation uses least square method. The similar transform equation:

                                                  
  [ x']   [  a -b  Tx  ] [ x ]   [ a*x - b*y + Tx ]
  [ y'] = [  b  a  Ty  ] [ y ] = [ b*x + a*y + Ty ] 
In the case that we have more identical points we can write it like this (in Matrix):
                                           
  [ x'1 ]      [ x1 -y1  1 0 ]   [ a  ]
  [ x'2 ]      [ x2 -y2  1 0 ]   [ b  ]
  [  .  ]      [      .      ]   [ Tx ]                          
  [  .  ]      [      .      ] * [ Ty ]                          
  [ x'n ]   =  [ xn  yn  1 0 ]   
  [ y'1 ]      [ y1  x1  0 1 ]   
  [ y'2 ]      [ y2  x2  0 1 ]  
  [  .  ]      [      .      ]                                      
  [  .  ]      [      .      ]                                    
  [ y'n ]      [ yn xn  0  1 ]     
    x' = A*m  
Using the least square method we get this result:
m = (ATA)-1 ATx'

Since:
2.4
Author:
Jan Jezek

Field Summary
 
Fields inherited from class ProjectiveTransformBuilder
A, P, X
 
Fields inherited from class MathTransformBuilder
mtFactory
 
Constructor Summary
SimilarTransformBuilder(List<MappedPosition> vectors)
          Creates SimilarTransformBuilder for the set of properties.
 
Method Summary
protected  void fillAMatrix()
          Fills A matrix for m = (ATPA)-1 ATPx' equation
 int getMinimumPointCount()
          Returns the minimum number of points required by this builder, which is 2.
protected  GeneralMatrix getProjectiveMatrix()
          Returns the matrix for Projective transformation setup as Affine.
 
Methods inherited from class ProjectiveTransformBuilder
calculateLSM, computeMathTransform, fillPMatrix, fillXMatrix, getCoordinateSystemType, includeWeights
 
Methods inherited from class MathTransformBuilder
getDimension, getErrorStatistics, getMappedPositions, getMathTransform, getName, getSourceCRS, getSourcePoints, getTargetCRS, getTargetPoints, getTransformation, printPoints, setMappedPositions, setSourcePoints, setTargetPoints, toString
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimilarTransformBuilder

public SimilarTransformBuilder(List<MappedPosition> vectors)
                        throws MismatchedSizeException,
                               MismatchedDimensionException,
                               MismatchedReferenceSystemException
Creates SimilarTransformBuilder for the set of properties. The List of MappedPosition is expected.

Parameters:
vectors - list of MappedPosition
Throws:
MismatchedSizeException
MismatchedDimensionException
MismatchedReferenceSystemException
Method Detail

fillAMatrix

protected void fillAMatrix()
Description copied from class: ProjectiveTransformBuilder
Fills A matrix for m = (ATPA)-1 ATPx' equation

Overrides:
fillAMatrix in class ProjectiveTransformBuilder

getMinimumPointCount

public int getMinimumPointCount()
Returns the minimum number of points required by this builder, which is 2.

Overrides:
getMinimumPointCount in class ProjectiveTransformBuilder
Returns:
Returns the minimum number of points required by this builder, which is 2.

getProjectiveMatrix

protected GeneralMatrix getProjectiveMatrix()
Returns the matrix for Projective transformation setup as Affine. The M matrix looks like this:
                                                       
 [  a  -b  Tx  ]                           
 [  b   a  Ty  ]                              
 [  0   0  1   ]                                                                   
 

Overrides:
getProjectiveMatrix in class ProjectiveTransformBuilder
Returns:
Matrix M.


Copyright © 1996-2014 Geotools. All Rights Reserved.