dem_height_frame_convert — DEM 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"))

Usage

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.

Detailed usage guide

• dem_terrain_analysis family guide

References (sample data, literature)

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

Runnable examples (verified samples that actually call this op)

• poc_geodetic_benchmarks_real — py -3.11 examples/poc_geodetic_benchmarks_real.py

Ops the type connects to (they accept signal as input)

dem_height_frame_residual

Same category (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.