pycontrails 0.49.4__tar.gz → 0.50.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pycontrails might be problematic. Click here for more details.
- {pycontrails-0.49.4 → pycontrails-0.50.0}/CHANGELOG.md +32 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/Makefile +2 -1
- {pycontrails-0.49.4 → pycontrails-0.50.0}/PKG-INFO +4 -2
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/pycontrails.bib +32 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/api.rst +9 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/meteorology.rst +1 -0
- pycontrails-0.50.0/docs/notebooks/ARCO-ERA5.ipynb +370 -0
- pycontrails-0.50.0/docs/notebooks/model-levels.ipynb +2019 -0
- pycontrails-0.50.0/docs/notebooks/specific-humidity-interpolation.ipynb +734 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/_version.py +2 -2
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/datalib.py +60 -38
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/met.py +4 -4
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/met_var.py +2 -2
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/models.py +7 -3
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/rgi_cython.c +173 -185
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/vector.py +5 -5
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/__init__.py +4 -0
- pycontrails-0.50.0/pycontrails/datalib/ecmwf/arco_era5.py +577 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/common.py +1 -1
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/era5.py +2 -5
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/variables.py +18 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/gfs/gfs.py +2 -2
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/cocip.py +31 -3
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/cocip_params.py +11 -1
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocipgrid/cocip_grid_params.py +25 -19
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/constants.py +6 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/dependencies.py +13 -11
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails.egg-info/PKG-INFO +4 -2
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails.egg-info/SOURCES.txt +2 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails.egg-info/requires.txt +3 -1
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pyproject.toml +5 -4
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-contrail-output.json +485 -405
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-contrail-output2.json +2894 -2894
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-flight-output.json +191 -151
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-flight-output2.json +642 -642
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cocip.py +23 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_datalib.py +22 -12
- pycontrails-0.49.4/docs/notebooks/model-levels.ipynb +0 -2029
- pycontrails-0.49.4/docs/notebooks/specific-humidity-interpolation.ipynb +0 -762
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/dependabot.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/pull_request_template.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/benchmark.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/docs.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/doctest.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/release.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/scorecard.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.github/workflows/test.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.gitignore +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.pre-commit-config.yaml +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/.zenodo.json +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/CONTRIBUTING.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/LICENSE +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/NOTICE +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/README.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/RELEASE.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/css/style.css +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/img/colab.png +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/changelog.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/conf.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/contributing.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/develop.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/flight.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/index.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/install.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/integrations/ACCF.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/literature.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/models.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/AircraftPerformance.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/Cache.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/CoCiP.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/ECMWF.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/Flight.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/GFS.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/GOES.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/ISSR.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/Meteorology.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/SAC.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/advection.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/airports.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/.gitignore +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/flight-ap.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/flight-cocip.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/flight-fdr.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/flight-noisy.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/data/flight.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/flightplan.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/notebooks.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/observations.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/tutorials.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/docs/utilities.rst +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/aircraft_performance.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/cache.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/coordinates.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/fleet.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/flight.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/flightplan.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/interpolation.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/polygon.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/hres.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/ecmwf/ifs.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/gfs/variables.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/goes.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/spire/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/datalib/spire/spire.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/accf.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/contrail_properties.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/output_formats.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/radiative_forcing.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/wake_vortex.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/static/edb-gaseous-v28c-engines.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/emissions/static/edb-nvpm-v28c-engines.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/humidity_scaling/quantiles/era5-quantiles.pq +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/issr.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/pcr.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/ps_grid.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/ps_model.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/ps_model/static/ps-aircraft-params-20240209.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/sac.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/models/tau_cirrus.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/geo.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/jet.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/thermo.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/py.typed +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails/utils/types.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/setup.cfg +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/setup.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/_deprecated.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/fixtures/cocip-met.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/__init__.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/conftest.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_accf.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_airports.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cocip_grid.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cocip_grid_parity.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_dtypes.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_ecmwf.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_fleet.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_flight.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_flightplan.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_gfs.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_grid_to_netcdf.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_humidity_scaling.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_init.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_met.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_models.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_pcc.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_polygons.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_ps_model.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_sac_issr.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_thermo_sac.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_units.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_vector.py +0 -0
- {pycontrails-0.49.4 → pycontrails-0.50.0}/tests/unit/test_zarr.py +0 -0
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
|
|
2
2
|
# Changelog
|
|
3
3
|
|
|
4
|
+
## v0.50.0
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
- Add `ARCOERA5` interface for accessing ARCO ERA5 model level data. This interface requires the [metview](https://metview.readthedocs.io/en/latest/python.html) python package.
|
|
9
|
+
- Add [ARCO ERA5 tutorial notebook](https://py.contrails.org/notebooks/ARCO-ERA5.html) highlighting the new interface.
|
|
10
|
+
- Add support to output contrail warming impact in ATR20
|
|
11
|
+
|
|
12
|
+
### Breaking changes
|
|
13
|
+
|
|
14
|
+
- Reduce `CocipParams.met_level_buffer` from `(200, 200)` to `(40, 40)`. This change is motivated by the observation that the previous buffer was unnecessarily large and caused additional memory overhead. The new buffer is more in line with the typical vertical advection path of a contrail.
|
|
15
|
+
|
|
16
|
+
### Fixes
|
|
17
|
+
|
|
18
|
+
- Raise ValueError when `list[Flight]` source is provided to `Cocip` and the `copy_source` parameter is set to `False`. Previously the source was copied in this case regardless of the `copy_source` parameter.
|
|
19
|
+
- Fix broken link in the [model level notebook](https://py.contrails.org/notebooks/model-levels.html).
|
|
20
|
+
|
|
21
|
+
### Internals
|
|
22
|
+
|
|
23
|
+
- The `datalib.parse_pressure_levels` now sorts the pressure levels in ascending order and raises a ValueError if the input pressure levels are duplicated or have mixed signs.
|
|
24
|
+
- Add new `MetDataSource.is_single_level` property.
|
|
25
|
+
- Add `ecmwf.Divergence` (a subclass of `MetVariable`) for accessing ERA5 divergence data.
|
|
26
|
+
- Update the [specific humidity interpolation notebook](https://py.contrails.org/notebooks/specific-humidity-interpolation.html) to use the new `ARCOERA5` interface.
|
|
27
|
+
- Adds two parameters to `CoCipParams`, `compute_atr20` and `global_rf_to_atr20_factor`. Setting the former to `True` will add both `global_yearly_mean_rf` and `atr20` to the CoCiP output.
|
|
28
|
+
- Bump minimum pytest version to 8.1 to avoid failures in release workflow.
|
|
29
|
+
|
|
30
|
+
## v0.49.5
|
|
31
|
+
|
|
32
|
+
### Fixes
|
|
33
|
+
|
|
34
|
+
- Fix bug in which `Cocip._process_rad` dropped radiation dataset attributes introduced in v0.49.4.
|
|
35
|
+
|
|
4
36
|
## v0.49.4
|
|
5
37
|
|
|
6
38
|
### Breaking changes
|
|
@@ -72,7 +72,7 @@ dev-pycontrails-bada:
|
|
|
72
72
|
# -----------
|
|
73
73
|
|
|
74
74
|
ruff: black-check
|
|
75
|
-
ruff pycontrails tests
|
|
75
|
+
ruff check pycontrails tests
|
|
76
76
|
|
|
77
77
|
black:
|
|
78
78
|
black pycontrails tests
|
|
@@ -207,6 +207,7 @@ nb-test: ensure-era5-cached nb-clean-check nb-black-check nb-check-links
|
|
|
207
207
|
--ignore=docs/notebooks/GFS.ipynb \
|
|
208
208
|
--ignore=docs/notebooks/run-cocip-on-flight.ipynb \
|
|
209
209
|
--ignore=docs/notebooks/model-levels.ipynb \
|
|
210
|
+
--ignore=docs/notebooks/ARCO-ERA5.ipynb \
|
|
210
211
|
docs/notebooks docs/integrations
|
|
211
212
|
|
|
212
213
|
# Check for broken links in notebooks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.50.0
|
|
4
4
|
Summary: Python library for modeling aviation climate impacts
|
|
5
5
|
Author-email: Breakthrough Energy <py@contrails.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -47,7 +47,7 @@ Requires-Dist: platformdirs>=3.0; extra == "dev"
|
|
|
47
47
|
Requires-Dist: pre-commit>=2.10; extra == "dev"
|
|
48
48
|
Requires-Dist: psutil; extra == "dev"
|
|
49
49
|
Requires-Dist: pyarrow>=5.0; extra == "dev"
|
|
50
|
-
Requires-Dist: pytest>=
|
|
50
|
+
Requires-Dist: pytest>=8.1; extra == "dev"
|
|
51
51
|
Requires-Dist: pytest-cov>=2.11; extra == "dev"
|
|
52
52
|
Requires-Dist: requests>=2.25; extra == "dev"
|
|
53
53
|
Requires-Dist: ruff==0.1.15; extra == "dev"
|
|
@@ -72,6 +72,7 @@ Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
|
|
|
72
72
|
Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
|
|
73
73
|
Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
|
|
74
74
|
Requires-Dist: requests>=2.25; extra == "ecmwf"
|
|
75
|
+
Requires-Dist: lxml>=5.1.0; extra == "ecmwf"
|
|
75
76
|
Provides-Extra: gcp
|
|
76
77
|
Requires-Dist: google-cloud-storage>=2.1; extra == "gcp"
|
|
77
78
|
Requires-Dist: platformdirs>=3.0; extra == "gcp"
|
|
@@ -102,6 +103,7 @@ Requires-Dist: seaborn>=0.11; extra == "vis"
|
|
|
102
103
|
Requires-Dist: shapely>=2.0; extra == "vis"
|
|
103
104
|
Provides-Extra: zarr
|
|
104
105
|
Requires-Dist: fsspec>=2022.7.1; extra == "zarr"
|
|
106
|
+
Requires-Dist: gcsfs>=2022.7.1; extra == "zarr"
|
|
105
107
|
Requires-Dist: zarr>=2.12; extra == "zarr"
|
|
106
108
|
|
|
107
109
|
# pycontrails
|
|
@@ -50,6 +50,18 @@
|
|
|
50
50
|
howpublished = {https://www.movable-type.co.uk/scripts/latlong.html}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
@inproceedings{carverARCOERA5AnalysisReadyCloudOptimized2023,
|
|
54
|
+
title = {{{ARCO-ERA5}}: {{An Analysis-Ready Cloud-Optimized Reanalysis Dataset}}},
|
|
55
|
+
shorttitle = {{{ARCO-ERA5}}},
|
|
56
|
+
booktitle = {103rd {{AMS Annual Meeting}}},
|
|
57
|
+
author = {Carver, Robert W. and Merose, Alex},
|
|
58
|
+
year = {2023},
|
|
59
|
+
month = jan,
|
|
60
|
+
publisher = {{AMS}},
|
|
61
|
+
urldate = {2024-03-05},
|
|
62
|
+
abstract = {In this paper, we describe the design and methodology of creating an analysis-r...}
|
|
63
|
+
}
|
|
64
|
+
|
|
53
65
|
@article{celikel2001forecasting,
|
|
54
66
|
title = {Forecasting Civil Aviation Fuel Burn and Emissions in {{Europe}}},
|
|
55
67
|
author = {Celikel, A and Jelinek, F},
|
|
@@ -967,3 +979,23 @@
|
|
|
967
979
|
abstract = {{$<$}p{$><$}strong class="journal-contentHeaderColor"{$>$}Abstract.{$<$}/strong{$>$} The global commercial aircraft fleet in 2006 flew 31.26 million flights, burned 188.20 million metric tons of fuel, and covered 38.68 billion kilometers. This activity emitted substantial amounts of fossil-fuel combustion products within the upper troposphere and lower stratosphere that affect atmospheric composition and climate. The emissions products, such as carbon monoxide, carbon dioxide, oxides of nitrogen, sulfur compounds, and particulate matter, are not emitted uniformly over the Earth, so understanding the temporal and spatial distributions is important for modeling aviation's climate impacts. Global commercial aircraft emission data for 2004 and 2006, provided by the Volpe National Transportation Systems Center, were computed using the Federal Aviation Administration's Aviation Environmental Design Tool (AEDT). Continuous improvement in methodologies, including changes in AEDT's horizontal track methodologies, and an increase in availability of data make some differences between the 2004 and 2006 inventories incomparable. Furthermore, the 2004 inventory contained a significant over-count due to an imperfect data merge and daylight savings error. As a result, the 2006 emissions inventory is considered more representative of actual flight activity. Here, we analyze both 2004 and 2006 emissions, focusing on the latter, and provide corrected totals for 2004. Analysis of 2006 flight data shows that 92.5\% of fuel was burned in the Northern Hemisphere, 69.0\% between 30N and 60N latitudes, and 74.6\% was burned above 7 km. This activity led to 162.25 Tg of carbon from CO\textsubscript{2} emitted globally in 2006, more than half over three regions: the United States (25.5\%), Europe (14.6), and East Asia (11.1). Despite receiving less than one percent of global emissions, the Arctic receives a uniformly dispersed concentration of emissions with 95.2\% released at altitude where they have longer residence time than surface emissions. Finally, 85.2\% of all flights by number in 2006 were short-haul missions, yet those flights were responsible for only 39.7\% of total carbon from CO\textsubscript{2}. The following is a summary of these data which illustrates the global and regional aviation emissions footprints for 2004 and 2006, and provides temporal and spatial distribution statistics.{$<$}/p{$>$}},
|
|
968
980
|
langid = {english}
|
|
969
981
|
}
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
@article{yin_predicting_2023,
|
|
985
|
+
title = {Predicting the climate impact of aviation for en-route emissions: the algorithmic climate change function submodel {ACCF} 1.0 of {EMAC} 2.53},
|
|
986
|
+
volume = {16},
|
|
987
|
+
issn = {1991-959X},
|
|
988
|
+
shorttitle = {Predicting the climate impact of aviation for en-route emissions},
|
|
989
|
+
url = {https://gmd.copernicus.org/articles/16/3313/2023/},
|
|
990
|
+
doi = {10.5194/gmd-16-3313-2023},
|
|
991
|
+
abstract = {Using climate-optimized flight trajectories is one essential measure to reduce aviation's climate impact. Detailed knowledge of temporal and spatial climate sensitivity for aviation emissions in the atmosphere is required to realize such a climate mitigation measure. The algorithmic Climate Change Functions (aCCFs) represent the basis for such purposes. This paper presents the first version of the Algorithmic Climate Change Function submodel (ACCF 1.0) within the European Centre HAMburg general circulation model (ECHAM) and Modular Earth Submodel System (MESSy) Atmospheric Chemistry (EMAC) model framework. In the ACCF 1.0, we implement a set of aCCFs (version 1.0) to estimate the average temperature response over 20 years (ATR20) resulting from aviation CO2 emissions and non-CO2 impacts, such as NOx emissions (via ozone production and methane destruction), water vapour emissions, and contrail cirrus. While the aCCF concept has been introduced in previous research, here, we publish a consistent set of aCCF formulas in terms of fuel scenario, metric, and efficacy for the first time. In particular, this paper elaborates on contrail aCCF development, which has not been published before. ACCF 1.0 uses the simulated atmospheric conditions at the emission location as input to calculate the ATR20 per unit of fuel burned, per NOx emitted, or per flown kilometre. In this research, we perform quality checks of the ACCF 1.0 outputs in two aspects. Firstly, we compare climatological values calculated by ACCF 1.0 to previous studies. The comparison confirms that in the Northern Hemisphere between 150–300 hPa altitude (flight corridor), the vertical and latitudinal structure of NOx-induced ozone and H2O effects are well represented by the ACCF model output. The NOx-induced methane effects increase towards lower altitudes and higher latitudes, which behaves differently from the existing literature. For contrail cirrus, the climatological pattern of the ACCF model output corresponds with the literature, except that contrail-cirrus aCCF generates values at low altitudes near polar regions, which is caused by the conditions set up for contrail formation. Secondly, we evaluate the reduction of NOx-induced ozone effects through trajectory optimization, employing the tagging chemistry approach (contribution approach to tag species according to their emission categories and to inherit these tags to other species during the subsequent chemical reactions). The simulation results show that climate-optimized trajectories reduce the radiative forcing contribution from aviation NOx-induced ozone compared to cost-optimized trajectories. Finally, we couple the ACCF 1.0 to the air traffic simulation submodel AirTraf version 2.0 and demonstrate the variability of the flight trajectories when the efficacy of individual effects is considered. Based on the 1 d simulation results of a subset of European flights, the total ATR20 of the climate-optimized flights is significantly lower (roughly 50 \% less) than that of the cost-optimized flights, with the most considerable contribution from contrail cirrus. The CO2 contribution observed in this study is low compared with the non-CO2 effects, which requires further diagnosis.},
|
|
992
|
+
language = {English},
|
|
993
|
+
number = {11},
|
|
994
|
+
urldate = {2023-08-23},
|
|
995
|
+
journal = {Geoscientific Model Development},
|
|
996
|
+
author = {Yin, Feijia and Grewe, Volker and Castino, Federica and Rao, Pratik and Matthes, Sigrun and Dahlmann, Katrin and Dietmüller, Simone and Frömming, Christine and Yamashita, Hiroshi and Peter, Patrick and Klingaman, Emma and Shine, Keith P. and Lührs, Benjamin and Linke, Florian},
|
|
997
|
+
month = jun,
|
|
998
|
+
year = {2023},
|
|
999
|
+
note = {Publisher: Copernicus GmbH},
|
|
1000
|
+
pages = {3313--3334},
|
|
1001
|
+
}
|