2.4.1. Coordinate Transformation Tool

2.4.1.1. Overview

The Coordinate Transformation Tool calculates transformation parameters between two coordinate systems using common (control) points measured in both systems. It supports six transformation models covering 2D and 3D applications, from simple 4-parameter Helmert to full 12-parameter 3D affine.

The tool is found under Calculations > Transformations in the sidebar.

It has two main tabs:

  • Parameter Calculation — compute transformation parameters from common points

  • Transform Points — apply computed parameters to transform new points

2.4.1.2. Quick Start

  1. Open the Transformations tool from the Calculations category.

  2. Select a transformation model from the dropdown (e.g., “Helmert 2D”).

  3. Enter or import source system points in the left grid.

  4. Enter or import target system points in the right grid.

  5. Click Calculate to compute parameters.

  6. Review residuals and statistics. Toggle outliers if needed.

  7. Switch to the Transform Points tab.

  8. Import or enter new points to transform.

  9. Click Transform and Export the results.

2.4.1.3. Available Transformation Models

2.4.1.3.1. 2D Transformations

Helmert 2D (4-parameter similarity)

The simplest and most commonly used 2D transformation. Preserves angles (conformal property) and applies a uniform scale factor. Named after Friedrich Robert Helmert (1880).

Parameters:

  • c, d: combined scale/rotation coefficients (c = s*cos(theta), d = s*sin(theta))

  • tx, ty: translations (metres)

  • Derived: scale = sqrt(c^2 + d^2), rotation = atan2(d, c)

Model equations:

X = c*x + d*y + tx
Y = -d*x + c*y + ty

Minimum points: 2 (4 observations for 4 unknowns, DOF = 0). Recommended: 3 or more for quality control.

When to use: Local surveys where the two systems differ only by rotation, scale, and translation. CAD-to-survey alignment. When angle preservation is required.

Affine 2D (6-parameter)

A more general transformation allowing different scale factors in X and Y, plus shear (non-orthogonal axes). Does not preserve angles.

Parameters:

  • a1, a2, tx: X-equation coefficients and translation

  • b1, b2, ty: Y-equation coefficients and translation

Model equations:

X = a1*x + a2*y + tx
Y = b1*x + b2*y + ty

Minimum points: 3 (non-collinear). Recommended: 4 or more.

When to use: When the source system has different scale in X and Y (e.g., old cadastral maps with differential paper shrinkage), or when axes are not orthogonal (digitizer calibration, scanner correction).

Polynomial 2D (2nd order: 12 parameters / 3rd order: 20 parameters)

Models systematic non-linear distortions using a bivariate polynomial. Purely empirical — no physical constraints.

2nd order model:

X = a0 + a1*x' + a2*y' + a3*x'^2 + a4*x'*y' + a5*y'^2
Y = b0 + b1*x' + b2*y' + b3*x'^2 + b4*x'*y' + b5*y'^2

3rd order adds cubic terms (x'^3, x'^2*y', x'*y'^2, y'^3).

Where x’ = x - cx, y’ = y - cy are centroid-reduced coordinates (centroid subtracted automatically for numerical stability).

Minimum points: 6 (2nd order) / 10 (3rd order). Recommended: 8+ / 13+.

When to use: Large-area datum transformations (hundreds of km) where Helmert/affine residuals show systematic spatial patterns. Correcting non-linear map distortions.

Warning

Polynomial transformations must NOT be used for extrapolation beyond the area covered by control points. The polynomial may oscillate wildly outside the convex hull (Runge’s phenomenon).

2.4.1.3.2. 3D Transformations

Bursa-Wolf 7-parameter (3D similarity)

The standard 3D datum transformation used in geodesy. Also known as Helmert 7-parameter. Preserves angles and applies a uniform scale factor in 3D.

Parameters:

  • tx, ty, tz: translations (metres)

  • rx, ry, rz: rotations about X, Y, Z axes (radians)

  • ds: differential scale factor (ppm)

