geodesy op• データ種: なし → points(引数だけで決まる op —— 画像やデータの入力を取らない)
• 呼び出し: import fullseye as fs; fs.ledger.dem_datum_shift_3param(lat_deg, lon_deg, h_m, dx_m, dy_m, dz_m, a_from_m, f_from, a_to_m, f_to) (実装を直接呼ぶなら import demops; demops.dem_datum_shift_3param(lat_deg, lon_deg, h_m, dx_m, dy_m, dz_m, a_from_m, f_from, a_to_m, f_to)、台帳から引くなら opsdem.get("dem_datum_shift_3param"))
測地成果(datum)の乗り換え —— 地心 3 パラメータの平行移動(`points`)。
同じ「北緯 35 度 41 分」でも、旧日本測地系と世界測地系では地上で数百メートル
離れた点を指す。この op はその乗り換えを、地心直交座標での平行移動
(`Molodensky-Badekas` の回転・縮尺なしの場合)として行う::
ECEF(a_from, f_from) + (dx, dy, dz) -> 測地座標(a_to, f_to)
★パラメータに既定値を置かない。どの成果からどの成果へ、どの平行移動量で
移すのかは国・地域・版で違い、黙って仮定すると「例外は出ないが数百メートル
ずれた座標」が出る —— それがこの op の存在理由なので、呼び手に必ず書かせる。
Args:
lat_deg / lon_deg: 元の成果での緯度・経度 [度]。配列可。
h_m: 元の成果での楕円体高 [m]。
dx_m / dy_m / dz_m: 地心の平行移動量 [m] (元 → 先)。
a_from_m / f_from: 元の楕円体の長半径 [m] と扁平率。
a_to_m / f_to: 先の楕円体の長半径 [m] と扁平率。
Returns:
`(n, 3) の (緯度[度], 経度[度], 楕円体高[m])`。
閉じた式で検査できること: 平行移動 0 かつ同じ楕円体なら恒等変換
(往復の床は `dem_ecef_to_geodetic` と同じ)。平行移動だけを与えたときの
地上の移動量は、その点の ECEF 基底で分解した成分と一致する。
ValueError: 非有限、緯度が ±90 を外れる、長半径が非正、扁平率が [0, 1) を外れる。
• dem_terrain_analysis ファミリ ガイド
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• poc_geodetic_benchmarks_real — py -3.11 examples/poc_geodetic_benchmarks_real.py
• poc_geodetic_height_frames — py -3.11 examples/poc_geodetic_height_frames.py
points を入力に取れる)dem_ecef_to_geodetic · dem_geodetic_from_enu
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. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.