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
Open the Transformations tool from the Calculations category.
Select a transformation model from the dropdown (e.g., “Helmert 2D”).
Enter or import source system points in the left grid.
Enter or import target system points in the right grid.
Click Calculate to compute parameters.
Review residuals and statistics. Toggle outliers if needed.
Switch to the Transform Points tab.
Import or enter new points to transform.
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:
File Selection: Browse for a file. The wizard auto-detects the delimiter (for text files) and whether the first row contains headers.
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”).
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. TheConventionattribute (PositionVectororCoordinateFrame) records the rotation sign convention used. Default isPositionVector.<Model>— the transformation model name (must match a registered solver name exactly).<Dimension>—2Dor3D.<ParamCount>— number of<Param>elements.<Param>— one per parameter, with attributesName,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 attributesID,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.3. Print Report
Click Print Report (next to the Calculate button) to generate a formatted multi-page PDF report via the LazReport engine. The report includes:
Page 1:
Report title, model name, date, number of common points
Model equations (the mathematical formulas for the selected transformation)
Parameters table with values, standard deviations, and units
Statistics: RMS, sigma-posteriori, degrees of freedom
Covariance matrix (full matrix for models with up to 7 parameters, diagonal only for larger models)
Page 2:
Common points table with source and target coordinates and active/excluded status
Forward verification table (Source -> Target) with calculated vs known coordinates and residuals
Inverse verification table (Target -> Source) with residual summary
Residual statistics (min/max/mean) for both directions
The report is displayed in a print preview dialog with options to print or export.
Note
The Print Report button is only enabled after a successful calculation. If you toggle point active states, you must recalculate before printing.
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 applicationsWKT — The
TOWGS84[...]block from OGC Well-Known Text CRS definitionsCSV — 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:
Select a 3D model (e.g., “Bursa-Wolf 7-param”) from the model dropdown
Click Import Params
Select EPSG from the Format dropdown
Type the EPSG transformation code in the text area (e.g.,
1272for GGRS87 to WGS 84)Click Parse
The parameters appear in the preview grid
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:
Select Bursa-Wolf 7-param model
Click Import Params > Format: EPSG > type
1272> Parse > OKThe parameters are loaded automatically
Switch to Transform Points tab
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
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:
Select Bursa-Wolf 7-param > Import Params > Format: EPSG > type
1618> Parse > OKSurveyTools automatically handles the convention conversion
To import via PROJ (if you have the string from another GIS):
Import Params > Format: PROJ
Paste:
+towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232Set Convention to Coordinate Frame (since PROJ uses Position Vector, but if the source gave you Coordinate Frame values, select accordingly)
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
Start with the simplest model that fits your data (Helmert 2D or Bursa-Wolf 3D).
Examine the residuals. If they show systematic spatial patterns, upgrade to Affine or Polynomial.
Apply the principle of parsimony: use the fewest parameters that adequately fit the data.
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.