Model (linearized for small rotations):

Xt = tx + (1+ds) * ( x + rz*y - ry*z)
Yt = ty + (1+ds) * (-rz*x + y + rx*z)
Zt = tz + (1+ds) * ( ry*x - rx*y + z)

Minimum points: 3 (non-coplanar, 9 observations for 7 unknowns). Recommended: 4 or more.

For large rotations (> 5 gradians), the solver automatically iterates (re-linearises) until convergence.

Note

The sign convention follows the IERS Position Vector convention (EPSG method 1033). If you have parameters published in the Coordinate Frame convention (EPSG 1032), reverse the sign of rx, ry, rz before entering them.

When to use: 3D datum transformations between geocentric reference frames (e.g., WGS84 to a local datum). Standard approach when rotations and scale difference are small (< 1 arcsecond / few ppm).

Molodensky-Badekas 10-parameter

A variant of the Bursa-Wolf that applies rotations around the centroid of the source points instead of the coordinate system origin. Developed by M.S. Molodensky (1962) and J. Badekas (1969).

Parameters: Same 7 as Bursa-Wolf (tx, ty, tz, rx, ry, rz, ds) plus 3 fixed centroid coordinates (x0, y0, z0).

Minimum points: 4 (ensures sufficient redundancy).

When to use: When control points cover a small area and geocentric coordinates are large (~6,371 km). The standard Bursa-Wolf suffers from high parameter correlation in this case, making the individual parameter estimates unstable. Molodensky-Badekas reduces the correlation by shifting the rotation origin to the data centroid.

Note

Both Bursa-Wolf and Molodensky-Badekas produce identical transformed coordinates — the only difference is in the numerical stability and interpretability of the estimated parameters.

3D Affine (12-parameter)

The most general linear 3D transformation. Allows different scale factors per axis, shear, and arbitrary rotation. No orthogonality constraints on the 3x3 matrix.

Parameters:

  • a11..a33: 3x3 transformation matrix (9 elements)

  • tx, ty, tz: translations (3 elements)

Model:

Xt = a11*x + a12*y + a13*z + tx
Yt = a21*x + a22*y + a23*z + ty
Zt = a31*x + a32*y + a33*z + tz

Minimum points: 4 (non-coplanar, 12 observations for 12 unknowns). Recommended: 5 or more.

When to use: 3D scanner registration with different scale errors per axis. Deformation analysis with non-rigid motion. As a diagnostic tool — if the off-diagonal matrix elements are significant, the systems are not related by a similarity transform.

2.4.1.4. User Interface

2.4.1.4.1. Tab 1: Parameter Calculation

Model Selector (top toolbar): Choose the transformation model from the dropdown. 2D models are listed first, followed by 3D models. Changing the model updates the minimum point requirement display.

Source System Grid (left): Enter or import control points in the source coordinate system. Columns: Active (checkbox), ID, X, Y, Z. The Z column is optional for 2D models.

Target System Grid (right): Same structure, for the target coordinate system.

Point Matching: Points are matched between grids by Point ID (case-insensitive). Matched points appear with a white background. Unmatched points (present in only one grid) are shown with a gray background and are excluded from the calculation.

Calculate Button: Enabled when the number of active matched points meets the model’s minimum. Computes the transformation parameters using weighted least-squares.

Results Panel (bottom, seven sub-tabs):

Parameters Tab

Displays estimated parameters with their standard deviations and units. For Helmert 2D, also shows derived scale factor and rotation angle.

Residuals Tab

Shows per-point residuals (vX, vY, vZ) and their magnitude. Points with residual magnitude exceeding 3 times the RMS are highlighted as potential outliers.

Right-click a residual row and select Toggle Outlier to deactivate that point. The transformation is automatically recalculated without the outlier. You can toggle the point back to active by right-clicking again.

Statistics Tab

