ballistic_vs_thrust — DRIVE ball op

• Data kinds: signal × points × table → table

• Call: import fullseye as fs; fs.ledger.ballistic_vs_thrust(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict' (implementation को सीधे call करना हो तो import ballistics; ballistics.ballistic_vs_thrust(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict', registry से लेना हो तो opsdrive.get("ballistic_vs_thrust"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

एक ही trajectory पर "गुरुत्व + drag"(drag_fit)और "गुरुत्व + drag + स्थिर specific thrust"(thrust_fit)दोनों fit करके AIC(aic_from_rss)का अंतर ΔAIC = AIC_ballistic − AIC_thrust लौटाता है। लौटाता है {"ballistic", "thrust"}(दोनों fit)के साथ "aic_ballistic", "aic_thrust", "delta_aic", "thrust_norm"। कोई verdict नहीं लौटाता(imgforensics की रीति): parsimony से पढ़ें — thrust model में 3 parameters अधिक हैं और शुद्ध noise पर भी RSS थोड़ा घटाता है, इसलिए penalty 2Δk से अधिक जीते बिना सरल (ballistic) model रखा जाता है। केवल noise का ΔAIC −2Δk को निचली सीमा मानकर लगभग χ²(Δk) चौड़ाई में बिखरता है (median लगभग −2Δk + 1; कुछ fits C_d = 0 की दीवार से टकराते हैं इसलिए सख्ती से यह mixture है), और thrust fit ballistic solution से शुरू होता है इसलिए ΔAIC ≥ −2Δk बना रहता है। "निर्णायक" का पारंपरिक मान 10 है (false positive 1 % से काफी कम), पर कोई threshold bundled नहीं; caller तय करता है। जब thrust fit का RSS discretisation floor rss_floor के 10 गुना से कम हो (noise-free trajectory, या grid से बारीक हल की गई) तो ValueError — AIC noise की तुलना करता है, rounding की नहीं (noise-free truth ने default dt पर ΔAIC = +144 दिया, 2026-10-23)।

खाली input (t में 0 elements) पर ValueError आता है।

संदर्भ (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_video_physics_consistency — py -3.11 examples/poc_video_physics_consistency.py

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

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

इसी category के (ball)

ball_params · impact_params · flight_vacuum · flight_ode · flight_simulate · flight_state_at · magnus_lift_coefficient · drag_coefficient_sphere


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

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