dem_stream_network — DEM hydrology op

• Datenarten: depth → image2d

• Aufruf: import fullseye as fs; fs.ledger.dem_stream_network(dem, cell_size, threshold_cells=100.0, fill=True, nodata='error') (die Implementierung direkt: import demops; demops.dem_stream_network(dem, cell_size, threshold_cells=100.0, fill=True, nodata='error'); aus dem Register: opsdem.get("dem_stream_network"))

Verwendung

Binärmaske, die Zellen, deren Abflussakkumulation einen Schwellwert überschreitet, als Gerinne ansieht.

Ablauf: mit dem_flow_accumulation(dem, cell_size, fill, nodata) für jede Zelle die akkumulierte Zellzahl bestimmen (die Zelle selbst zählt als 1), acc >= threshold_cells auf 1 setzen, alles andere auf 0. Fehlwertzellen bleiben nan.

• threshold_cells: akkumulierte Zellzahl, ab der ein Gerinne angenommen wird. Positiv und endlich (ValueError). Wer nach Fläche entscheiden will, rechnet in Fläche [m^2] / cell_size^2 um und übergibt das (dieser op akzeptiert nur Zellzahlen).

• fill=True (Default): zuerst Senken per priority-flood (dem_fill_sinks, epsilon=1e-6) auffüllen. Sonst bleibt der Fluss in Senken stehen, die Akkumulation flussabwärts fällt zu klein aus und Gerinne brechen ab.

• nodata: "error" (Default, lehnt ab, wenn nan vorhanden) / "outlet" (Fehlwert = Auslass, für Gewässer) / "barrier" (Fehlwert = Wand). Eine Option zum Füllen von Löchern mit einer Konstante gibt es nicht.

• Vertrag von dem / cell_size wie bei dem_slope (mindestens 3x3, Sentinel-Werte abgelehnt, [m]).

• Rückgabewert: (H, W) float64 mit 0 / 1 (Fehlwert ist nan). Kein bool, daher vor der Übergabe an blob_label usw. mit == 1 binarisieren.

• Aufwand: der topologische Durchlauf der Akkumulation ist eine Python-Schleife über alle Zellen.

Da es auf der D8-Fließrichtung (dem_flow_direction) beruht, sammelt sich der Fluss auf flachem Aufschüttungsland leicht an einer Stelle ―― senkt man den Schwellwert zu weit, entstehen gitterförmige Scheingerinne.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie dem_terrain_analysis

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• dem_terrain_analysis_tour — py -3.11 examples/dem_terrain_analysis_tour.py

Typkompatible Folge-Operatoren (nehmen image2d als Eingabe)

—

Gleiche Kategorie (hydrology)

dem_fill_sinks · dem_flow_direction · dem_flow_accumulation


*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.