Displays:

  • RMS — Root Mean Square of positional residuals (metres)

  • sigma_0^2 — A-posteriori variance factor. Values close to 1.0 indicate good agreement between the data and the model. Values >> 1 suggest outliers or model inadequacy.

  • DOF — Degrees of Freedom (observations minus parameters). DOF = 0 means exact fit with no residual information.

  • Covariance Matrix — Full parameter covariance matrix. Diagonal values are parameter variances; off-diagonal values indicate parameter correlations.

Sketch Tab

Two side-by-side plan views of the control-point geometry — the Source System on the left and the Target System on the right, separated by a draggable splitter. The sketches update automatically as soon as points are entered, imported, edited, or toggled — no calculation is required. See Geometry Sketch Tab for details.

(The Forward Verification, Inverse Verification, and Summary sub-tabs are described under Result Verification Tabs below.)

2.4.1.4.2. Tab 2: Transform Points

Status Bar (top): Shows the current model name and parameter status (calculated / loaded / none).

Source Columns (ID, X_source, Y_source, Z_source): Enter or import points to transform. These columns are editable.

Target Columns (X_target, Y_target, Z_target): Filled automatically when you click Transform. Read-only.

Buttons:

  • Import — Open the import wizard to load points from a file.

  • Clear — Clear all points from the grid.

  • Transform — Apply the current parameters to compute target coordinates.

  • Export — Save all data (source + target) to a CSV file.

2.4.1.4.3. Import Wizard

The import wizard loads point data from files into either grid. It supports:

Supported formats:

  • Text files (.txt) — space, comma, tab, or semicolon delimited

  • CSV files (.csv) — comma-separated values

  • Excel files (.xlsx, .xls) — with sheet selection for multi-sheet workbooks

Wizard steps:

  1. File Selection: Browse for a file. The wizard auto-detects the delimiter (for text files) and whether the first row contains headers.

  2. Column Mapping: Map file columns to fields (Point ID, X, Y, Z). The wizard auto-detects mappings from common header names (e.g., “ID”, “Easting”, “Northing”, “Elevation”).

  3. Summary: Review point count, dimension (2D/3D), and any warnings (duplicate IDs). Click Import to load.

2.4.1.4.4. Parameter Files (Project Files)

Transformation parameters and common points are saved to and loaded from XML files. This allows you to preserve your complete transformation setup — parameters, source points, target points, and active/inactive status — for reuse across sessions or sharing with colleagues.

Save Parameters: After calculating, click Save Params in the toolbar. The XML file stores:

  • The rotation convention (PositionVector)

  • The model name and dimension

  • All parameter values with their standard deviations and units

  • All source system common points (ID, X, Y, Z, Active status)

  • All target system common points (ID, X, Y, Z, Active status)

Load Parameters: Click Load Params to load a previously saved project file. On load:

  • The model dropdown is automatically set to match the saved model

  • Source and target point grids are populated with the saved points

  • The transformation is recalculated automatically if points are available

  • All result tabs (parameters, residuals, statistics, verification, summary) are filled

  • The Print Report button is enabled

Example XML format (complete project with common points):

<?xml version="1.0"?>
<TransformParameters Convention="PositionVector">
  <Model>Bursa-Wolf 7-param</Model>
  <Dimension>3D</Dimension>
  <ParamCount>7</ParamCount>
  <Param Name="tx" Value="199.87" StdDev="0.5" Units="m"/>
  <Param Name="ty" Value="74.79" StdDev="0.5" Units="m"/>
  <Param Name="tz" Value="246.62" StdDev="0.5" Units="m"/>
  <Param Name="rx" Value="0" StdDev="0" Units="rad"/>
  <Param Name="ry" Value="0" StdDev="0" Units="rad"/>
  <Param Name="rz" Value="0" StdDev="0" Units="rad"/>
  <Param Name="ds" Value="0" StdDev="0" Units="ppm"/>
  <SourcePoints Count="3">
    <Point ID="A1" X="4566234.123" Y="2045671.456" Z="3874512.789" Active="1"/>
    <Point ID="A2" X="4566301.987" Y="2045598.321" Z="3874489.654" Active="1"/>
    <Point ID="A3" X="4566178.456" Y="2045723.987" Z="3874534.123" Active="0"/>
  </SourcePoints>
  <TargetPoints Count="3">
    <Point ID="A1" X="4566434.001" Y="2045746.248" Z="3874759.408" Active="1"/>
    <Point ID="A2" X="4566501.864" Y="2045673.113" Z="3874736.273" Active="1"/>
    <Point ID="A3" X="4566378.333" Y="2045798.779" Z="3874780.742" Active="0"/>
  </TargetPoints>
