geodesy op• Data kinds: signal × signal × signal → table
• Call: import fullseye as fs; fs.ledger.dem_height_frame_residual(h_ellipsoidal_m, h_orthometric_m, geoid_height_m, tol_m=0.1) (to call the implementation directly, import demops; demops.dem_height_frame_residual(h_ellipsoidal_m, h_orthometric_m, geoid_height_m, tol_m=0.1); from the registry, opsdem.get("dem_height_frame_residual"))
Residual h - H - N — a detector that does not let a mix-up of heights stay silent (table).
Ellipsoidal height, orthometric height and geoid height are linked by 1 identity (h = H + N). Measuring its residual at points where all 3 are available shows numerically that one of them was made with a different datum, a different model or a different version. Between survey results the residual stays at the cm level; if ellipsoidal height is used directly as orthometric height, the residual is pinned to -N (−30 to −40 m around Japan).
Args:
h_ellipsoidal_m: ellipsoidal height [m] (as returned by GNSS). Arrays allowed.
h_orthometric_m: orthometric height of the same points [m] (map, levelling).
geoid_height_m: geoid height of the same points [m].
tol_m: threshold [m] for regarding values as "consistent". Default 0.10 m.
Returns:
{"residual_m": (n,), "rms_m", "max_abs_m", "median_m", "n", "n_over_tol", "tol_m", "fraction_over_tol"}.
Checkable by closed form: for 3-tuples built according to the identity the residual is 0 (measured rms 1.2e-14 m; not exactly 0 only because of rounding). If ellipsoidal heights are put directly into the orthometric-height column, the residual is pinned to −N —— the size of the mix-up shows up as is.
ValueError: length mismatch, non-finite values, negative *tol_m*.
• dem_terrain_analysis family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_geodetic_benchmarks_real — py -3.11 examples/poc_geodetic_benchmarks_real.py
table as input)—
geodesy)dem_geodetic_to_ecef · dem_ecef_to_geodetic · dem_geocentric_grid · dem_earth_curvature_drop · dem_cell_size_webmercator · dem_geodetic_slope · dem_geoid_height · dem_height_frame_convert
*Provenance: demops.py — DEM operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.