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.

../../_images/ETY1.jpg

The Measurements tab: the Aller (and Retour) raw zenith/distance readings with per-reading offsets, and the per-set averages below.

../../_images/ETY2.jpg

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
MBM4PB4-TR41.txt (first lines — the Aller run)
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
  • Point is the sighted mark (the same single point on every line of a run); an optional \NN reading suffix is accepted.

  • V (zenith angle) and Sd (slope distance) drive the computation; Hz, IH, RH and 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 → From MBM4PB4) 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:

  1. 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.

  2. 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.

  3. 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):

Quick walk-through:

  1. Import Aller → MBM4PB4-TR41.txt; Import Retour → TR41-MBM4PB4.txt.

  2. 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.

  3. Solve → DH1 −20.8333, DH2 +20.8196, misclosure −0.0137, DH −20.8265 m, implied k ≈ 0.125.

  4. Set the Aller BackSight to 1.0000 and solve again → DH −19.8265.

  5. Untick a reading with a red offset and watch the averages update; solve to refresh the solution.

  6. 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.