</TransformParameters>

XML elements explained:

  • <TransformParameters Convention="..."> — root element. The Convention attribute (PositionVector or CoordinateFrame) records the rotation sign convention used. Default is PositionVector.

  • <Model> — the transformation model name (must match a registered solver name exactly).

  • <Dimension> — 2D or 3D.

  • <ParamCount> — number of <Param> elements.

  • <Param> — one per parameter, with attributes Name, Value, StdDev, Units.

  • <SourcePoints Count="N"> — container for source system points (optional, omitted in legacy files).

  • <TargetPoints Count="N"> — container for target system points (optional).

  • <Point> — one per point, with attributes ID, X, Y, Z, Active (1 = active, 0 = excluded).

Points with Active="0" are loaded as deactivated (no + in the Active column) and are excluded from the calculation. This preserves your outlier decisions across sessions.

Note

Backward compatibility: Old XML files without <SourcePoints> and <TargetPoints> sections are still loaded correctly — only the parameters are restored. The Convention attribute defaults to PositionVector if absent.

2.4.1.5. New Features (v2026.7)

2.4.1.5.1. Geometry Sketch Tab

The results panel has a new Sketch sub-tab showing the geometry of the control points in both systems, side by side: the Source System plan view on the left and the Target System plan view on the right, with a draggable splitter between them. This makes it easy to check the shape and distribution of the point sets at a glance — clustered points, mismatched IDs, or a suspicious outlier stand out immediately.

The sketches are live: they refresh automatically whenever points are entered, imported, cleared, edited in the grids, toggled active/inactive, or loaded from a project file. No calculation is needed to see the geometry.

Point symbols and colors:

  • Blue filled circle — matched and active point (participates in the calculation)

  • Gray hollow circle — unmatched point (its ID has no partner in the other grid; excluded)

  • Red hollow circle with an X — deactivated point (toggled off or marked as outlier; excluded)

Each point is labelled with its ID.

Additional graphics:

  • A dashed convex hull is drawn around the active matched points in each view, so the shapes of the two point sets can be compared directly.

  • A scale bar (bottom-left, rounded to a nice 1/2/5 x 10^n length) and a north arrow (top-right) are drawn in each view.

Navigation: Use the mouse wheel to zoom (about the cursor position) and drag with the left mouse button to pan, exactly as in the other sketch views in SurveyTools.

Residual arrows: After a successful Calculate, the target-system sketch additionally shows the per-point residuals as red arrows anchored at each matched point. Because residuals are usually millimetres to centimetres while the point extents are hundreds of metres, the arrows are automatically exaggerated so that the largest residual spans about 10% of the drawing; the exaggeration factor is printed in the corner legend (e.g. residuals x5000). This complements the Residuals table: a single bad control point shows up as one long arrow pointing away from the otherwise consistent pattern.

Residual arrows disappear as soon as the point data changes (the solution would be stale) and reappear after the next Calculate.

Note

The sketches are plan views (X/Y only); the Z coordinate of 3D points is ignored for display. For geocentric 3D models (Bursa-Wolf, Molodensky-Badekas) the view is therefore an X/Y slice of the Earth-centred coordinates, and the north arrow refers to the +Y axis of that frame rather than geographic north.

