surface op• Datenarten: depth → image2d
• Aufruf: import fullseye as fs; fs.ledger.dem_tpi(dem, cell_size=1.0) (die Implementierung direkt: import demops; demops.dem_tpi(dem, cell_size=1.0); aus dem Register: opsdem.get("dem_tpi"))
Topographic Position Index TPI — Differenz zwischen der Zelle selbst und dem Mittelwert ihrer 8 Nachbarn [m]. Positiv bedeutet Rücken, negativ Tal.
Formel: tpi = z - mean(z der 8 Nachbarn) (Weiss' TPI mit der minimalen 3x3-Nachbarschaft). Ränder werden durch Kopieren der Randwerte aufgefüllt. Da die Nachbarschaft fest 1 Zelle ist, ist der Maßstab fest auf 1 cell_size; um breitere Rücken/Täler zu sehen, zuerst dem vergröbern (dieser op hat kein Radius-Argument).
• dem: (H, W) [m], mindestens 3x3, reell, kein inf. Fehlwerte als nan (abgelehnt, wenn Sentinel-Werte <= -9000 ohne nan vorliegen). nan breitet sich über 3x3 aus.
• cell_size: beeinflusst das Ergebnis nicht (in die Differenz geht kein Abstand ein), wird aber angenommen, um dem Aufrufer bewusst zu machen, dass die Einheit [m] ist, und auf positiv-endlich geprüft.
• Rückgabewert: (H, W) float64 [m]. Um 0 Hangmitte, positiv konvex (Rücken, Gipfel), negativ konkav (Täler, Senken).
• Fehler: ValueError (Form, Sentinel-Werte, cell_size).
Kombiniert mit dem_roughness (RMS über dieselbe Nachbarschaft) ergibt es Merkmale zur Geländeklassifikation.
• Leitfaden zur Familie dem_terrain_analysis
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• dem_terrain_analysis_tour — py -3.11 examples/dem_terrain_analysis_tour.py
image2d als Eingabe)—
surface)dem_slope · dem_aspect · dem_curvature · dem_roughness
*Provenance: demops.py — DEM Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.