Control pairs · Local fitting

2D Helmert Transformation Calculator

Estimate rotation, translation and optional uniform scale from paired controls. Keep independent checks separate and review residuals before transforming a point file.

Read the field guide ↓

Fit controls, reserve checks, then transform points

Equal coordinate weights · Source coordinates held fixed · No automatic point removal

Pair two control files by ID

Exact, case-sensitive IDs after trimming outer whitespace. Matched rows start as check points: choose fit points deliberately. Every unmatched point needs an exclusion reason; duplicates block acceptance.

CSV, TXT, TSV or XLSX. For a workbook, choose the worksheet before mapping columns. Formula cells must be converted to values first.

CSV, TXT, TSV or XLSX. For a workbook, choose the worksheet before mapping columns. Formula cells must be converted to values first.

Reuse a saved fit

Import a CogoKit parameter package. Its model is recalculated from the saved controls and checked before use. Current application points remain; explicitly confirm the project reference again. This never supplies a new accuracy assessment.

Paired controls: both systems on the same row

CSV, TXT, TSV or XLSX. For a workbook, choose the worksheet before mapping columns. Formula cells must be converted to values first.

Points to transform (optional)

CSV, TXT, TSV or XLSX. For a workbook, choose the worksheet before mapping columns. Formula cells must be converted to values first.

Column numbers start at 1. Control roles: fit estimates parameters; check never enters the fit; exclude retains the row and requires a written reason. Edit the role/reason in the text or source file. Separate files can use the reviewed pairing preview above.

2–1,000 control rows; up to 100,000 application points; each file ≤10 MiB. Decimal coordinates ≤12 places and magnitude ≤10¹². Two fit points provide little or no redundancy.

Keep each correspondence traceable

Original contextual images, not calibrated survey evidence.

Identify the physical control

The paired coordinates must describe the same mark in both systems.

Survey prism above a brass control mark in paving

Compare relationships before applying them

Independent checks remain separate from the controls used to estimate the fit.

Two drafting sheets showing corresponding point arrangements

Field guide

A practical guide to control-based fitting

Choose the model and control roles before interpreting a small residual.

Fit a relationship from corresponding controls

A 2D Helmert transformation calculator estimates a local relationship between two sets of planar coordinates. You supply corresponding control points, choose the model, inspect residuals, and then apply the fitted relationship to another point file. This differs from entering an already approved rotation and translation: here the parameters are estimated from the controls you select. Keep the source and target systems clearly identified throughout the calculation.

Each paired row must refer to the same physical mark in both systems. Similar names or nearby coordinates are not evidence of correspondence. A swapped pair can distort the solution for every application point. Record the coordinate reference, common horizontal unit, control revision and intended use in the reference field. The tool does not infer a projection, recognize a datum, or establish that your controls are reliable.

Prepare the control table and confirm columns

Upload a UTF-8 CSV or TXT file, or paste the records. XLSX workbooks are also accepted after you explicitly choose a worksheet; convert formula cells to values first. For text input, select comma, semicolon or tab and state whether a header is present. Map the point identifier, role, source Easting, source Northing, target Easting, target Northing and optional exclusion-reason column. Column numbers start at one; zero is allowed only for optional columns. A header is descriptive and does not override your mapping.

Roles are explicit: fit contributes to the parameter estimate, check is evaluated afterward, and exclude is retained without contributing. Excluded rows need a written reason. You may edit the role and reason in the text or original file, then calculate again. Active control IDs and source locations must be distinct, so repeating a control cannot silently increase its weight or masquerade as an independent check.

Choose similarity or fixed-scale rotation and translation

The similarity model estimates two translation components, one rotation and one uniform positive scale. It preserves angles and applies the same scale in every direction. The rigid model estimates rotation and translation while fixing scale at one. Choose rigid when a scale change is not part of the intended relationship; choose similarity only when estimating scale is justified by the task.

Both models minimize the sum of squared Easting and Northing residuals with equal coordinate weights. Source coordinates are treated as fixed for this calculation. This is ordinary least squares, not a stochastic model that assigns uncertainty to both coordinate systems. There is no robust reweighting, automatic outlier removal, reflection, axis-specific scaling or shear. A flexible model is not automatically a better description of the survey.

Read the formula before transferring parameters

The reported relationship is E2 = tE + a E1 − b N1 and N2 = tN + b E1 + a N1. The uniform scale is the length of the vector (a,b), and the rotation is atan2(b,a), expressed in degrees counterclockwise in the Easting/Northing plane. This rotation is not a north-clockwise survey azimuth. Software using Northing first or a different rotation convention may report another sign.

The implementation centers both control sets before fitting. It then applies the centered relationship, preserving coordinate differences before combining them with a large origin. JSON includes the source and target centers as well as the reported translations. Avoid copying a rounded display value into a separate workflow and expecting exactly identical coordinates. Retained decimal digits describe computation, not field precision.

Understand the minimum number and distribution of controls

Two distinct control pairs can determine a similarity transformation, but they leave no redundancy for estimating a residual standard error. The tool explicitly warns when only two fit controls are used. In a rigid fit, two controls leave only one degree of freedom and still provide limited checking. Additional well distributed controls and independent checks give you more evidence for reviewing the relationship.

Collinear controls do not automatically make a two-dimensional similarity fit unsolvable, but their spatial coverage is only a line segment. Controls concentrated in a small corner offer little evidence for behavior elsewhere. The preview classifies points against the convex hull of source fit controls. Points outside are flagged as extrapolations; points on the boundary are treated as inside within a small numerical comparison tolerance. Inside does not mean accurate or approved.

