geodesy opsignal × signal → signalimport fullseye as fs; fs.ledger.dem_height_frame_convert(height_m, geoid_height_m, frm='ellipsoidal', to='orthometric') (実装を直接呼ぶなら import demops; demops.dem_height_frame_convert(height_m, geoid_height_m, frm='ellipsoidal', to='orthometric')、台帳から引くなら opsdem.get("dem_height_frame_convert"))高さの基準を移す: 楕円体高 h ↔ 標高 H(H = h - N)。signal。
同じ「高さ」という語で 2 つの別物が流通していて、どちらも例外を出さずに
地図に載る。この op はどちらからどちらへ移すのかを必ず書かせる ——
既定はあるが、frm と to は docstring でなくコードに残る。
Args:
height_m: 高さ [m]。配列可。
geoid_height_m: 同じ点のジオイド高 N [m] —— :func:dem_geoid_height で引いた値。
スカラでも配列でもよい。
frm / to: "ellipsoidal"(楕円体高)か "orthometric"(標高)。
Returns:
(n,) の変換後の高さ [m]。frm == to なら値は変わらない。
閉じた式で検査できること: H = h - N は定義そのものなので真値は引き算で出る。
往復(h→H→h)の誤差は実測で 5e-13 m 以下(5,000 点、高さ −100〜4000 m・
N ±100 m)。ビット一致ではない —— (h - N) + N は丸めで 1 ulp 動くことが
あり、実測では 5,000 点中 273 点がそうなった。「往復で元に戻る」を等号で
書かないのはそのため。
ValueError: 未知の基準名、長さの食い違い、非有限。
py -3.11 examples/poc_geodetic_benchmarks_real.pysignal を入力に取れる)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. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.