2.2.2. Geometric Leveling Adjustment
2.2.2.1. Overview
The Geometric Leveling Adjustment tool computes the height difference between two marks by reciprocal (simultaneous) trigonometric leveling: the line is measured from both ends — an Aller run (A→B) and a Retour run (B→A) — each consisting of repeated zenith-angle (V) and slope-distance (Sd) readings in several sets and both telescope faces.
The Measurements tab: the Aller (and Retour) raw zenith/distance readings with per-reading offsets, and the per-set averages below.
The Solution tab: the Aller/Retour summary, the two height components and their misclosure, the adjusted height difference DH, and the implied refraction coefficient k.
Measuring from both ends is what makes the method precise: the mean of the two one-way height components cancels earth curvature and atmospheric refraction without needing to know the refraction coefficient, and the residual disagreement between the two directions (the misclosure) is a built-in quality check.
The computation per run mirrors the Special Monitoring Adjustment averaging: readings → face averages → set averages → one overall V(Av) and Sd(Av). The solution is then:
DH1 = Sd_aller · cos(V_aller) (one-way component A→B)
DH2 = Sd_retour · cos(V_retour) (one-way component B→A)
DH = Aller BackSight + (DH1 − DH2)/2 − Retour BackSight
with DH1 + DH2 reported as the misclosure (≈ 0 for a perfect
reciprocal pair; its residual reflects curvature/refraction, which cancel
in the mean).
Note
The instrument and reflector heights recorded in the data files do not enter the solution — the manual BackSight value of each run carries any height transfer to the actual marks (default 0). This matches the legacy Survey 2006 tool.
All angles are in gradians, distances and heights in meters.
2.2.2.2. Opening the Tool
Open it from the sidebar under Calculations > Monitoring and select Geometric Leveling Adjustment from the calculation list.
The toolbar has Open / Save / Import Aller / Import Retour / Solve / Export, and three tabs: Measurements, Solution, Parameters.
2.2.2.3. Importing Data
Each run is imported separately: Import Aller for the A→B file, Import Retour for the B→A file. Both buttons accept two formats:
2.2.2.3.1. TXT format
One reading per line, 10 comma-separated fields:
Point,Hz,V,Sd,IH,RH,month,day,hour,minute
TR41,357.54551,104.19536,316.3221,1.5880,0.2380,7, 19, 8, 9
TR41,357.54589,104.19621,316.3220,1.5880,0.2380,7, 19, 8, 9
TR41,357.54541,104.19570,316.3220,1.5880,0.2380,7, 19, 8, 11
Pointis the sighted mark (the same single point on every line of a run); an optional\NNreading suffix is accepted.V(zenith angle) andSd(slope distance) drive the computation;Hz,IH,RHand the time fields are stored for reference.An optional leading record index + TAB is accepted and stripped; a malformed line aborts the import naming the line number.
2.2.2.3.2. GSI format
Leica GSI8/GSI16 files with the same content (word indices 11 point,
21 Hz, 22 V, 31 Sd, 88 instrument height). Point names may be plain
(TR41) or carry the Point\NN suffix.
Auto-detection (both formats):
Face: V < 200 gon → Face I, otherwise Face II.
Set: each new Face-I block of readings opens a new set (the runs alternate Face I / Face II blocks — typically 10 readings each).
The run’s From point defaults from the file name’s first token (
MBM4PB4-TR41.txt→ FromMBM4PB4) and can be edited.
Note
Re-importing over a run that already contains readings asks for confirmation first.
2.2.2.4. The Tabs
2.2.2.4.1. Measurements
Two sub-tabs, Aller and Retour, each with:
From (occupied mark) and BackSight (manual height offset, default 0) — see the Solution formula above.
Raw readings grid: Set / Face / No / V / Off(V) / Sd / Off(Sd), with a bold face-average row closing each group. The Active checkbox excludes a reading from all averages and recalculates everything immediately; inactive readings show no offsets.
Set averages grid: per set — V(I), V(II), V(Av), Off(V), Sd(I), Sd(II), Sd(Av), Off(Sd), where the offsets are the deviation of the set average from the run’s overall average; the bold
avg(n)row holds the overall values (its Off columns show the M.Sdev of the set averages).
Offsets are colour-coded against the Parameters alarms: green at or below the level, red above it.
2.2.2.4.2. Solution
Press Solve (both runs must be imported). The Solution tab shows the Aller and Retour blocks (From/To points, BackSight, overall V and Sd), then:
DH1: -20.8333 DH1 + DH2 (misclosure): -0.0137 DH2: 20.8196
DH = Aller BackSight + (DH1 - DH2)/2 - Retour BackSight
DH: -20.8265 m
Implied refraction k: 0.125 Mean horizontal distance: 315.6357 m
Misclosure (DH1 + DH2) — the reciprocal check; a large value means the two runs disagree beyond what curvature/refraction explains.
Implied refraction k — the refraction coefficient that would explain the misclosure exactly (typical atmospheric values are around 0.13); a wildly different value flags a measurement problem.
2.2.2.4.2.1. How the refraction coefficient k is handled
k is never an input to the computation — the reciprocal method makes it cancel out. The value shown in the Solution tab is derived afterwards from the misclosure, purely as a quality indicator:
The one-way components carry no correction. The classic single-direction trigonometric leveling formula is:
dh = Sd·cos(V) + (1 − k)·d²/(2R) (CR = curvature & refraction term)
The tool deliberately evaluates DH1 and DH2 without the CR term (equivalent to k = 1), so each one-way value still contains the full curvature/refraction error.
The mean cancels curvature and refraction. Both sights cover the same line under (nearly) the same atmosphere, so both carry approximately the same CR — and because the two runs measure the same height difference with opposite sign, CR drops out of the half difference:
DH = (DH1 − DH2)/2 (CR cancelled — no k needed)
This is exactly why the field procedure measures Aller and Retour: the height difference comes out refraction-free without ever knowing the actual k.
The misclosure reveals the k that was actually in the atmosphere. With perfect cancellation DH1 + DH2 would be 0; the leftover is approximately −2·CR, so the tool back-solves:
DH1 + DH2 ≈ −2·(1 − k)·d²/(2R) ⇒ implied k = 1 + R·(DH1 + DH2)/d²
with d = mean horizontal distance (mean of Sd·sin(V)) and R = 6 371 000 m.
Note
Reading the implied k in practice. It never changes DH — it is a diagnostic. A value near the textbook atmospheric coefficient of ~0.13 (the ETY sample line gives 0.125) means the two runs are consistent and the residual disagreement is ordinary refraction. A value far off (negative, or above ~0.5) means the runs disagree more than the atmosphere can explain: check for a wrong file pairing, bad readings, or runs measured hours apart — the cancellation in step 2 assumes symmetric refraction, so Aller and Retour should be observed close together in time.
The solution is cleared automatically whenever the inputs change (readings toggled, runs re-imported, a BackSight edited) — solve again to refresh it.
2.2.2.4.3. Parameters
Alarm levels for the offset colouring: Angles (gon) for Off(V) and Distance (m) for Off(Sd), defaults 0.001. Saved with the project.
2.2.2.5. Project Files
Save stores the whole line in a .monlev project file (XML): both
runs with their From names, BackSights and raw readings (including Active
flags), plus the alarm levels. Open restores it and recomputes the
averages.
2.2.2.6. Exporting
Export… (after a solve) offers:
Excel workbook (XLSX) — sheets Raw Aller and Raw Retour (readings with offsets and face-average rows), Averages (both runs’ set averages and overall rows) and Solution (all numbers including backsights, implied k and horizontal distance).
PDF report — A4 report with the line info, per-run set-average tables and the solution block.
2.2.2.7. Sample Files
The complete ETY test line MBM4PB4 ↔ TR41 (3 sets × 2 faces × ~10 readings per run; the TXT and GSI files contain the same campaign):
MBM4PB4-TR41.txt— Aller run, TXTTR41-MBM4PB4.txt— Retour run, TXTMBM4PB4-TR41.gsi— Aller run, GSITR41-MBM4PB4.gsi— Retour run, GSI
Quick walk-through:
Import Aller →
MBM4PB4-TR41.txt; Import Retour →TR41-MBM4PB4.txt.Check the Aller set averages: V(Av) 104.19603 / 104.19608 / 104.19555, overall 104.19588 with Sd(Av) 316.3220; Retour overall 95.80688 / 316.3221.
Solve → DH1 −20.8333, DH2 +20.8196, misclosure −0.0137, DH −20.8265 m, implied k ≈ 0.125.
Set the Aller BackSight to 1.0000 and solve again → DH −19.8265.
Untick a reading with a red offset and watch the averages update; solve to refresh the solution.
Save as
.monlev, reopen, and export the workbook and the PDF.
2.2.2.8. Troubleshooting
Symptom |
Cause / solution |
|---|---|
“The Aller/Retour run has no active readings - import both runs first.” |
Solve needs both runs; import the missing one (or re-activate its readings). |
“The … run observes N different points …” |
A leveling run must sight exactly one mark; the file contains readings to several points — split it per line. |
“expected 10 comma-separated fields” on import |
The line does not match the TXT layout; for raw station files with 15 fields use the Special Monitoring Adjustment tool instead. |
“Run Solve first” when exporting |
The exports include the solution — solve before exporting. |
Large misclosure or implausible implied k |
The two runs disagree: check for a wrong file pairing (both runs of the same line?), deactivated/bad readings, or unstable refraction conditions between the runs. |