HEL3D
Perform a three-dimensional Helmert transformation
Two input data files are read:
- Points in a reference coordinate system (new)
- Points in the old coordinate system to be transformed into the reference system
Both files are format-free. No header or ending lines are required. Each line must contain four values: point name, X, Y, and Z.
One or both input files may also be ITERA files written by RELAX or BINGO. In this case, the projection centers are used with the point coordinates to estimate the transformation parameters. Rotation angles are also transformed to the new orientation.
Select the preferred rotation-angle type, ORIA or ORIT, using Force usage of aerial orientations. If this option is not selected, terrestrial orientations are preferred.
If the reference-system file (new) contains point coordinates and photo projection centers, such as GPS coordinates, in free format, separate these data using the keyword FOTOS or PHOTOS in column 1. The keyword line must not contain any additional value. All data after this line is treated as photo projection-center data.
Photos and points may have identical names, for example, point X327 and photo X327.
If the second file (old), containing the coordinates and orientation data, is an ITERA file, the result file is also an ITERA file.
The transformation parameters are calculated from at least three identical points in the old and new system.
This program has the following transformation functions:
- Compare the coordinates in the two input files without a transformation.
- Transform all old-system point coordinates into the new reference coordinate system using a median shift in X, Y, and Z, without scale or rotation.
- Transform all old-system point coordinates into the new reference coordinate system using a two-dimensional, five-parameter affine transformation with shifts in X, Y, and Z, rotation around Z, and scale. The Z coordinates do not affect the rotation or scale.
- Transform all old-system point coordinates into the new reference coordinate system using a three-dimensional, seven-parameter transformation with shifts in X, Y, and Z, rotations around X, Y, and Z, and scale.
- Apply transformation 3 using RANSAC error elimination.
- Apply transformation 4 using RANSAC error elimination.
RANSAC stands for Random Sample Consensus. It is an iterative method based on repeated random sampling.
Transformation parameters and residuals are written to the HEL3D list file. The transformed points and orientation data are written to a separate file whose default name is result.dat.
Append data to a file
The New/Overwrite and Append options control output to the transformed point-coordinate file. With New/Overwrite, the output file may or may not already exist; it is created or overwritten from the beginning. With Append, the file must already exist, and all output is appended to it.
To write a file from the beginning, select New/Overwrite. To add more data to the output file, select Append, even within the same session.
Regardless of this option, the HEL3D list file is overwritten from the beginning during each transformation unless its filename has been changed.
Example reference.dat input file containing four reference points:
101 100.9740 206.4928 4.1306
102 105.6322 205.8560 4.1549
104 100.0000 205.0000 1.0200
106 102.3429 207.5948 1.1000
Input example file oldcord.dat with points to be transformed:
101 1009.740 2064.928 41.406
102 1056.322 2058.560 41.249
103 1059.666 2050.000 10.000
104 1000.000 2050.000 10.000
105 1004.133 2080.464 11.353
106 1023.429 2075.948 10.000
201 1054.640 2062.429 35.907
202 1049.848 2063.144 35.732
203 1046.755 2063.611 35.628
204 1042.146 2064.285 35.450
205 1039.206 2064.724 35.323
206 1033.575 2065.557 35.078
207 1029.127 2066.094 35.800
: : : :
Example hel3d.lis output file containing transformation parameters and residuals:
* Three-dimensional Helmert Transformation
* -----------------------------------------------------
*
* Transformation parameters:
*
* Shift
* 1.5260 1.7410 -1.9164
*
* Scale
* 0.0990415
*
* Rotation
* 0.9999934 0.0026176 0.0025390
* -0.0026389 0.9999611 0.0084158
* -0.0025169 -0.0084225 0.9999614
*
* Remaining residuals in the reference points:
*
* Point_No dX dY dZ
*
101 -0.008 0.019 -0.029
102 0.035 0.001 0.005
104 -0.029 -0.019 -0.014
106 0.001 0.000 0.038
In all BINGO files, one or more lines can be made inactive by placing * in column 1.
REPLO can display the transformation residuals as a residual file.
Default values
To reset all parameters, select Settings > Set Parameter Defaults.
Application example
Flight lines with GPS data but no ground control points
For a bundle block with GPS data but no ground control, estimate the initial orientation data and ground-point coordinates as follows:
Step 1: run RELAX with image coordinates and focal length in the input files
File geoin.dat
*--------*---------*---------*----- Rev 5.4 -----*---------*---------*----
C Camera constant and principal point
C <K><__Camera_Name_><___C'___><___XH'__><___YH'__><__S_C'_><_S_XH'_><_S
CAPA Ricoh 6.0 0.0 0.0
C GPS data file with projection center coordinates
C (Key) (_File_name_) [+e] [-t] [S_X/Y S_Z]
FILE GPS gps.dat -t 10.0 2.0
*--------*---------*---------*---------*---------*---------*---------*----
The result is in a local coordinate system. As shown in itera.dat, the photos are oriented almost vertically downward.
File itera.dat
* <__Number_><_Easting_><_Northing_><_Height_><__Phi_><_Omega_><_Kappa_>
ORIA 11152 -2.52 -5.51 1.10 3.14 -0.73 3.17
ORIA 11153 0.00 0.00 0.00 0.00 0.00 0.00
ORIA 11154 -0.49 3.82 -0.09 0.06 -0.49 -3.56
ORIA 11155 4.34 6.39 -1.15 -7.25 1.32 10.95
: : : : : : : :
* <_Number_><__Easting_><_Northing_><_Height_>
CORD C_18625 1.35 -8.53 -6.56
CORD C_18627 10.38 8.67 -6.09
CORD C_18639 5.39 2.72 -6.28
CORD C_18642 6.25 12.84 -6.76
: : : : :
Step 2: transform the data in itera.dat to the given GPS data with HEL3D
The gps.dat file contains projection-center coordinates in the global system and is the new reference file for HEL3D. Because HEL3D normally expects ground coordinates, the keyword PHOTOS, or alternatively FOTOS, indicates that all following data are projection-center coordinates. The itera.dat file contains the old data to be transformed.
For a single flight line, use the two-dimensional, five-parameter affine transformation in HEL3D. For several flight lines, a three-dimensional affine transformation may be used instead.
File gps.dat
# IMAGE EASTING NORTHING ELEVATION
PHOTOS
11152 658813.80 4561270.34 489.7021
11153 658831.36 4561295.64 490.0692
11154 658856.77 4561329.37 492.3712
11155 658880.80 4561360.54 496.7688
: : : :
After running HEL3D, result.dat contains all photo orientation data and ground points in the global coordinate system. The old itera.dat file can be deleted, and result.dat can be renamed to itera.dat.
File result.dat --> new file itera.dat
ORIA 11152 658846.144 4561282.420 482.518 -191.4628 -3.5689 44.2962
ORIA 11153 658857.837 4561330.787 491.234 -193.5308 -1.0946 41.1839
ORIA 11154 658879.933 4561353.353 490.113 -193.7784 -1.5218 37.6293
ORIA 11155 658862.074 4561393.903 501.377 -198.5233 4.3279 52.0822
: : : : : : : :
CORD C_18625 658812.459 4561280.706 549.098
CORD C_18627 658838.144 4561437.989 545.321
CORD C_18639 658841.419 4561374.350 545.454
CORD C_18642 658886.121 4561444.770 546.072
: : : : :
After removing the PHOTOS keyword from the GPS file, BINGO processing can continue as usual.