2.4.1.6. New Features (v2026.3)

2.4.1.6.1. Active Point Toggle

Click the Active column (first column) on any row in the Source or Target grid to toggle a point on/off. When you deactivate a point:

  • The matching point on the other grid is automatically deactivated too (matched by Point ID).

  • All result tabs (Parameters, Residuals, Statistics, Verification, Summary) are cleared.

  • The Print Report button is disabled.

  • You must click Calculate again to recompute with the updated point set.

This is useful for quickly testing the effect of removing points without deleting them.

2.4.1.6.2. Result Verification Tabs

After calculating, the results panel now has six sub-tabs instead of three:

Forward Verification Tab

Shows the forward calculation check (Source -> Target): for each active common point, the source coordinates are transformed using the calculated parameters and compared with the known target coordinates. Columns: ID, X_calc, Y_calc, X_target, Y_target, vX, vY, Magnitude.

Inverse Verification Tab

Shows the inverse calculation check (Target -> Source): target coordinates are inverse-transformed back to source and compared with the known source coordinates. Same column structure. For polynomial models where no closed-form inverse exists, an iterative Newton-Raphson method is used. If the inverse is unavailable, the tab shows “Inverse not available”.

Summary Tab

A read-only text memo with a complete plain-text report including model name, equations, parameters with standard deviations, statistics, and residual summaries. The content uses a fixed-width font (Courier New) for easy reading and can be selected and copied (Ctrl+A, Ctrl+C).

2.4.1.6.4. Save/Load Project Files

The Save Params and Load Params buttons now save and load a complete project file in XML format. In addition to the transformation parameters (as before), the file now includes:

  • All source points with their coordinates and active status

  • All target points with their coordinates and active status

  • The model name (used to auto-select the correct model on load)

When loading a project file:

  • The model dropdown is automatically set to match the saved model

  • Source and target grids are populated with the saved points

  • If points are available, the calculation is run automatically

  • All result tabs, verification grids, and the report are immediately available

This means you can save your complete transformation setup, share it with colleagues, and reload it exactly as it was. Old parameter-only XML files are still fully compatible.

2.4.1.6.5. Import/Export Parameters (Multi-Format)

Two new buttons on the toolbar provide import and export of transformation parameters in multiple standard geodetic formats:

Import Params — Opens a dialog to import parameters from:

  • PROJ — The +towgs84= string used by PROJ and many GIS applications

  • WKT — The TOWGS84[...] block from OGC Well-Known Text CRS definitions

  • CSV — Key-value or positional text files

  • Leica TRF — Leica instrument coordinate system definition files

  • EPSG — Lookup by EPSG transformation code from the built-in database

  • XML — SurveyTools native parameter files

Export Params — Opens a dialog to export current parameters to any of the above formats, with:

  • Live preview of the formatted output

  • Copy to Clipboard button

  • Save to File button

  • Convention selection (Position Vector / Coordinate Frame)

Important

Import and Export are available for 3D similarity models only (Bursa-Wolf, Molodensky-Badekas) when using PROJ, WKT, TRF, or EPSG formats. These formats carry 7-parameter Helmert parameters which are specific to 3D datum transformations. For 2D models and 3D Affine, only XML and CSV are available.

2.4.1.6.6. Rotation Conventions

When importing or exporting 7-parameter transformations, the rotation convention matters. There are two conventions in use worldwide:

Position Vector (EPSG:9606)

Also called the “IERS convention” or “Bursa-Wolf convention”. The rotation parameters describe the rotation applied to the position vector of the point. This is the convention used internally by SurveyTools.

Coordinate Frame (EPSG:9607)

Also called the “Molodensky convention”. The rotation parameters describe the rotation of the coordinate frame (axes). The signs of rx, ry, rz are opposite to Position Vector.

