Partitioning the fleet differently#
The global fleet is segmented into distance bands, each treated as an independent
market in which aircraft compete for supply. The segmentation lives entirely in
noads/application/base_objects.py and noads/application/scenario_setup.py; the
core models are agnostic to the number and definition of markets.
What defines a market segment#
Four dictionaries in noads.application.base_objects, keyed by market name:
Dictionary |
Content |
Where the values come from |
|---|---|---|
|
number of seats ( |
Top-Level Aircraft Requirements per market |
|
current-fleet energy consumption (MJ/seat-km) as (lower, mid, upper quartile) |
AeroSCOPE 2019 flights within each distance band |
|
fleet-replacement lifetimes in years, per technology scenario |
planespotters age-at-retirement statistics |
|
cruise speed and altitude per architecture |
fixed per propulsion architecture, not per market |
In addition, each market’s constant share of trend supply is set in
single_scenario_setup ("<market>.share" entries of the constants dict, summing
to 1 with the general market taking the remainder).
Steps to re-partition#
Choose the new bands and recompute the per-band statistics. The current aircraft example computes the consumption quartiles and retirement ages per band; adapt its distance boundaries and re-run it against the AeroSCOPE per-route dataset to obtain the new
category_consoandcategory_lifetimevalues.Update the four dictionaries in
base_objects.pywith the new market names, TLARs, consumptions, and lifetimes.Update the supply shares (
"<market>.share") inscenario_setup.pywith the ASK share of each new band (also obtainable from the AeroSCOPE histograms).Nothing else is needed:
initialize_base_objectsbuilds oneFleetper entry ofcategories_mission, with one reference (current) aircraft and oneAircraftDesignper compatible propulsion architecture, andsingle_scenario_setupcreates the corresponding optimization variables and per-market retirement constraints automatically.
Warning
The finer the partition, the more optimization variables (each market adds an entry-into-service and a maximum market share per aircraft concept). The gradient computation scales well thanks to forward-mode automatic differentiation, but SLSQP convergence may need more iterations; check the optimization history when increasing the number of markets.