assess op• Data kinds: flow2d × flow2d → table
• Call: import fullseye as fs; fs.ledger.piv_error_stats(flow, truth, trim=1) (to call the implementation directly, import pivops; pivops.piv_error_stats(flow, truth, trim=1); from the registry, opspiv.get("piv_error_stats"))
Breakdown of the difference from the ground truth. Returns bias and scatter separately.
Reporting only one of them lets an implementation with a systematic offset pass as "error 0.3 px". Bias (mean error) and scatter (standard deviation) point to different causes.
Args:
flow: estimate (2, h, w).
truth: ground truth on the same grid (2, h, w) (the return of piv_sample_at_windows).
trim: number of grid cells removed from the outer edge. Correlation drops when a window touches the image border, so
by default 1 ring is dropped. 0 means the whole grid.
Returns:
dict: bias_dy / bias_dx / std_dy / std_dx / rms
(root mean square of the 2 components combined) / median_abs / p95_abs /
n_valid / n_total.
• piv_displacement family guide
• 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.
• piv_field_analysis_tour — py -3.11 examples/piv_field_analysis_tour.py
• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py
• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py
• poc_strain_history — py -3.11 examples/poc_strain_history.py
table as input)—
assess)piv_sample_at_windows · piv_peak_locking · piv_time_statistics
*Provenance: pivops.py — PIV 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.