Warning

Using the wrong convention results in doubled rotation errors. If your transformed coordinates are wrong by approximately twice the expected rotation effect, check whether you need to flip the convention.

The Import and Export dialogs let you select which convention your external data uses. SurveyTools handles the sign conversion automatically:

  • Importing Coordinate Frame data: rotation signs are flipped to the internal Position Vector convention

  • Exporting as Coordinate Frame: rotation signs are flipped from internal Position Vector to Coordinate Frame

Common convention usage:

  • PROJ library: Position Vector (always)

  • OGC WKT: Position Vector (by convention, but check the data source)

  • Leica TRF files: Coordinate Frame (Leica default)

  • EPSG database: depends on the method code (9606 = Position Vector, 9607 = Coordinate Frame)

2.4.1.6.7. EPSG Database Lookup

SurveyTools includes a built-in SQLite database of common geodetic transformations from the EPSG registry. This allows you to load standard transformation parameters without manually typing values.

How to use:

  1. Select a 3D model (e.g., “Bursa-Wolf 7-param”) from the model dropdown

  2. Click Import Params

  3. Select EPSG from the Format dropdown

  4. Type the EPSG transformation code in the text area (e.g., 1272 for GGRS87 to WGS 84)

  5. Click Parse

  6. The parameters appear in the preview grid

  7. Click OK to load them into the transformation tool

The lookup first searches the local database. If the code is not found locally, SurveyTools attempts an online lookup via the epsg.io web service (requires internet connection).

Note

The EPSG code refers to the transformation operation, not the CRS (coordinate reference system). For example, GGRS87 has CRS code 4121, but the transformation “GGRS87 to WGS 84” has operation code 1272. You need the operation code.

2.4.1.6.7.1. Example: Greek GGRS87 to WGS 84

The Greek Geodetic Reference System 1987 (GGRS87, EPSG:4121) is related to WGS 84 through a 3-parameter geocentric translation (EPSG operation 1272):

  • Tx = 199.87 m

  • Ty = 74.79 m

  • Tz = 246.62 m

  • Rx = Ry = Rz = 0 (no rotation)

  • ds = 0 (no scale difference)

To use this in SurveyTools:

  1. Select Bursa-Wolf 7-param model

  2. Click Import Params > Format: EPSG > type 1272 > Parse > OK

  3. The parameters are loaded automatically

  4. Switch to Transform Points tab

  5. Enter GGRS87 coordinates (e.g., from a total station survey):

    • The source coordinates should be geocentric (X, Y, Z), not projected (Easting, Northing)

    • To convert GGRS87 geographic coordinates (latitude/longitude) to geocentric, use a separate geodetic calculator

  6. Click Transform to get WGS 84 geocentric coordinates

Alternative: Import via PROJ string

If you have the PROJ definition for GGRS87:

+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=199.87,74.79,246.62,0,0,0,0 +units=m +no_defs

You can paste this entire string in the Import dialog with Format set to PROJ or Auto-detect. SurveyTools extracts the +towgs84= parameters automatically.

Alternative: Import via WKT

From a .prj file or GIS metadata:

TOWGS84[199.87,74.79,246.62,0,0,0,0]

Paste this in the Import dialog with Format set to WKT or Auto-detect.

2.4.1.6.7.2. Example: Austrian MGI to WGS 84

The Austrian datum MGI (Militargeographisches Institut, EPSG:4312) uses a full 7-parameter transformation with non-zero rotations (EPSG operation 1618, Coordinate Frame convention):

  • Tx = 577.326 m, Ty = 90.129 m, Tz = 463.919 m

  • Rx = 5.137”, Ry = 1.474”, Rz = 5.297” (arc-seconds)

  • ds = 2.4232 ppm

This transformation uses Coordinate Frame convention (EPSG:9607).

To import via EPSG:

  1. Select Bursa-Wolf 7-param > Import Params > Format: EPSG > type 1618 > Parse > OK

  2. SurveyTools automatically handles the convention conversion

