This program computes a spacial similarity transformation between two sets of points and/or projection centres, and transforms the elements of the second set to the coordinate system of the first.
In addition to a conventional transformation tool, this one transforms the rotations of the projection centres and also offers some interesting options.
The input files are approximate values files (.apr, .prm, .ajs), and the points and projection centres can have individual precisions for both planimetry and altimetry, being the format the same as for the control files.
Depending on the different options selected, it may or may not be obligatory to specify some (or all) of the precision values. The obligatory ones (the text boxes) appear with white background, while those which are optional or are not allowed have light grey colour.
![]() |
![]() | ||
Obligatory | Optional/Not allowed |
When the precisions of a file are optional, if any of them is specified it is then necessary to fill in the four values. Thus, when writing on any of them, the four boxes turn white. If the four values are deleted the boxes will then turn back grey.
It is the default option. The coordinates of the common points (by points we may refer to both points and projection centres indistinctly) are taken from the reference file and dont vary during the adjustment. The program, after obtaining the parameters, transforms the points of the file to be transformed that dont appear in the reference file. You can calculate a transformation with the example files. From the folder ejemplo select modelo1.ajs as reference file and modelo2.ajs as file to be transformed.
If the option fixed reference file is not selected the coordinates of the common points are adjusted, obtaining new values that are not the ones of the reference file, nor of the file to be transformed, but some intermediate ones.
For the files modelo1.ajs and modelo2.ajs the precisions are the following:
When carrying out the transformation the files modelo1.inf and modelo1.ajs are generated (this files replace the ones with the same name, should there be any).
With the example data the file is modelo1.ajs.inf. The information that gets included in this file can be
customized in .
At the beginning there is a header with the elements that define the transformation and information about the number of points and projection centres. With the example files and common points fixed, it is this one:
FILE OF INFORMATION OF THE TRANSFORMATION Reference file: C:\Archivos de programa\Aerotri\ejemplo_Modelos\modelo1.ajs File to be trandformed: C:\Archivos de programa\Aerotri\ejemplo_Modelos\modelo2.ajs Precisions: The reference file is fixed File to be transformed: All equal, unspecified With scale factor Projection centres 1......... 128 Projection centres 2......... 130 Common projection centres.... 18 Points 1..................... 382 Points 2..................... 397 Common points................ 85
With the same files, but with variable reference points and with the precision values indicated above, the header is the same but for the precisions.
Precisions: Reference file: Photographs, planimetric: 1 Photographs, altimetric: 1 Points, planimetric: 0.4 Points, altimetric: 1.1 File to be transformed: Photographs, planimetric: 0.9 Photographs, altimetric: 0.9 Points, planimetric: 0.4 Points, altimetric: 1
The different possibilities regarding precisions are explained in Precisions: Different cases.
With scale factor means that the transformation includes a scale factor, as usual.
The program has the option not to include a scale factor. This may be interesting in some cases.
It is explained in Scale factor.
After the header there come the computed transformation parameters. With the example points and the reference file fixed:
Transformation parameters from system 2 to system 1 Transformation criteria: (X1-CG1)=l*R*(X2-CG2) X1: Coordinates in system 1 X2: Coordinates in system 2 CG1: Weighted gravity centre of system 1 CG2: Weighted gravity centre of system 2 R: Rotation matrix l: Scale factor CG1: 308630.051 4225678.364 1582.122 CG2: 308630.926 4225678.395 1581.870 Translation (CG1-CG2): -0.875 -0.031 0.252 l: 0.9999908 Rotation matrix: 1.0000000 0.0000137 -0.0000559 -0.0000137 1.0000000 0.0000464 0.0000559 -0.0000464 1.0000000
With variable reference file and the precision values above said:
Transformation parameters from system 2 to system 1 Transformation criteria: (X1-CG1)=l*R*(X2-CG2)+Tr X1: Coordinates in system 1 X2: Coordinates in system 2 CG1: Weighted gravity centre of system 1 CG2: Weighted gravity centre of system 2 R: Rotation matrix l: Scale factor CG1: 308609.875 4225765.454 1588.479 CG2: 308610.784 4225765.419 1588.299 Translation (CG1-CG2): -0.909 0.036 0.180 l: 0.9999842 Rotation matrix: 1.0000000 0.0000120 -0.0000996 -0.0000120 1.0000000 0.0001003 0.0000996 -0.0001003 1.0000000
The gravity centres are computed with the same weight for both sets, so that CG1 and CG2 are
the same point. They are also selected in such a way that the least squares solutions transforms CG2
into CG1. The translation shown after the coordinates of the gravity centres is just informative, and it doesnt
play any role as a transformation parameter. It makes sense only if the scale factor is approximately 1.
Afterwards there come the residuals. All the residuals are shown in the system of the reference file and in the system of the file to be transformed. (The vector of residual is the same, but referred to two different coordinate systems). In the case where the reference file is fixed, for each point there are only the residuals of its coordinates in the file to be transformed, and the displayed numbers are the values from the reference file minus the value from the file to be transformed, one of them transfomed to the coordinate system of the other. If the reference file is variable but the option Equal to the reference file's is selected for the file to be transformed, then every difference among the coordinates form one and the other file is evenly divided in two when being assigned to the residuals of both observations, therefor it does not supply any further information to display the value of each residual. and the shown value is again the difference between the two files. If on the other hand all obbligatory as well as optional precision values are specified, then the difference among coordinates is divided in parts inversely proportional to the squares of the precisions. This ratio may not even be constant if individual precisions are specified in any of the files. In these cases the individial residual asigned to each coordinate is shown.
This is the different information relating to residuals that may appear:
(a) The residuals of the observed coordinates, both in the reference system and in the system to be transformed. They are not shown on default.
(b) The greatest residuals. By default the greatest 2%, but this value may be modified in the configuration window for the information to be included in the file. If a value of 100% is specified the result is to show all the residuals sorted from greatest to lowest.
(c) The residuals of control points, that are those marked with a 2 in either of the files. The diaplayed value is always the value from the reference file minus the value from the file to be transformed.
Right after the residuals it comes the value of the a posteriori standard deviation. If the optional values of precisions were not filled in, the standard deviation shown is the value estimated for those precisions regarding the residuals of the adjustment. In this case, and if the reference file is not fixed, the precisions in the system to be transfomed and in the reference system are in a ratio equal to the scale factor, and both of them will be shown. On the other hand, if all the obbligatory and optional precision values were specified, the the written value is the ratio between the estimated precisions and the input values. (For example, a value of 0.5 means that it has been estimated that the precisions are actually onebhalf of the ones indicated in the window).
Nest is an example for each case:
Fixed reference file and the precisions for the file to be transformed not specified
A posteriori standard deviation (CC.pp. and points in the system to be transformed): 0.65
Variable reference file and precisions of file to be transformed Equal to the reference file's
A posteriori standard deviation (CC.pp. and points) In the reference system: 0.12 In the system to be transformed: 0.16
Any other combination
A posteriori standard deviation (Proportionally to the a priori precisions): 0.86
The last block of the information file are the precisions. In the first place the transformation parameters precisions. The precision of the translation is the one of the gravity centres. The precision of the scale factor is shown adimensional ---i.e., relative to the scale fator itself, which is the one that is of interest.
Last is the precision of the transformed of an errorless point, for both ways of transforming. The variance matrix of such a transformed point depends upon its position with respect to the gravity center, which is the point where the transformation achieves its maximum precision. It is more easily expresed in terms of the transformed coordinates, and this is the diaplayed formula. With exception of the gravity centre, the precision of a point cannot be obtained at a glance out from the formula, and so the precision values for certain selected points are shown in order to provide an idea of the precision attained by the transformation in every area of the space.
This file, that for the example transformations is modelo1.ajs.ajs, contains the coordinates of all points in the reference system. There are three groups of points: The ones that were only in the reference file, that stay unchanged; the common points, that in the case of the reference file being fixed their coordinates are taken from this file, and in the other case they are the adjusted coordinates; and the ones that were only in the file to be transformed, that are transformed according to the calculated parameters.
There are two possibilities: to indicate values for the precisions of the file to be transformed or not to do it. Arent they indicated, for the program the precisions are all equal, unspecified, as it appears in the header of the information file. In this case individual precisions specified in the file are ignored (if the general precision is not known particular precisions cannot be applied).
In this case it can also be choose whether to indicate the precision values or not doing it. If we want not to indicate any value, the area of the window corresponding to the precisions must be as follows:
The meaning is the same as for the case of fixed reference file: all equal but unknown. And so in this case individual precisions specified in the files are also ignored.
If we indicate the precision values for the reference file, we still have the possibility of not
filling in the values for the file to be transformed, in which case we have to select .
The way the program understands the option Equal to the reference file's, both in the case where precision for the reference file has been specified as well as when they have not, is that the precisions of both sets of coordinates are the same in the same system. Since there exists a rotation and a scale factor relating each system, the observed values for each set in its own system will be different. The rotation only has an efect if the values for planimetric and alimetric precisions are different (and in any case the Κ rotation has on efect).
The option Equal to the reference file's applies to the general precisions as well as for the individual ones. Thus, the next two cases are not equivalent:
If the rotations are small and the scale factor is near one they will be equivalent for the general precisions, and if the previous conditions are not satisfied not even for that.
In some occasions there should not be a difference of scale between the two sets of points. In that case we
may select the option . In doing so, the computed
transformation is not a spacial similarity but a movement.
This option can be selected in the menu «Options»: ,
and serves to make the program aware of this fact. It is taken into account when computing approximate values, although it is
likely that a correct solution be reached even if this is not taken into account. The other place where it is used is when
obtaining the precision values, where a rigorous calculation is carried out instead of an approximate one, the latest relying on
the supposition that no error gets transfered from planimetry to altimetry and vice versa when transforming a point.
In some occasion when joining two models, the area of overlap, the one used to calculate the
transformation, has been calculated from the same observations in both models (for example, if the
union is between two large models with a common strip. The strip would have been measured once).
In this situation the errors of the common points in both files will be strongly correlated (they
will be very similar). As a consequence the two models, and therefore the transformation, will fit much
better than the real precision the points have, and the a posteriori standard deviation is a false low
value, which generates precision values for the transformation parameters and the points (if the
reference file is not fixed) lower than the ones they really have. If these values are of interest,
it is more reliable to calculate them using the a priori precisions, i.e. the ones specified
by the user in the window. In order to do so select .
Using this condition the optional precision values become obligatory. (The colour of the cell changes automatically).
If this option is selected it is indicated in the information file header, and after the a posteriori standard deviation this text is placed:
A posteriori standard deviation (Proportionally to the a priori precisions): 0.86 ;It has been forced the use of the a priori variances; this value wont be used.