scoop op• Datenarten: any × scalar × scalar → table
• Aufruf: import fullseye as fs; fs.ledger.stream_flux_read(frames, dt: 'float', radius_px: 'float', *, band_rows=None, band_px: 'int' = 9, window: 'int' = 32, particle_mass: 'float | None' = None, c_max: 'float' = 0.95, min_valid: 'float' = 0.3, min_crossings: 'float' = 30.0) -> 'dict' (die Implementierung direkt: import scoop; scoop.stream_flux_read(frames, dt: 'float', radius_px: 'float', *, band_rows=None, band_px: 'int' = 9, window: 'int' = 32, particle_mass: 'float | None' = None, c_max: 'float' = 0.95, min_valid: 'float' = 0.3, min_crossings: 'float' = 30.0) -> 'dict'; aus dem Register: opsdrive.get("stream_flux_read"))
Liest den Strom [Teilchen/s] (und den Massenstrom) aus der Frame-Folge des Stroms — die Geschwindigkeit per PIV (Median über alle Frame-Paare von pivops.piv_cross_correlate), die Teilchen-Liniendichte λ durch Umkehrung des Booleschen Modells auf dem zeitgemittelten Bedeckungsgrad (stream_areal_density) mit Integration quer zum Strom, und den Strom λ v.
band_rows = Mittelzeilen der zu messenden Bänder (None = alle Zeilenmitten der PIV-Fenster). Jedes Band ist der Mittelwert von band_px Zeilen. Die Geschwindigkeit ist die Komponente in Strömungs- richtung (zunehmende Zeile), linear zwischen den Zeilen der PIV-Fenster interpoliert; die Spalten werden mit Bedeckungsgewichten gemittelt.
Rückgabe: rows, v_px (px/Frame), v (px/s), lam (Körner/px), flux (Körner/s), flux_naive (naives c/(πr²)), flux_mean, flux_spread ((max − min)/Mittel über die Bänder = Kontinuitätsprüfung des Flusses), mass_flux (wenn particle_mass angegeben), valid_fraction (Anteil endlicher PIV-Fenster), c_max_seen, n_crossed_est (geschätzte Zahl der Körner, die jedes Band während der Aufnahme kreuzen, flux·T), rel_err_poisson (1/√n, Zählschwankung der Körner), reliable (n ≥ min_crossings in allen Bändern). Bei wenigen Körnern ist der Fluss reine Zählschwankung (kreuzen 2 Körner ein Band, ±70 %) —— gemeldet über reliable=False. Raises ValueError: weniger als 2 Frames / Formen passen nicht / weniger endliche PIV-Fenster als min_valid (zu wenige Körner, um die Geschwindigkeit zu lesen —— die Bruchstelle) / Band außerhalb des Bildes / gesättigt.
• 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.
• poc_powder_scoop_pour — py -3.11 examples/poc_powder_scoop_pour.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
scoop)spoon_bowl_volume · scoop_synth_side · revolution_volume_side · two_view_volume · scoop_volume_read · scoop_count · scoop_image_limit · tilt_wedge_retained
*Provenance: scoop.py — DRIVE 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.