piv_outlier_mask — PIV validate op

• Data kinds: flow2d → mask

• Call: import fullseye as fs; fs.ledger.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1) (implementation को सीधे call करना हो तो import pivops; pivops.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1), registry से लेना हो तो opspiv.get("piv_outlier_mask"))

उपयोग

normalised median test (Westerweel & Scarano 2005) से outlier vector खोजता है।

हर vector के लिए, उसके 8 पड़ोसियों के median से residual को पड़ोसियों के residuals के median से भाग दिया जाता है। भाजक में epsilon (default 0.1 px, PIV measurement uncertainty का मोटा माप) जोड़ा जाता है ताकि uniform field में भाजक 0 न हो जाए और सब कुछ outlier न बन जाए —— इस term के बिना, इनपुट जितना आदर्श, test उतना ही टूटता है।

★तीखे gradients वाले fields में यह नुकसान करता है (measured 2026-09-06)। Rankine-type vortex पर multi-pass PIV चलाने पर (core radius 28 px), threshold 2 से चुने गए 5 vectors सभी core के किनारे पर थे (centre से 32 px), और उनके असली errors 0.07-0.45 px थे —— outliers नहीं बल्कि ऐसी जगहें जहाँ velocity profile में मोड़ है। पड़ोसी median से smooth करने पर RMS 0.134 से 0.230 तक बदतर हो जाता है (threshold 5 कुछ नहीं चुनता और 0.134 पर रहता है)।

Test इस मान्यता पर टिका है कि "पड़ोसियों से अलग = गलत", इसलिए यह असली discontinuity को error कहता है। Field की प्रकृति देखकर तय करें कि इसे लगाना है या नहीं।

Args:

flow: (2, h, w)।

threshold: यह मान पार होने पर outlier। 2 प्रचलित है।

epsilon: भाजक का offset [px]।

Returns:

(h, w) का bool। True outlier है (nan भी True है)।

उपयोग की विस्तृत guide

• piv_displacement family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py

• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py

• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py

वे अगले ops जिनसे type जुड़ता है (mask को input के रूप में लेते हैं)

piv_replace_outliers

इसी category के (validate)

piv_replace_outliers


*Provenance: pivops.py — PIV operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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