stream_flux_read — DRIVE scoop op

• Data kinds: any × scalar × scalar → table

• Call: 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' (to call the implementation directly, 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'; from the registry, opsdrive.get("stream_flux_read"))

Usage

Reads the flow rate [particles/s] (and the mass flow rate) from the frame sequence of the stream — the speed by PIV (median over all frame pairs of pivops.piv_cross_correlate), the particle line density λ by inverting the Boolean model on the time-averaged coverage (stream_areal_density) and integrating across the stream, and the flow rate λ v.

> The detailed description below is the original text — the summary and the headings are translated.

band_rows = 測る行の中心の列(None なら PIV の窓の行中心を全部)。各帯は band_px 行の平均。速さは流れの向き(行が増える向き)の成分を、PIV の窓の行の間で線形に補間し、列は被覆率の重みで平均する。

返り: rows、v_px(px/コマ)、v(px/s)、lam(個/px)、flux(個/s)、flux_naive(素朴な c/(πr²))、flux_mean、flux_spread(帯の間の (max − min)/平均 = 流量の連続の検査)、mass_flux(particle_mass を与えたとき)、valid_fraction(PIV の有限な窓の割合)、c_max_seen、n_crossed_est(記録の間に各帯を横切った粒の推定数 flux·T)、rel_err_poisson(1/√n、粒の数え上げの揺らぎ)、reliable(全帯で n ≥ min_crossings)。粒が少ないと流量は数え上げの揺らぎそのもの(1 帯を横切る粒が 2 個なら ±70 %)—— reliable=False で知らせる。Raises ValueError: コマが 2 未満 / 形が揃わない / PIV の有限な窓が min_valid 未満(粒が少なすぎて速さが読めない —— 壊れる場所)/ 帯が像の外 / 飽和。

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_powder_scoop_pour — py -3.11 examples/poc_powder_scoop_pour.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (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. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.