Case study 07 / 10Research

Measuring terrain with a consumer drone

Research on one flight, three rounds of experiments. Irrigation and swamp canal networks in South Sumatra run for thousands of kilometres, and conventional re-surveys are too slow and expensive to repeat. This is an honest test of what a single consumer-drone flight can measure.

At a glance

−60%vertical RMSE after adding the barometer constraint (3.59 → 1.44 m)
0.20 mfusion error for 2 m gaps, against 0.62 m for interpolation
5.32 hamosaic at 10 cm cells with 0.5 m contours
1.48 → 0.17 mmedian height bias between overlapping frames
Period
August – September 2026
Role
Designed the experiments and judged the results against survey practice; analysis run with AI coding agents on a laptop CPU
Status
Research
Links
Full research notes
Same frame, same colour scale: stereo alone leaves holes; a single photo fills them but compresses heights; fusion keeps stereo heights with full coverage.

01Problem

Irrigation and swamp canal networks in South Sumatra run for thousands of kilometres, and conventional re-surveys are too slow and expensive to repeat. How much usable terrain can one consumer-drone flight and open models give you — and where does it stop being trustworthy?

Three rounds of experiments on a single flight: 36 photos, of which 22 nadir frames with only about 46% forward overlap. Everything ran on CPU.

02What I did

  1. Dense matching and georeferencing (August). MASt3R matched all 70 candidate image pairs. A similarity fit to the drone's GNSS gave 0.93 m horizontal but 3.59 m vertical RMSE, with a bowl-shaped drift along the strips. Adding the barometer as a soft constraint cut vertical RMSE to 1.44 m (−60%).
  2. One photo versus stereo (September). Monocular depth from MoGe-3 draws objects sharply, and on open ground it stayed within 0.27 m RMSE of calibrated stereo — but it got height differences badly wrong: an embankment 1.46 m above the swamp water came out at 0.41 m. Verdict: a sketch of shape, not elevations. (To run the model's refiner without an NVIDIA GPU, three sparse 3D operations were rewritten in plain PyTorch and checked against the dense equivalent.)
  3. Fusing both. Stereo is kept wherever it exists; MoGe-3, calibrated to the surrounding stereo, fills the gaps. On one frame the surface became 100% complete and the embankment height matched stereo (1.49 m). In hold-out tests — hiding blocks of stereo and filling them — the fused error was 0.20 / 0.38 / 0.45 m for 2 / 6 / 15 m gaps, against 0.62 / 0.96 / 0.81 m for interpolation. Applied to all 22 frames: a 5.32 ha mosaic at 10 cm cells with 0.5 m contours, and the median height bias between overlapping frames on flat ground reduced from 1.48 m to 0.17 m.

03How it works

Hold-out error by gap sizeRMSE in metres. 2 m gaps: model alone 0.80, interpolation 0.62, fusion 0.20. 6 m gaps: 0.81, 0.96, 0.38. 15 m gaps: 0.64, 0.81, 0.45.0.000.250.500.751.000.800.620.202 m gap0.810.960.386 m gap0.640.810.4515 m gapRMSE (m)
MoGe-3 alonestereo interpolationfusion
Hold-out RMSE by gap size
Hidden gapModel aloneStereo interpolationFusionFusion, open ground
2 m0.80 m0.62 m0.20 m0.05 m
6 m0.81 m0.96 m0.38 m0.08 m
15 m0.64 m0.81 m0.45 m0.20 m
Hold-out test on one frame: blocks of stereo were hidden and filled by each method; error is RMSE against the hidden stereo.
Low-cost integrated survey conceptFour chained components: DIY RTK GNSS for control, drone photogrammetry, a small survey boat with echosounder, and discharge from drone video.01DIY RTK GNSScentimetre control pointsNTRIP correctionsphone as controllercontrol02Drone photogrammetryGCPs from RTK80 / 70 overlapsurface modelterrain03Survey boat (USV)echosounder + RTKbed elevationscross-sectionswet area04Discharge by LSPIVsurface velocity fromdrone videoQ = A × VStatus: concept and discussion draft. The missing piece in the drone tests is component 01.
Swipe sideways to see the whole diagram. Where the drone work fits: the four-part low-cost survey concept. Ground control from component 01 is what the current flight lacks.

04Limits

What the results are not. No ground control points and no RTK were used. Seams between frames still show at about ±0.5 m, the large-scale shape of the mosaic is unverified, and the contours are indicative (about ±1–1.5 m). The limits now sit in camera orientation — a rolling shutter and 34–46% overlap — so the next step is a re-flight with at least 75% forward and 65% side overlap and five or more ground control points. That is exactly the missing component of the low-cost survey concept on the research page (DIY RTK for ground control).

05Stack

  • Python
  • PyTorch
  • MASt3R
  • MoGe-3
  • OpenCV (SIFT, RANSAC, SGBM)
  • NumPy / SciPy
  • pyproj
  • shapely
  • ezdxf
Next case studyGeousOffline field map for Android