surface op• データ種: depth → image2d
• 呼び出し: import fullseye as fs; fs.ledger.dem_slope(dem, cell_size, method='horn', units='degrees') (実装を直接呼ぶなら import demops; demops.dem_slope(dem, cell_size, method='horn', units='degrees')、台帳から引くなら opsdem.get("dem_slope"))
傾斜角。`units は "degrees" / "radians" / "percent"`。
平面なら閉形式 `atan(|grad|)` と一致する(実測 1e-13 以下)。
手順: 3x3 近傍から `dz/dx(東向き)と dz/dy`(北向き = 行が減る向き)を
取り、`g = hypot(dz/dx, dz/dy)。"degrees" は atan(g)` を度で、
`"radians" はラジアン、"percent" は 100 g`(45 度 = 100 %)。
縁は端の値を複製して埋める(`pad mode="edge"`)ので、外周 1 セルは内側より
緩めに出る。
• `dem: (H, W) の標高 [m]、3x3 以上、実数、inf 不可。欠測は nan` で
渡す ―― `-9999 のような番兵値がそのまま入っている(<= -9000` があり
`nan が無い)と拒否する。nan` は 3x3 の範囲に伝播する。
• `cell_size`: セル辺長 [m]、正の有限値。bool / 文字列は拒否。緯度経度格子は
先に `dem_geodetic_slope` 側を使う。
• `method: "horn"(Horn 1981 の 3x3 重み付き差分、既定)/ "central"`
(Zevenbergen–Thorne の中央差分)。
• 返り値: `(H, W) float64。degrees は [0, 90)`。
• 失敗はすべて `ValueError(形・番兵値・cell_size`・選択肢)。
`dem_aspect と対で使う。dem_hillshade` はこの 2 つから陰影を作る。
• dem_terrain_analysis ファミリ ガイド
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• dem_geodesy_tour — py -3.11 examples/dem_geodesy_tour.py
• poc_crop_phenotyping — py -3.11 examples/poc_crop_phenotyping.py
• poc_dem_terrain — py -3.11 examples/poc_dem_terrain.py
• poc_geodetic_height_frames — py -3.11 examples/poc_geodetic_height_frames.py
• poc_multibeam_bathymetry — py -3.11 examples/poc_multibeam_bathymetry.py
• poc_stockpile_volume — py -3.11 examples/poc_stockpile_volume.py
image2d を入力に取れる)—
surface)dem_aspect · dem_curvature · dem_roughness · dem_tpi
*Provenance: demops.py — DEM operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.