geodesy op• Data kinds: signal × signal → signal
• Call: import fullseye as fs; fs.ledger.dem_height_frame_convert(height_m, geoid_height_m, frm='ellipsoidal', to='orthometric') (to call the implementation directly, import demops; demops.dem_height_frame_convert(height_m, geoid_height_m, frm='ellipsoidal', to='orthometric'); from the registry, opsdem.get("dem_height_frame_convert"))
Moves the height reference: ellipsoidal height h ↔ orthometric height H (H = h - N). signal.
2 different things circulate under the same word "height", and both end up on maps without raising an exception. This op forces you to write from which to which you are converting —— there are defaults, but frm and to remain in the code, not in the docstring.
Args:
height_m: height [m]. Arrays allowed.
geoid_height_m: geoid height N [m] at the same points —— the value looked up with dem_geoid_height.
Scalar or array.
frm / to: "ellipsoidal" (ellipsoidal height) or "orthometric" (orthometric height).
Returns:
(n,) converted heights [m]. If frm == to the values do not change.
What can be checked with a closed formula: H = h - N is the definition itself, so the ground truth comes from a subtraction. The round-trip (h→H→h) error is measured at 5e-13 m or less (5,000 points, height −100 to 4000 m, N ±100 m). Not bit-identical —— (h - N) + N can move by 1 ulp through rounding, and in measurement 273 of 5,000 points did so. That is why "it returns to the original after a round trip" is not written as an equality.
ValueError: unknown frame name, length mismatch, non-finite.
• 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
signal 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_residual
*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.