Note
Go to the end to download the full example code.
Background scenario data from AR6#
from matplotlib.pyplot import show
from noads.application.background_scenario_data import get_ar6_input_data
from noads.application.background_scenario_data import get_ar6_output_data
Scenario-dependent inputs#
The choice of background scenario fixes the exogenous drivers of a NOADS run. From
the AR6 database, five time series are read for every SSP-RCP scenario used in the
paper: total population and per-capita income (which drive air-traffic demand), the
grid electricity emission factor, and the global production of electricity and
biomass (which set the resource availability and the carbon intensity of the
electricity-based energy carriers). get_ar6_input_data reads and plots them.
ar6_inputs, years = get_ar6_input_data(start_year=2010, end_year=2080, plot_data=True)
show()

The scenarios shown are SSP1 with RCP 1.9, SSP2 with RCP 1.9/2.6/3.4, and SSP5 with RCP 4.5. Their per-scenario time series are returned as nested dictionaries keyed by variable then scenario name:
for variable in ar6_inputs:
print(variable, "->", ", ".join(ar6_inputs[variable]))
population -> SSP1-19, SSP2-19, SSP2-26, SSP2-34, SSP5-45
gdp_per_capita -> SSP1-19, SSP2-19, SSP2-26, SSP2-34, SSP5-45
ELECTRICITY.CO2_index -> SSP1-19, SSP2-19, SSP2-26, SSP2-34, SSP5-45
ELECTRICITY.global_production -> SSP1-19, SSP2-19, SSP2-26, SSP2-34, SSP5-45
BIOMASS.global_production -> SSP1-19, SSP2-19, SSP2-26, SSP2-34, SSP5-45
Aviation outputs across the AR6 ensemble#
The same AR6 database also reports aviation final energy and CO2 emissions for the full inter-model ensemble. These are used to validate the trajectories produced by NOADS (see the literature comparison of the extended paper): the scenarios of this work should fall within the ensemble spread over the near to mid term.
get_ar6_output_data(start_year=2010, end_year=2080, plot_data=True)
show()

/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/noads/application/background_scenario_data.py:397: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
axes[0, 1].legend(loc="upper left")
/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/noads/application/background_scenario_data.py:398: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
axes[1, 0].legend(loc="upper left")
/opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages/noads/application/background_scenario_data.py:399: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
axes[1, 1].legend(loc="upper left")
Total running time of the script: (0 minutes 2.762 seconds)