surface op• データ種: depth → image2d
• 呼び出し: import fullseye as fs; fs.ledger.dem_tpi(dem, cell_size=1.0) (実装を直接呼ぶなら import demops; demops.dem_tpi(dem, cell_size=1.0)、台帳から引くなら opsdem.get("dem_tpi"))
地形位置指数 TPI —— 自セルと 8 近傍平均の差 [m]。正が尾根、負が谷。
式: `tpi = z - mean(8 近傍の z)`(Weiss の TPI を 3x3 の最小近傍で取ったもの)。
縁は端の値を複製して埋める。近傍が 1 セル固定なので、**スケールは
`cell_size` 1 つぶんに固定**で、より広い尾根/谷を見たいときは先に
`dem` を粗くする(この op に半径の引数は無い)。
• `dem: (H, W) [m]、3x3 以上、実数、inf 不可。欠測は nan`(番兵値
`<= -9000 が nan 無しで入っていれば拒否)。nan` は 3x3 に伝播する。
• `cell_size`: 結果には影響しない(差分に距離は入らない)が、単位が [m] である
ことを呼び出し側に意識させるため受け取り、正の有限値かを検査する。
• 返り値: `(H, W)` float64 [m]。0 付近が斜面の途中、正が凸(尾根・頂)、
負が凹(谷・窪地)。
• 失敗: `ValueError(形、番兵値、cell_size`)。
`dem_roughness`(同じ近傍の RMS)と組み合わせると地形分類の特徴になる。
• dem_terrain_analysis ファミリ ガイド
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• dem_terrain_analysis_tour — py -3.11 examples/dem_terrain_analysis_tour.py
image2d を入力に取れる)—
surface)dem_slope · dem_aspect · dem_curvature · dem_roughness
*Provenance: demops.py — DEM operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.