A Python package to model ozone column changes and radiative effects in response to various aircraft emissions at different altitudes over specific regions. The model combines empirical emission sensitivities to estimate effects of supersonic transport on ozone and radiation.
A Python package to model ozone column changes and radiative effects in response to various aircraft emissions at different altitudes over specific regions. The model combines empirical emission sensitivities with a Taylor expansion in altitude to estimate effects of supersonic transport on ozone and radiation.
Install the package:
pip install -e .
An example on how to use the code is shown here
from response_model.taylor_model import calculate_delta_F_emissions
# Define inputs
mode = 'Radiative_Forcing' # or 'Ozone'
region = "Transatlantic_Corridor"
altitude_km = 18.0
emissions = {
'NO': (100, "GgNO2"), # Gigagrams of NO2 per year
'SO': (5, "GgS"), # Gigagrams of sulfur per year
'H2O': (50, "TgH2O"), # Teragrams of water vapor per year
}
# Calculate ozone change or radiative forcing
emission_values = {key: val[0] for key, val in emissions.items()}
delta_F = calculate_delta_F_emissions(altitude_km, emission_values, region, mode=mode)
# Format emissions into a readable string with units
emission_str = ', '.join([f"{key} = {value} {unit}" for key, (value, unit) in emissions.items()])
unit_str = "DU" if mode == "Ozone" else "mW/m²"
print(
f"The {mode} effect of a supersonic aircraft flying across the {region} "
f"at {altitude_km:.1f} km, emitting {emission_str}, is estimated to be ΔF = {delta_F:.2f} {unit_str}"
)
The radiative forcing effect of a supersonic aircraft flying across the Transatlantic_Corridor
at 18.0 km, emitting:
is estimated to be:
ΔF = 9.76 mW/m²
More extensive examples including reference aircraft for comparison are shown in src/scripts/example.py You can execute this via
python3 src/scripts/example.py
supersonic-effects/
├── src/
│ └── response_model/
│ ├── __init__.py
│ ├── taylor_model.py
│ ├── load_data.py
│ ├── scripts/
│ ├── example.py
│ └── test*.py
├── resources/
│ ├── sensitivity_*.csv
│ └── taylor_param_*.csv
├── tests/
│ ├── test_model.py
│ └── test_validation*.py
├── README.md
├── requirements.txt
├── pyproject.toml
...
The data underlying the software originates from Van 't Hoff et al. 2024
resources/sensitivity_ozone.csv
: Empirical sensitivities (mDU / unit / year)resources/sensitivity_radiative_forcing.csv
: Empirical sensitivities (mW/m2 / unit / year)resources/taylor_param_ozone.csv
: 1st and 2nd order coefficients for altitude effect (DU / km, DU / km²)resources/taylor_param_radiative_forcing.csv
: 1st and 2nd order coefficients for altitude effect (mW/m2 / km, mW/m2 / km²)