Investigating the limiting aircraft design-dependent and environmental factors of persistent contrail formation
Authors:
- Liam Megill (1, 2), https://orcid.org/0000-0002-4199-6962
- Volker Grewe (1, 2), https://orcid.org/0000-0002-8012-6783
Affiliation (1): Deutsches Zentrum für Luft- und Raumfahrt (DLR), Institut für Physik der Atmosphäre, Oberpfaffenhofen, Germany
Affiliation (2): Delft University of Technology (TU Delft), Faculty of Aerospace Engineering, Section Aircraft Noise and Climate Effects (ANCE), Delft, The Netherlands
Corresponding author: Liam Megill, liam.megill@dlr.de
doi: https://doi.org/10.5194/egusphere-2024-3398
Link to data: https://doi.org/10.4121/cdb4e3bb-d6f4-4422-a715-b6187098a314
This dataset contains all data and code developed during research towards the linked article. It contains all elements required to reproduce the linked figures and analysis. The research was carried out by Liam Megill during his PhD project at the DLR.
The analysis was conducted on the supercomputer Levante of the German Climate Computing Center (DKRZ) using ERA5 data. The ERA5 data is stored on Levante in GRIB format, but is otherwise also available from ECMWF at https://cds.climate.copernicus.eu/. The DEPA 2050 air traffic scenario is available from Zenodo at https://doi.org/10.5281/zenodo.11442323.
The aircraft naming differs to that in the linked paper. The 02-lm-create_aircraft_specs.ipynb
notebook includes a conversion table.
You can download the code for this project at 4TU.ResearchData. To perform the analyses, unzip dataset.zip
into the main directory with this readme file. The data is then provided in data.zip
, which should be unzipped to a folder data
within the main directory. The input data to each notebook is explained in more detail in the notebook. Plots can be saved by following the instructions in the notebooks.
The structure of the full project directory is the following:
├── LICENSES
│ ├── CC-BY-4.0.txt <- CC-BY 4.0 license for data files
│ └── Apache-License-v2.0.txt <- Apache License v2.0 for scripts
│
├── README.md
│
├── data (unzipped `data.zip`)
│ ├── external <- Data from third party sources.
│ │ ├── (DEPA 2050)
│ │ │ └── (FP_con_2050.txt) <- can be downloaded from https://doi.org/10.5281/zenodo.11442323
│ │ └── (ERA5-IAGOS_QM-CDF_Hofer2024.csv) <- can be requested from sina.hofer@dlr.de
│ │
│ ├── processed
│ │ ├── limfac
│ │ │ ├── AC* (0, 1, 3, 4, 5, 6, 7, 8, 9, 10)
│ │ │ │ └── data per AC can be requested from the corresponding author
│ │ │ ├── nb <- seasonal data can be requested from the corresponding author
│ │ │ ├── areas_grib.pickle
│ │ │ ├── limfac_allAC_rmS_ERA5_GRIB_allcorr_v4.nc
│ │ │ ├── nb_limfac_allAC_rmS_ERA5_GRIB_allcorr_v4.nc
│ │ │ ├── neighbours_grib.pickle
│ │ │ ├── perimeters_grib.pickle
│ │ │ ├── vert_limfac_allAC_rmS_ERA5_GRIB_allcorr_v4.nc
│ │ │ └── vertical_neighbors_grib.pickle
│ │ │
│ │ └── ppcf
│ │ ├── fit_res.pickle
│ │ ├── ppcfhist_M_2010s_ERA5_GRIB_v3.nc
│ │ └── ppcfhist_S_2010s_ERA5_GRIB_v3.nc
│ │
│ ├── raw <- suggested location for ERA5 data if not using DKRZ Levante
│ │
│ └── aircraft_specs_v3.nc
│
├── limfac <- limiting factors module
│ ├── _about_.py
│ ├── _init_.py
│ ├── calc_atmos.py
│ ├── calc_limfac.py
│ ├── calc_maxg.py
│ ├── configure_input.py
│ └── tools.py
│
├── tests <- test functions for the limiting factors module
│ ├── _init_.py
│ ├── calc_limfac_test.py
│ └── calc_maxg_test.py
│
├── notebooks <- Jupyter notebooks.
| ├── figs <- folder for output figures
│ ├── 02-lm-create_aircraft_specs.ipynb <- creates aircraft design specifications
│ ├── 11-lm-supporting_graphs.ipynb <- creates supporting graphs and data
│ ├── 15-lm-Gmax_grib.ipynb <- performs Gmax calculations using ERA5 data
│ ├── 17-lm-analyse_Gmax.ipynb <- analyses ppcf vs G analysis
│ ├── 40-lm-random_limfac.ipynb <- performs horizontal limiting factors (borders) calculations using ERA5 data
│ ├── 41-lm-analyse_limfac.ipynb <- analyses limiting factors results
│ ├── 43-lm-random_vertical_limfac.ipynb <- performs vertical limiting factors (borders) calculations using ERA5 data
│ ├── 50-lm-num_limfac_limiting.ipynb <- performs limiting factors (non-border) calculations using ERA5 data
│ ├── 53-lm-concat_results.ipynb <- combines all individual datasets into single ones
│ ├── 99-lm-response_reviewers.ipynb <- calculations for peer review
│
└── requirements.txt <- The requirements file for reproducing the analysis environment
The analyses were performed with python 3.11. A suitable python installation can be created automatically using conda and requirements.txt
. When using conda, create the environment with:
conda create --name <name_environment> python==3.11
conda activate <name_environment>
pip install -r requirements.txt
All data files are licensed under a CC-BY 4.0 (see LICENSE/CC-BY-4.0.txt
file). All Juypter notebooks and Python scripts are licensed under an Apache License v2.0 (see LICENSE/Apache-License-v2.0.txt
file).
Copyright © 2025 Liam Megill
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.