stagnation_from_centerline — DRIVE swarmflow op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.stagnation_from_centerline(field, speed=None, d_range=(0.04, 0.6), min_points: 'int' = 4, n_iter: 'int' = 80) -> 'dict' (implementation को सीधे call करना हो तो import swarmflow; swarmflow.stagnation_from_centerline(field, speed=None, d_range=(0.04, 0.6), min_points: 'int' = 4, n_iter: 'int' = 80) -> 'dict', registry से लेना हो तो opsdrive.get("stagnation_from_centerline"))

उपयोग

centerline की कमी को linear बनाकर upstream टक्कर बिंदु (stagnation point), बाधा का केंद्र और त्रिज्या पढ़ता है (implementation 1, केवल upstream point)।

1. जिन ग्रिड कोशिकाओं की कमी (3 × 3 औसत) d_range की ऊपरी सीमा से अधिक है, उनमें सबसे ऊपरी धारा (अपस्ट्रीम) वाली को "टक्कर बिंदु के पास" माना जाता है।

2. उससे थोड़ा ऊपर की ओर के स्तंभों (4 स्तंभ) में, अधिकतम कमी वाली पंक्ति परवलय से उप-ग्रिड परिशुद्धता पर निकाली जाती है, और औसत को केंद्ररेखा y_c माना जाता है (ऊपर की ओर की कमी R²(Δx² − Δy²)/(Δx² + Δy²)² Δy = 0 पर अधिकतम है)।

3. y_c की ऊँचाई पर पंक्तियों के बीच रैखिक अंतर्वेशन से कमी ली जाती है, और टक्कर बिंदु के पास वाले से ऊपर की ओर तथा d_range के भीतर की कोशिकाओं पर 1/√d = (x_c − x)/R को भारित न्यूनतम वर्ग से फ़िट किया जाता है (गति का शोर σ_d, 1/√d में बढ़कर σ_d/(2d^{3/2}) हो जाता है, इसलिए भार d^{3/2} —— कम कमी वाले दूर के बिंदु शोर से बेतहाशा उछलते हैं): R = −1/ढाल, x_c = अंतःखंड × R। ठहराव बिंदु = (x_c − R, y_c)।

4. speed न देने पर, ऊपरी किनारे के u से बंद रूप को भाग देकर U का पुनः अनुमान किया जाता है और 3 दोहराया जाता है (जब तक U का परिवर्तन 1e-9 से कम न हो या n_iter बार तक। अभिसरण प्रथम कोटि का है, R = 0.6 और किनारे तक दूरी 3 वाले क्षेत्र में लगभग 30 बार)। ऊपरी किनारा भी 1/r² से घटा हुआ है (R = 0.6, दूरी 3 पर 4 %), इसलिए किनारे की माध्यिका को सीधे U मानने पर रेखा मुड़ जाती है।

Returns:

dict: stagnation (x, y), center (x, y), radius, n_used, rms_residual (1/√d फ़िट का अवशेष),

speed, ok (पर्याप्त बिंदु हों और ढाल ऋणात्मक हो तो True)।

संदर्भ (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 करते हैं)

• poc_swarm_obstacle_from_flow — py -3.11 examples/poc_swarm_obstacle_from_flow.py

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

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

इसी category के (swarmflow)

sph_kernel · sph_density_pressure · swarm_simulate · swarm_render_overhead · swarm_field_from_tracks · swarm_field_from_piv · potential_flow_cylinder · velocity_deficit_map


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

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