geodesy opdepth → signalimport fullseye as fs; fs.ledger.dem_geoid_height(geoid, lat_deg, lon_deg, lat0_deg, lon0_deg, d_lat_deg, d_lon_deg) (実装を直接呼ぶなら import demops; demops.dem_geoid_height(geoid, lat_deg, lon_deg, lat0_deg, lon0_deg, d_lat_deg, d_lon_deg)、台帳から引くなら opsdem.get("dem_geoid_height"))ジオイド高の格子を緯度・経度で双一次補間して N [m] を返す(signal)。
GNSS が返すのは楕円体高 h、地図と設計図が使うのは標高 H。その差が
ジオイド高 N(H = h - N)で、日本付近では概ね +30〜+40 m ある。
この op は公開されているジオイドモデルの格子(GSIGEO / EGM 系のような
等間隔グリッド)を読む側の道具で、モデルそのものは持たない —— どの版を
使ったかは呼び手の責任であり、版が変われば標高は数 cm 動く。
Args:
geoid: (H, W) のジオイド高 [m]。geoid[0, 0] が
(lat0_deg, lon0_deg)、行が増えると緯度が d_lat_deg 増え、
列が増えると経度が d_lon_deg 増える(どちらの符号でもよい)。
lat_deg / lon_deg: 引きたい点の緯度・経度 [度]。配列可。
lat0_deg / lon0_deg: 格子の原点 [度]。
d_lat_deg / d_lon_deg: 格子の刻み [度]。0 は拒否する。
Returns:
(n,) のジオイド高 [m]。
閉じた式で検査できること: N が緯度・経度の 1 次式であるような格子に
対しては、双一次補間は厳密(機械精度)。2 次の項があるときの誤差は
|∂²N| * d² / 8 で上から押さえられる。
ValueError: 格子が 2-D でない / 2x2 未満 / 非有限、刻みが 0 か非有限、 緯度が ±90 を外れる、そして格子の外の点(海域や範囲外を黙って端の値で 埋めない —— 外挿したジオイド高は測量値ではない)。
py -3.11 examples/poc_geodetic_benchmarks_real.pypy -3.11 examples/poc_geodetic_height_frames.pysignal を入力に取れる)dem_height_frame_convert · dem_height_frame_residual
geodesy)dem_geodetic_to_ecef · dem_ecef_to_geodetic · dem_geocentric_grid · dem_earth_curvature_drop · dem_cell_size_webmercator · dem_geodetic_slope · dem_height_frame_convert · 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.