Separate fitted residuals from independent check results

Every active control reports transformed coordinates and residuals defined as transformed minus target. Positive Easting residual means the computed position is east of the supplied target. The radial residual is the length of the two residual components. Fitting controls influence the parameters, so their residuals measure agreement with the model used to estimate those parameters.

Check controls never enter the fit. Moving a check target changes its check result but leaves the estimated parameters unchanged. Keep checks separate from fitting controls instead of repeatedly moving a troublesome check into the fitting set until its error becomes small. An excluded control retains its original fields and reason in the report, but receives no transformed coordinate or residual in this version.

Use the summary statistics with their stated denominators

RMS Easting and RMS Northing are the square roots of the average squared component residuals. Planar RMS is sqrt(sum(rE squared plus rN squared) divided by the number of points). It is not divided by twice that count. Fit statistics and check statistics are reported separately, alongside the maximum radial residual for each group.

The fit also reports degrees of freedom: 2n minus four for similarity or 2n minus three for rigid. Sigma zero is sqrt(sum of squared fit residual components divided by those degrees of freedom), and is unavailable when the denominator is zero. These quantities are not confidence intervals or an automatic accuracy certification. No universal pass/fail threshold is imposed; compare results with your actual project requirements.

Work through an example you can reproduce

The synthetic example uses A(0,0), B(100,0) and C(0,100) as fit controls. Their target coordinates are A(100,−50), B(100,70) and C(−20,−50). These correspond to a counterclockwise rotation of 90 degrees, scale 1.2 and translation (100,−50). D(100,100) is reserved as a check with target (−20,70). An intentionally mismatched excluded row demonstrates how the reason is retained.

With the similarity model, an application point at (25,25) transforms to (70,−20). Its height remains unchanged. The point at (150,150) transforms to (−80,130) but is outside the fit triangle, so it is flagged for extrapolation review. Switch to the rigid model and the fit residuals increase because a scale of one cannot reproduce data constructed with scale 1.2. This is a model difference, not a parsing failure.

Apply the fit without changing height or metadata

The optional application file has its own delimiter, header and column mapping. Select ID, Easting, Northing, optional elevation and optional description. Point CSV contains those five standard fields in that order. Identifiers, descriptions and existing height text remain unchanged after the documented identifier whitespace cleanup; missing height remains empty. Extra columns and the original file are retained in JSON rather than silently presented as standard instrument fields.

Preview approval is required before downloading the point file. Editing any input invalidates the old result and export approval. A bad application row blocks the entire point export, while the valid preview rows and diagnostic report remain available. Point CSV preserves identifiers such as -001 exactly. The audit CSV protects formula-like text for spreadsheet review, so use the appropriate file for the receiving workflow.

Review limitations and keep a reproducible report

The browser processes files locally in a worker. You can cancel calculation, restore the last completed input set, restore uploaded text or clear the session. Supported limits are 1,000 control rows, 100,000 application points and 10 MiB per input file. Decimal coordinates allow up to twelve places and magnitude up to one trillion. Invalid quoting, inconsistent row widths, missing active coordinates or unsupported precision are reported without dropping source rows.

The plot shows target and transformed controls at true scale; tiny residuals may visually overlap, so use the numeric table. Full CSV and JSON reports retain every record regardless of pagination. CSV expansion is limited to 10 MiB; save JSON or reduce the batch when necessary. This tool does not reproject longitude and latitude, implement a formal datum operation, transform heights, or solve a three-dimensional seven-parameter model.

Pair separate control files and reuse a verified package

You can preview exact point-ID matches between two source files. Matched rows start as independent checks; deliberately choose fit roles. Duplicate IDs block acceptance, while unmatched records remain and require written exclusion reasons. Confirm physical correspondence before applying the pair table. Download the pairing audit to retain both original files, row numbers and decisions.

Save a parameter package after fitting. Importing it recalculates the saved control basis and verifies the complete stored model before restoring it. Your current application points remain available, but project reference and units need renewed confirmation. A package is versioned and reusable; it does not certify a different project or supply new accuracy evidence.

Frequently asked questions

Control selection, fitting assumptions and export limits.

How many control points do I need?

At least two distinct fit pairs are needed for a unique nonzero similarity relationship. Two pairs have no similarity redundancy, so use more well distributed controls and reserve independent checks when possible.

Is rigid fitting the same as four-parameter fitting?

Rigid fitting fixes scale at one and estimates only rotation and two translations. Similarity fitting also estimates one common scale. Select the model from the task, not simply the smaller residual.

Why can small residuals still hide a bad transformation?

The fitted controls influence the parameters and can contain correlated errors or mistaken correspondences. Small fitted residuals do not establish accuracy elsewhere. Inspect independent checks and the control coverage.

Can I remove a control that looks wrong?

Yes, manually change its role to exclude and record a reason. It remains in the report. The tool never chooses exclusions automatically and does not supply a universal outlier threshold.

Does this convert elevations or geographic datums?

No. Existing application heights remain unchanged, including blank values. The fit operates on planar Easting and Northing only and does not implement projection or a formal geodetic datum transformation.

Why does another program show the opposite rotation sign?

The displayed angle is counterclockwise in an Easting/Northing plane. Northing-first equations, passive frame rotations or clockwise conventions may use different signs. Compare the full equations and a known test point.