ball op• 数据种类:signal × points × table → table
• 调用: import fullseye as fs; fs.ledger.ballistic_vs_thrust(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict'(要直接调用实现,import ballistics; ballistics.ballistic_vs_thrust(t, p, bp: 'dict', *, iters: 'int' = 20, dt: 'float' = 0.001) -> 'dict';从台账取用则 opsdrive.get("ballistic_vs_thrust"))
• GPU:无(仅 CPU 参考实现)
对同一条轨迹同时拟合"重力 + 阻力"(drag_fit)与"重力 + 阻力 + 恒定比推力"(thrust_fit),返回 AIC(aic_from_rss)之差 ΔAIC = AIC_弹道 − AIC_推力。返回 {"ballistic", "thrust"}(两个拟合)并附上 "aic_ballistic", "aic_thrust", "delta_aic", "thrust_norm"。不返回判定(与 imgforensics 同一流派):按简约原则来读——推力模型多 3 个参数,即使只有噪声也会略微降低 RSS,除非赢过罚项 2Δk,否则取更简单的弹道模型。仅有噪声时 ΔAIC 以 −2Δk 为下界、按 χ²(Δk) 近似的宽度散布(中位数约 −2Δk + 1;严格说是混合分布,因为有些拟合撞到 C_d = 0 的壁);推力侧从弹道侧的解出发,所以 ΔAIC ≥ −2Δk 成立。"决定性"的惯用值是 10(假阳性远低于 1 %),但不内置阈值,由调用方决定。当推力侧的 RSS 低于离散化下限 rss_floor 的 10 倍(无噪声、或比网格解得更细的轨迹)时引发 ValueError——AIC 比较的是噪声而不是舍入屑(无噪声真值在默认 dt 下曾得到 ΔAIC = +144,2026-10-23)。
空输入(t 为 0 个元素)会引发 ValueError。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_video_physics_consistency — py -3.11 examples/poc_video_physics_consistency.py
table 作为输入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
ball)ball_params · impact_params · flight_vacuum · flight_ode · flight_simulate · flight_state_at · magnus_lift_coefficient · drag_coefficient_sphere
*Provenance: ballistics.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.