To import via PROJ (if you have the string from another GIS):

  1. Import Params > Format: PROJ

  2. Paste: +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232

  3. Set Convention to Coordinate Frame (since PROJ uses Position Vector, but if the source gave you Coordinate Frame values, select accordingly)

  4. Click Parse > OK

2.4.1.6.8. Version Label

The main dashboard now displays the application version read from the executable’s embedded version info, rather than a hardcoded string. The version updates automatically with each build.

2.4.1.7. Practical Guidelines

2.4.1.7.1. Choosing the Right Model

  1. Start with the simplest model that fits your data (Helmert 2D or Bursa-Wolf 3D).

  2. Examine the residuals. If they show systematic spatial patterns, upgrade to Affine or Polynomial.

  3. Apply the principle of parsimony: use the fewest parameters that adequately fit the data.

  4. Monitor sigma_0^2: values much greater than 1 suggest model inadequacy or undetected outliers.

2.4.1.7.2. Control Point Distribution

  • Distribute points evenly across the project area. Points clustered in one corner provide poor geometric strength.

  • For 3D models, include points at different elevations (non-coplanar).

  • For polynomial models, ensure points span the full extent of the area — never extrapolate.

  • Use more points than the minimum for redundancy and quality control.

2.4.1.7.3. Outlier Detection

  • After calculating, check the Residuals tab for highlighted rows (magnitude > 3*RMS).

  • Toggle suspected outliers and recalculate. Compare the new RMS with the old.

  • Remove only one outlier at a time, then recalculate — removing one outlier can change the residual pattern of others.

  • If many points show large residuals, the problem may be the model choice rather than data quality.

2.4.1.8. Mathematical Background

2.4.1.8.1. Least Squares Method

All transformation models are solved using the method of least squares via normal equations. Given an overdetermined system A*x = b + v (more observations than unknowns), the solution minimizes the sum of squared residuals v'*v:

Normal equations:   N = A' * A
                    u = A' * b
Solution:           x = N^(-1) * u
Residuals:          v = A * x - b
Variance factor:    sigma_0^2 = v'*v / (n_obs - n_params)
Covariance matrix:  C_xx = sigma_0^2 * N^(-1)

The design matrix A contains partial derivatives of the model equations with respect to the unknown parameters. Each transformation model constructs its own A matrix based on its mathematical model. The shared least-squares engine (SolveLeastSquares in transsolvers.pas) handles the matrix operations using the ALGLIB library.

2.4.1.8.2. References

  • Ghilani, C.D. (2017). Adjustment Computations: Spatial Data Analysis, 6th ed., Wiley.

  • Mikhail, E.M. & Ackermann, F. (1976). Observations and Least Squares, IEP-Dun-Donnelley.

  • Helmert, F.R. (1880). Die mathematischen und physikalischen Theorieen der hoeheren Geodaesie, Teubner.

  • Bursa, M. (1962). “The theory of the determination of the non-parallelism of the minor axis of the reference ellipsoid.” Studia Geophysica et Geodaetica, 6, 28-32.

  • Wolf, H. (1963). “Geometric connection and re-orientation of three-dimensional triangulation nets.” Bulletin Geodesique, 68, 165-169.

  • Badekas, J. (1969). “Investigations Related to the Establishment of a World Geodetic System.” Report No. 124, Ohio State University.

  • Molodensky, M.S. et al. (1962). Methods for Study of the External Gravitational Field and Figure of the Earth, Israel Program for Scientific Translations.

  • Deakin, R.E. (2006). “A Note on the Bursa-Wolf and Molodensky-Badekas Transformations”, RMIT University.

  • IERS Conventions (2010), Chapter 4: Terrestrial Reference Systems and Frames.

For the complete list of built-in EPSG transformations, see Appendix: Built-in EPSG Transformation Database.