{
  "config": {
    "prediction_dt": 60.0,
    "execution_dt": 10.0,
    "replan_dt": 60.0,
    "duration": 3600.0,
    "cruise_height": 7000.0,
    "samples": 32,
    "scenarios": 6,
    "iterations": 2,
    "temperature": 25.0,
    "gust_tau": 300.0,
    "gust_sigma_e": 5.0,
    "gust_sigma_n": 4.0,
    "horizontal_tolerance": 1000.0,
    "vertical_tolerance": 30.0,
    "seed": 260911
  },
  "gust_seeds": [
    260912,
    260913,
    260914
  ],
  "metrics": [
    {
      "mode": "full_trip",
      "fuel_kg": 2577.797857031859,
      "planning_failure": null,
      "duration_s": 3486.9038709438223,
      "horizontal_error_m": 66.17878629290257,
      "vertical_error_m": 4.583000645652646e-13,
      "arrival_pass": true,
      "max_normalized_violation": 0.0,
      "fine_replay_position_difference_m": 0.21711215394094185,
      "fine_replay_fuel_difference_kg": 0.0018621023918967694,
      "fine_horizontal_error_m": 65.96303595293871,
      "fine_vertical_error_m": 1.9245049998062314e-11,
      "max_altitude_m": 7013.880236235213,
      "min_vertical_speed_mps": -6.325714251801567,
      "max_vertical_speed_mps": 6.32286393849092,
      "cruise_samples": 60,
      "planning_seconds": 1.4534067907370627,
      "mean_ess": 11.725814932623482,
      "accepted_updates": 2,
      "rejected_updates": 0,
      "retained_previous_plans": 0,
      "replans": 1,
      "gust_seed": 260912
    },
    {
      "mode": "frozen",
      "fuel_kg": 2577.797857031859,
      "planning_failure": null,
      "duration_s": 3486.9038709438223,
      "horizontal_error_m": 1559.858997609471,
      "vertical_error_m": 4.583000645652646e-13,
      "arrival_pass": false,
      "max_normalized_violation": 0.0,
      "fine_replay_position_difference_m": 0.20996379799852502,
      "fine_replay_fuel_difference_kg": 0.0018621023918967694,
      "fine_horizontal_error_m": 1559.8827907910822,
      "fine_vertical_error_m": 1.9245049998062314e-11,
      "max_altitude_m": 7013.880236235213,
      "min_vertical_speed_mps": -6.325714251801567,
      "max_vertical_speed_mps": 6.32286393849092,
      "cruise_samples": 60,
      "planning_seconds": 1.2909061671234667,
      "mean_ess": 11.725814932623482,
      "accepted_updates": 2,
      "rejected_updates": 0,
      "retained_previous_plans": 0,
      "replans": 1,
      "gust_seed": 260912
    },
    {
      "mode": "mean",
      "fuel_kg": 2564.0753806404246,
      "planning_failure": null,
      "duration_s": 3544.505335163475,
      "horizontal_error_m": 139.7876455065546,
      "vertical_error_m": 6.714628852932947e-13,
      "arrival_pass": true,
      "max_normalized_violation": 1.1514345032992422e-13,
      "fine_replay_position_difference_m": 0.12335482759875727,
      "fine_replay_fuel_difference_kg": 0.0018387120435363613,
      "fine_horizontal_error_m": 139.85321594461763,
      "fine_vertical_error_m": 1.1514345032992424e-11,
      "max_altitude_m": 7002.9589532331065,
      "min_vertical_speed_mps": -6.1808536906298315,
      "max_vertical_speed_mps": 6.225370412522106,
      "cruise_samples": 54,
      "planning_seconds": 50.31218242133036,
      "mean_ess": 22.23532674155076,
      "accepted_updates": 85,
      "rejected_updates": 35,
      "retained_previous_plans": 1,
      "replans": 60,
      "gust_seed": 260912
    },
    {
      "mode": "stochastic",
      "fuel_kg": 2537.9506196724906,
      "planning_failure": null,
      "duration_s": 3471.029568173292,
      "horizontal_error_m": 156.6303026164574,
      "vertical_error_m": 8.348877145181177e-13,
      "arrival_pass": true,
      "max_normalized_violation": 1.4967582728786511e-13,
      "fine_replay_position_difference_m": 0.1955776547709259,
      "fine_replay_fuel_difference_kg": 0.001890554412966594,
      "fine_horizontal_error_m": 156.68737465336656,
      "fine_vertical_error_m": 1.496758272878651e-11,
      "max_altitude_m": 7007.514888669638,
      "min_vertical_speed_mps": -6.37191831607787,
      "max_vertical_speed_mps": 6.510230565207123,
      "cruise_samples": 60,
      "planning_seconds": 47.88302412210032,
      "mean_ess": 8.816962272999458,
      "accepted_updates": 85,
      "rejected_updates": 31,
      "retained_previous_plans": 10,
      "replans": 58,
      "gust_seed": 260912
    },
    {
      "mode": "frozen",
      "fuel_kg": 2577.797857031859,
      "planning_failure": null,
      "duration_s": 3486.9038709438223,
      "horizontal_error_m": 2450.383505021755,
      "vertical_error_m": 4.583000645652646e-13,
      "arrival_pass": false,
      "max_normalized_violation": 0.0,
      "fine_replay_position_difference_m": 0.21801109330946603,
      "fine_replay_fuel_difference_kg": 0.0018621023918967694,
      "fine_horizontal_error_m": 2450.4337739453185,
      "fine_vertical_error_m": 1.9245049998062314e-11,
      "max_altitude_m": 7013.880236235213,
      "min_vertical_speed_mps": -6.325714251801567,
      "max_vertical_speed_mps": 6.32286393849092,
      "cruise_samples": 60,
      "planning_seconds": 1.214262125082314,
      "mean_ess": 11.725814932623482,
      "accepted_updates": 2,
      "rejected_updates": 0,
      "retained_previous_plans": 0,
      "replans": 1,
      "gust_seed": 260913
    },
    {
      "mode": "mean",
      "fuel_kg": 2590.7752721844445,
      "planning_failure": null,
      "duration_s": 3548.987975064079,
      "horizontal_error_m": 2.5052297834063964e-05,
      "vertical_error_m": 0.0,
      "arrival_pass": true,
      "max_normalized_violation": 0.0,
      "fine_replay_position_difference_m": 0.13177988824448264,
      "fine_replay_fuel_difference_kg": 0.0018062396120512858,
      "fine_horizontal_error_m": 0.13176730822056643,
      "fine_vertical_error_m": 3.4141578453272814e-12,
      "max_altitude_m": 6998.745829339018,
      "min_vertical_speed_mps": -6.171930519978173,
      "max_vertical_speed_mps": 6.2210300502102305,
      "cruise_samples": 54,
      "planning_seconds": 66.96588712465018,
      "mean_ess": 22.250530389865673,
      "accepted_updates": 81,
      "rejected_updates": 39,
      "retained_previous_plans": 3,
      "replans": 60,
      "gust_seed": 260913
    },
    {
      "mode": "stochastic",
      "fuel_kg": 2563.143288772735,
      "planning_failure": null,
      "duration_s": 3475.317989905463,
      "horizontal_error_m": 16.9013913950218,
      "vertical_error_m": 1.1723955140041653e-13,
      "arrival_pass": true,
      "max_normalized_violation": 1.616484723854228e-14,
      "fine_replay_position_difference_m": 0.13111232013491014,
      "fine_replay_fuel_difference_kg": 0.0018447977272444405,
      "fine_horizontal_error_m": 16.79708667068925,
      "fine_vertical_error_m": 1.616484723854228e-12,
      "max_altitude_m": 7004.756217679962,
      "min_vertical_speed_mps": -6.437638217905071,
      "max_vertical_speed_mps": 6.507121976633196,
      "cruise_samples": 60,
      "planning_seconds": 58.69061220809817,
      "mean_ess": 8.737810296530668,
      "accepted_updates": 89,
      "rejected_updates": 27,
      "retained_previous_plans": 8,
      "replans": 58,
      "gust_seed": 260913
    },
    {
      "mode": "frozen",
      "fuel_kg": 2577.797857031859,
      "planning_failure": null,
      "duration_s": 3486.9038709438223,
      "horizontal_error_m": 3463.8067956585046,
      "vertical_error_m": 4.583000645652646e-13,
      "arrival_pass": false,
      "max_normalized_violation": 0.0,
      "fine_replay_position_difference_m": 0.19811857140307637,
      "fine_replay_fuel_difference_kg": 0.0018621023918967694,
      "fine_horizontal_error_m": 3463.7453123571,
      "fine_vertical_error_m": 1.9245049998062314e-11,
      "max_altitude_m": 7013.880236235213,
      "min_vertical_speed_mps": -6.325714251801567,
      "max_vertical_speed_mps": 6.32286393849092,
      "cruise_samples": 60,
      "planning_seconds": 1.330410041846335,
      "mean_ess": 11.725814932623482,
      "accepted_updates": 2,
      "rejected_updates": 0,
      "retained_previous_plans": 0,
      "replans": 1,
      "gust_seed": 260914
    },
    {
      "mode": "mean",
      "fuel_kg": 2606.10134785455,
      "planning_failure": null,
      "duration_s": 3542.6688857243926,
      "horizontal_error_m": 168.87811701509025,
      "vertical_error_m": 3.552713678800501e-14,
      "arrival_pass": true,
      "max_normalized_violation": 1.3002932064409834e-14,
      "fine_replay_position_difference_m": 0.2235578625036367,
      "fine_replay_fuel_difference_kg": 0.0019084035520791076,
      "fine_horizontal_error_m": 168.69045382101726,
      "fine_vertical_error_m": 1.3002932064409833e-12,
      "max_altitude_m": 6996.117889281578,
      "min_vertical_speed_mps": -6.161422219245292,
      "max_vertical_speed_mps": 6.22087991899183,
      "cruise_samples": 54,
      "planning_seconds": 50.920428830198944,
      "mean_ess": 22.09592535323492,
      "accepted_updates": 84,
      "rejected_updates": 36,
      "retained_previous_plans": 1,
      "replans": 60,
      "gust_seed": 260914
    },
    {
      "mode": "stochastic",
      "fuel_kg": 2579.3116341507266,
      "planning_failure": null,
      "duration_s": 3472.0280723166566,
      "horizontal_error_m": 156.39041328172226,
      "vertical_error_m": 5.3290705182007514e-14,
      "arrival_pass": true,
      "max_normalized_violation": 4.5439207951858404e-14,
      "fine_replay_position_difference_m": 0.2611561838864887,
      "fine_replay_fuel_difference_kg": 0.001973242120584473,
      "fine_horizontal_error_m": 156.51938119095635,
      "fine_vertical_error_m": 4.543920795185841e-12,
      "max_altitude_m": 7013.229905029383,
      "min_vertical_speed_mps": -6.4240546255733255,
      "max_vertical_speed_mps": 6.395308415706331,
      "cruise_samples": 60,
      "planning_seconds": 49.90836599795148,
      "mean_ess": 8.899643707590169,
      "accepted_updates": 82,
      "rejected_updates": 34,
      "retained_previous_plans": 13,
      "replans": 58,
      "gust_seed": 260914
    }
  ],
  "convergence": {
    "evaluation_scenarios": 128,
    "evaluation_seed": 70191,
    "records": [
      {
        "candidates": 16,
        "scenarios": 6,
        "planning_seed": 471,
        "held_out_expected_cost": 49858.05904568823,
        "held_out_cost_se": 21992.125347469508,
        "held_out_mean_arrival_error_m": 7266.800767151045,
        "ess": 1.0,
        "runtime_s": 1.2629043753258884,
        "accepted": 1
      },
      {
        "candidates": 16,
        "scenarios": 6,
        "planning_seed": 472,
        "held_out_expected_cost": 69909.47841291367,
        "held_out_cost_se": 33446.13594850995,
        "held_out_mean_arrival_error_m": 7448.931488904013,
        "ess": 1.3075993089703537,
        "runtime_s": 1.3136436250060797,
        "accepted": 2
      },
      {
        "candidates": 16,
        "scenarios": 6,
        "planning_seed": 473,
        "held_out_expected_cost": 48797.03139249762,
        "held_out_cost_se": 21570.630894332622,
        "held_out_mean_arrival_error_m": 7300.237185291967,
        "ess": 1.0,
        "runtime_s": 1.2723184172064066,
        "accepted": 2
      },
      {
        "candidates": 16,
        "scenarios": 6,
        "planning_seed": 474,
        "held_out_expected_cost": 61020.55421427374,
        "held_out_cost_se": 26742.652434935815,
        "held_out_mean_arrival_error_m": 7122.060628204278,
        "ess": 1.0358205665377151,
        "runtime_s": 1.7231015409342945,
        "accepted": 1
      },
      {
        "candidates": 32,
        "scenarios": 6,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.3457836247980595,
        "accepted": 1
      },
      {
        "candidates": 32,
        "scenarios": 6,
        "planning_seed": 472,
        "held_out_expected_cost": 54827.26398745061,
        "held_out_cost_se": 25658.825942542484,
        "held_out_mean_arrival_error_m": 7502.864674717712,
        "ess": 1.2925202514125824,
        "runtime_s": 1.3099425002001226,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 6,
        "planning_seed": 473,
        "held_out_expected_cost": 47270.55831071202,
        "held_out_cost_se": 20871.463564609036,
        "held_out_mean_arrival_error_m": 7376.96346126722,
        "ess": 1.0,
        "runtime_s": 1.2597581669688225,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 6,
        "planning_seed": 474,
        "held_out_expected_cost": 58064.221970731895,
        "held_out_cost_se": 25306.907422909873,
        "held_out_mean_arrival_error_m": 7065.66776674795,
        "ess": 2.400618113021205,
        "runtime_s": 1.2071962500922382,
        "accepted": 2
      },
      {
        "candidates": 64,
        "scenarios": 6,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.2688036249019206,
        "accepted": 1
      },
      {
        "candidates": 64,
        "scenarios": 6,
        "planning_seed": 472,
        "held_out_expected_cost": 53708.985109259374,
        "held_out_cost_se": 25232.02386692463,
        "held_out_mean_arrival_error_m": 7521.673915844802,
        "ess": 2.147894098557331,
        "runtime_s": 1.3199546672403812,
        "accepted": 2
      },
      {
        "candidates": 64,
        "scenarios": 6,
        "planning_seed": 473,
        "held_out_expected_cost": 48867.37852879433,
        "held_out_cost_se": 21568.69338505339,
        "held_out_mean_arrival_error_m": 7400.742420248874,
        "ess": 1.0,
        "runtime_s": 1.2716949167661369,
        "accepted": 2
      },
      {
        "candidates": 64,
        "scenarios": 6,
        "planning_seed": 474,
        "held_out_expected_cost": 61020.56211420696,
        "held_out_cost_se": 26742.656965339,
        "held_out_mean_arrival_error_m": 7122.060669898063,
        "ess": 1.1513116425308998,
        "runtime_s": 1.2416311670094728,
        "accepted": 1
      },
      {
        "candidates": 128,
        "scenarios": 6,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.311366125009954,
        "accepted": 1
      },
      {
        "candidates": 128,
        "scenarios": 6,
        "planning_seed": 472,
        "held_out_expected_cost": 54057.43136861763,
        "held_out_cost_se": 25707.284136588292,
        "held_out_mean_arrival_error_m": 7531.031774827491,
        "ess": 3.53968468778692,
        "runtime_s": 1.4132192502729595,
        "accepted": 1
      },
      {
        "candidates": 128,
        "scenarios": 6,
        "planning_seed": 473,
        "held_out_expected_cost": 44175.12571528523,
        "held_out_cost_se": 19048.225544437737,
        "held_out_mean_arrival_error_m": 7375.801020324523,
        "ess": 1.0,
        "runtime_s": 1.4192592082545161,
        "accepted": 2
      },
      {
        "candidates": 128,
        "scenarios": 6,
        "planning_seed": 474,
        "held_out_expected_cost": 58478.56051351741,
        "held_out_cost_se": 25168.18778461809,
        "held_out_mean_arrival_error_m": 7086.536788521971,
        "ess": 1.6929040612786959,
        "runtime_s": 1.3001418341882527,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 1,
        "planning_seed": 471,
        "held_out_expected_cost": 86717.75925394378,
        "held_out_cost_se": 42718.52978153503,
        "held_out_mean_arrival_error_m": 7465.212238330989,
        "ess": 1.4977254520227414,
        "runtime_s": 1.3630279172211885,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 1,
        "planning_seed": 472,
        "held_out_expected_cost": 45785.462165481826,
        "held_out_cost_se": 19381.361033398392,
        "held_out_mean_arrival_error_m": 7140.631499414626,
        "ess": 1.0013564549105403,
        "runtime_s": 1.4047632501460612,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 1,
        "planning_seed": 473,
        "held_out_expected_cost": 47270.55831071202,
        "held_out_cost_se": 20871.463564609036,
        "held_out_mean_arrival_error_m": 7376.96346126722,
        "ess": 1.0,
        "runtime_s": 1.2306632078252733,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 1,
        "planning_seed": 474,
        "held_out_expected_cost": 53639.86423245375,
        "held_out_cost_se": 25227.570081789232,
        "held_out_mean_arrival_error_m": 7528.283583297958,
        "ess": 1.0388049936178576,
        "runtime_s": 1.3316832911223173,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 3,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.3201759159564972,
        "accepted": 1
      },
      {
        "candidates": 32,
        "scenarios": 3,
        "planning_seed": 472,
        "held_out_expected_cost": 46461.30501578534,
        "held_out_cost_se": 19602.53597658526,
        "held_out_mean_arrival_error_m": 7120.201559479197,
        "ess": 1.3648891395980085,
        "runtime_s": 1.263210291042924,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 3,
        "planning_seed": 473,
        "held_out_expected_cost": 47270.55831071202,
        "held_out_cost_se": 20871.463564609036,
        "held_out_mean_arrival_error_m": 7376.96346126722,
        "ess": 1.0,
        "runtime_s": 1.5976841249503195,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 3,
        "planning_seed": 474,
        "held_out_expected_cost": 53012.4665969209,
        "held_out_cost_se": 22627.53376762942,
        "held_out_mean_arrival_error_m": 7033.259953080503,
        "ess": 1.408313388106789,
        "runtime_s": 1.2997521669603884,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 12,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.5898982496000826,
        "accepted": 1
      },
      {
        "candidates": 32,
        "scenarios": 12,
        "planning_seed": 472,
        "held_out_expected_cost": 48420.69103841018,
        "held_out_cost_se": 22477.32775045276,
        "held_out_mean_arrival_error_m": 7537.384090458053,
        "ess": 2.901036104001472,
        "runtime_s": 1.3888493753038347,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 12,
        "planning_seed": 473,
        "held_out_expected_cost": 47270.55831071202,
        "held_out_cost_se": 20871.463564609036,
        "held_out_mean_arrival_error_m": 7376.96346126722,
        "ess": 1.0,
        "runtime_s": 1.3257284578867257,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 12,
        "planning_seed": 474,
        "held_out_expected_cost": 52991.006994239266,
        "held_out_cost_se": 24865.233637839534,
        "held_out_mean_arrival_error_m": 7529.072751205775,
        "ess": 1.0,
        "runtime_s": 1.352726083714515,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 24,
        "planning_seed": 471,
        "held_out_expected_cost": 43729.17115989818,
        "held_out_cost_se": 18809.337855483158,
        "held_out_mean_arrival_error_m": 7276.952377905178,
        "ess": 1.0,
        "runtime_s": 1.3561480003409088,
        "accepted": 1
      },
      {
        "candidates": 32,
        "scenarios": 24,
        "planning_seed": 472,
        "held_out_expected_cost": 55938.94422827079,
        "held_out_cost_se": 26261.954353944777,
        "held_out_mean_arrival_error_m": 7497.470886147214,
        "ess": 1.1416929698835117,
        "runtime_s": 1.4216034156270325,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 24,
        "planning_seed": 473,
        "held_out_expected_cost": 47270.55831071202,
        "held_out_cost_se": 20871.463564609036,
        "held_out_mean_arrival_error_m": 7376.96346126722,
        "ess": 1.0,
        "runtime_s": 1.526942541822791,
        "accepted": 2
      },
      {
        "candidates": 32,
        "scenarios": 24,
        "planning_seed": 474,
        "held_out_expected_cost": 58335.437753703634,
        "held_out_cost_se": 27108.59014713472,
        "held_out_mean_arrival_error_m": 7485.436331832151,
        "ess": 1.0,
        "runtime_s": 1.4067845423705876,
        "accepted": 2
      }
    ]
  },
  "runtime_s": 383.15268725017086,
  "source_sha256": {
    "code/aircraft_mppi.py": "e694bb37af7d3ae79b6d896c1ecf198eef1a39ee2f22a545403850b5165634f6",
    "code/mppi_control.py": "4d714d744b9396263d760f87a9fa6255ee0b4de87dc8168174d0e6ff2fdcf255",
    "data/aircraft/era5_wind.npz": "2938ae2fc39de4a68c81e61e92183c006500b224f4ed094b4add48d56181d26f"
  },
  "wind": "ERA5 2023-06-01 12:00 UTC; pressure/lat/lon interpolation, held at 200/925 hPa boundaries",
  "uncertainty": "OU gusts: tau=300 s, stationary standard deviations east=5 m/s, north=4 m/s; independent actual-future and optimizer RNGs",
  "aggregation": "scenario costs averaged before weighting; reference/proposal Gaussian correction applied once per candidate"
}
