pycontrails 0.54.0__tar.gz → 0.54.2__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.54.0 → pycontrails-0.54.2}/CHANGELOG.md +36 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/Makefile +1 -0
- {pycontrails-0.54.0/pycontrails.egg-info → pycontrails-0.54.2}/PKG-INFO +5 -4
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/conf.py +2 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/index.rst +1 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/integrations/ACCF.ipynb +1 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/integrations/APCEMM.ipynb +2 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/models.rst +3 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ARCO-ERA5.ipynb +4 -4
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/CoCiP.ipynb +1 -1
- pycontrails-0.54.2/docs/notebooks/CoCiPGrid.ipynb +731 -0
- pycontrails-0.54.2/docs/notebooks/Flight.ipynb +1208 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ISSR.ipynb +1 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/SAC.ipynb +1 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/specific-humidity-interpolation.ipynb +4 -4
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/_version.py +2 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/aircraft_performance.py +16 -5
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/cache.py +14 -10
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/fleet.py +27 -34
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/flight.py +31 -91
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/met.py +64 -67
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/rgi_cython.c +155 -155
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/vector.py +51 -82
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/__init__.py +2 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/arco_era5.py +11 -6
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/common.py +7 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/era5.py +10 -5
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/era5_model_level.py +12 -8
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/hres.py +12 -7
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/hres_model_level.py +10 -5
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/ifs.py +11 -6
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/model_levels.py +3 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/gfs.py +52 -34
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/variables.py +6 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip.py +7 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/cocip_grid.py +5 -3
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/humidity_scaling.py +12 -7
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_model.py +47 -27
- {pycontrails-0.54.0 → pycontrails-0.54.2/pycontrails.egg-info}/PKG-INFO +5 -4
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/SOURCES.txt +1 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/requires.txt +6 -3
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pyproject.toml +4 -4
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/cocip-met.py +1 -1
- pycontrails-0.54.2/tests/unit/__init__.py +19 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/conftest.py +1 -43
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_accf.py +31 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_grid.py +7 -5
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_grid_parity.py +1 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_fleet.py +2 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_flight.py +0 -45
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_humidity_scaling.py +7 -2
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_met.py +18 -1
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_ps_model.py +46 -5
- pycontrails-0.54.0/docs/notebooks/Flight.ipynb +0 -1205
- pycontrails-0.54.0/tests/unit/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/dependabot.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/pull_request_template.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/docs.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/doctest.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/release.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/scorecard.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.github/workflows/test.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.gitignore +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.pre-commit-config.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/.zenodo.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/CONTRIBUTING.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/LICENSE +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/NOTICE +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/README.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/RELEASE.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/css/style.css +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/colab.png +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/_static/pycontrails.bib +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/api.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/changelog.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/contributing.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/develop.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/flight.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/install.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/literature.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/meteorology.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/AircraftPerformance.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Cache.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/ECMWF.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/GFS.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/GOES.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Landsat.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Meteorology.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/Sentinel.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/advection.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/airports.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/.gitignore +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-ap.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-cocip.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-fdr.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight-noisy.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/flight.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/flightplan.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/model-levels.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/notebooks.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/observations.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/tutorials.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/docs/utilities.rst +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/coordinates.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/flightplan.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/interpolation.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/met_var.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/models.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/polygon.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/search.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/static/bq_roi_query.sql +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_leo_utils/vis.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/_met_utils/metsource.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/ecmwf/variables.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/goes.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/landsat.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/sentinel.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/datalib/spire.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/accf.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/apcemm.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/inputs.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/apcemm/utils.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip_params.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/contrail_properties.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/output_formats.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/radiative_forcing.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/wake_vortex.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/issr.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/pcr.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_grid.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/sac.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/models/tau_cirrus.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/constants.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/geo.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/jet.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/thermo.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/py.typed +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/dependencies.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails/utils/types.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/setup.cfg +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/setup.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/__init__.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/_deprecated.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-contrail-output.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-contrail-output2.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-flight-output.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-flight-output2.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-ml.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_airports.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_apcemm.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_datalib_metsource.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_dtypes.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_ecmwf.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_flightplan.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_gfs.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_grid_to_netcdf.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_init.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_leo.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_models.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_pcc.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_polygons.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_sac_issr.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_thermo_sac.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_units.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_vector.py +0 -0
- {pycontrails-0.54.0 → pycontrails-0.54.2}/tests/unit/test_zarr.py +0 -0
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.54.2
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Add `cache_download` parameter to the `GFSForecast` interface. When set to `True`, downloaded grib data is cached locally. This is consistent with the behavior of the `ERA5ModelLevel` and `HRESModelLevel` interfaces.
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- Update GFS variable names "uswrf" -> "suswrf" and "ulwrf" -> "sulwrf". This accommodates a breaking change introduced in [eccodes 2.38](https://confluence.ecmwf.int/display/MTG2US/Changes+in+ecCodes+version+2.38.0+compared+to+the+previous+version#ChangesinecCodesversion2.38.0comparedtothepreviousversion-Changedshortnames).
|
|
12
|
+
|
|
13
|
+
### Internals
|
|
14
|
+
|
|
15
|
+
- Remove `overrides` dependency. Require `typing-extensions` for python < 3.12.
|
|
16
|
+
- Upgrade some type hints for more modern python language features.
|
|
17
|
+
|
|
18
|
+
## v0.54.1
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- Add [CoCiP Grid notebook](https://py.contrails.org/notebooks/CoCiPGrid.html) example to documentation.
|
|
23
|
+
- Implement `PSFlight.eval` on a `Fleet` source.
|
|
24
|
+
|
|
25
|
+
### Breaking changes
|
|
26
|
+
|
|
27
|
+
- Remove `attrs["crs"]` usage from `GeoVectorDataset` and child classes (`Flight`, `Fleet`). All spatial data is assumed to be EPSG:4326 (WGS84). This was previously assumed implicitly, but now the `crs` attribute is removed from the `attrs` dictionary.
|
|
28
|
+
- Change the return type of `GeoVectorDataset.transform_crs` to a pair of numpy arrays representing `x` and `y` coordinates in the target CRS.
|
|
29
|
+
- Remove deprecated `MetDataset.variables` property in favor of `MetDataset.indexes`.
|
|
30
|
+
- Remove `**kwargs` in `MetDataArray` constructor.
|
|
31
|
+
- Rename `ARCOERA5` to `ERA5ARCO` for consistency with the `ERA5` and `ERA5ModelLevel` interfaces.
|
|
32
|
+
|
|
33
|
+
### Fixes
|
|
34
|
+
|
|
35
|
+
- Fix the integration time step in `CocipGrid.calc_evolve_one_step`. The previous implementation assumed a time interval of `params["dt_integration"]`. This may not be the case for all `source` parameters (for example, this could occur if running `CocipGrid` over a collection of ADS-B waypoints).
|
|
36
|
+
- Raise an exception in constructing `MetDataset(ds, copy=False)` when `ds["level"]` has float32 dtype. Per interpolation conventions, all coordinate variables must have float64 dtype. (This was previously enforced in longitude and latitude, but was overlooked in the level coordinate.)
|
|
37
|
+
- Allow `AircraftPerformance.ensure_true_airspeed_on_source` to use `eastward_wind` and `northward_wind` fields on the `source` if available. This is useful when the `source` has already been interpolated to met data.
|
|
38
|
+
|
|
3
39
|
## v0.54.0
|
|
4
40
|
|
|
5
41
|
### Features
|
|
@@ -220,6 +220,7 @@ nb-check-links:
|
|
|
220
220
|
--check-links-ignore "https://doi.org/10.1021/acs.est.2c05781" \
|
|
221
221
|
--check-links-ignore "https://github.com/contrailcirrus/pycontrails-bada" \
|
|
222
222
|
--check-links-ignore "https://ourairports.com" \
|
|
223
|
+
--check-links-ignore "https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast" \
|
|
223
224
|
docs/notebooks/*.ipynb
|
|
224
225
|
|
|
225
226
|
# Execute all notebooks in docs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.54.
|
|
3
|
+
Version: 0.54.2
|
|
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
|
|
@@ -29,9 +29,9 @@ License-File: LICENSE
|
|
|
29
29
|
License-File: NOTICE
|
|
30
30
|
Requires-Dist: dask>=2022.3
|
|
31
31
|
Requires-Dist: numpy>=1.22
|
|
32
|
-
Requires-Dist: overrides>=6.1
|
|
33
32
|
Requires-Dist: pandas>=2.2
|
|
34
33
|
Requires-Dist: scipy>=1.10
|
|
34
|
+
Requires-Dist: typing-extensions>=4.5; python_version < "3.12"
|
|
35
35
|
Requires-Dist: xarray>=2022.3
|
|
36
36
|
Provides-Extra: complete
|
|
37
37
|
Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
|
|
@@ -67,7 +67,7 @@ Requires-Dist: sphinxext.opengraph>=0.8; extra == "docs"
|
|
|
67
67
|
Provides-Extra: ecmwf
|
|
68
68
|
Requires-Dist: cdsapi>=0.4; extra == "ecmwf"
|
|
69
69
|
Requires-Dist: cfgrib>=0.9; extra == "ecmwf"
|
|
70
|
-
Requires-Dist: eccodes>=
|
|
70
|
+
Requires-Dist: eccodes>=2.38; extra == "ecmwf"
|
|
71
71
|
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"
|
|
@@ -79,7 +79,8 @@ Requires-Dist: tqdm>=4.61; extra == "gcp"
|
|
|
79
79
|
Provides-Extra: gfs
|
|
80
80
|
Requires-Dist: boto3>=1.20; extra == "gfs"
|
|
81
81
|
Requires-Dist: cfgrib>=0.9; extra == "gfs"
|
|
82
|
-
Requires-Dist: eccodes>=
|
|
82
|
+
Requires-Dist: eccodes>=2.38; extra == "gfs"
|
|
83
|
+
Requires-Dist: netcdf4>=1.6.1; extra == "gfs"
|
|
83
84
|
Requires-Dist: platformdirs>=3.0; extra == "gfs"
|
|
84
85
|
Requires-Dist: tqdm>=4.61; extra == "gfs"
|
|
85
86
|
Provides-Extra: jupyter
|
|
@@ -78,6 +78,7 @@ suppress_warnings = ["myst.header"]
|
|
|
78
78
|
# Set up mapping for other projects' docs
|
|
79
79
|
intersphinx_mapping = {
|
|
80
80
|
"numpy": ("https://numpy.org/doc/stable/", None),
|
|
81
|
+
"open3d": ("https://www.open3d.org/docs/release/", None),
|
|
81
82
|
"pandas": ("https://pandas.pydata.org/pandas-docs/dev/", None),
|
|
82
83
|
"pyproj": ("https://pyproj4.github.io/pyproj/stable/", None),
|
|
83
84
|
"python": ("https://docs.python.org/3/", None),
|
|
@@ -170,7 +171,7 @@ autodoc_typehints = "none"
|
|
|
170
171
|
|
|
171
172
|
# autodoc options
|
|
172
173
|
autoclass_content = "class" # only include docstring from Class (not __init__ method)
|
|
173
|
-
autodoc_inherit_docstrings =
|
|
174
|
+
autodoc_inherit_docstrings = True
|
|
174
175
|
autodoc_default_options = {
|
|
175
176
|
"members": None, # means yes/true/on
|
|
176
177
|
"undoc-members": None,
|
|
@@ -92,7 +92,7 @@ Learn more on `contrails.org <https://contrails.org>`_.
|
|
|
92
92
|
:alt: Unit test
|
|
93
93
|
:target: https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml
|
|
94
94
|
|
|
95
|
-
.. |Docs| image:: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg
|
|
95
|
+
.. |Docs| image:: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg?event=push
|
|
96
96
|
:alt: Docs
|
|
97
97
|
:target: https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml
|
|
98
98
|
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"## Download meteorology data from ECMWF\n",
|
|
66
66
|
"\n",
|
|
67
67
|
"This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
|
|
68
|
-
"This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/
|
|
68
|
+
"This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/how-to-api) and local `~/.cdsapirc` file with credentials."
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
{
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"\n",
|
|
35
35
|
"from pycontrails import Flight, MetVariable\n",
|
|
36
36
|
"from pycontrails.core.met_var import Geopotential\n",
|
|
37
|
-
"from pycontrails.datalib.ecmwf import
|
|
37
|
+
"from pycontrails.datalib.ecmwf import ERA5ARCO\n",
|
|
38
38
|
"from pycontrails.models.apcemm.apcemm import APCEMM\n",
|
|
39
39
|
"from pycontrails.models.humidity_scaling import HistogramMatching\n",
|
|
40
40
|
"from pycontrails.models.issr import ISSR\n",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"outputs": [],
|
|
75
75
|
"source": [
|
|
76
76
|
"variables = (v if isinstance(v, MetVariable) else Geopotential for v in APCEMM.met_variables)\n",
|
|
77
|
-
"era5ml =
|
|
77
|
+
"era5ml = ERA5ARCO(time=time_bounds, variables=APCEMM.met_variables)"
|
|
78
78
|
]
|
|
79
79
|
},
|
|
80
80
|
{
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"source": [
|
|
7
7
|
"# ARCO ERA5\n",
|
|
8
8
|
"\n",
|
|
9
|
-
"This notebook demonstrates how to load [ARCO ERA5](https://cloud.google.com/storage/docs/public-datasets/era5) data from [Google Cloud Storage](https://cloud.google.com/storage) through the pycontrails `
|
|
9
|
+
"This notebook demonstrates how to load [ARCO ERA5](https://cloud.google.com/storage/docs/public-datasets/era5) data from [Google Cloud Storage](https://cloud.google.com/storage) through the pycontrails `ERA5ARCO` interface."
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
12
|
{
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"import xarray as xr\n",
|
|
23
23
|
"\n",
|
|
24
24
|
"from pycontrails import Flight, MetDataset\n",
|
|
25
|
-
"from pycontrails.datalib.ecmwf import
|
|
25
|
+
"from pycontrails.datalib.ecmwf import ERA5ARCO\n",
|
|
26
26
|
"from pycontrails.models.cocip import Cocip\n",
|
|
27
27
|
"from pycontrails.models.humidity_scaling import ConstantHumidityScaling\n",
|
|
28
28
|
"from pycontrails.models.issr import ISSR\n",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"source": [
|
|
48
48
|
"time = (\"2019-01-01T00\", \"2019-01-01T12\")\n",
|
|
49
49
|
"\n",
|
|
50
|
-
"era5_pl =
|
|
50
|
+
"era5_pl = ERA5ARCO(\n",
|
|
51
51
|
" time=time,\n",
|
|
52
52
|
" variables=(*Cocip.met_variables, *Cocip.optional_met_variables),\n",
|
|
53
53
|
" cachestore=None,\n",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"met = era5_pl.open_metdataset()\n",
|
|
56
56
|
"\n",
|
|
57
57
|
"\n",
|
|
58
|
-
"era5_sl =
|
|
58
|
+
"era5_sl = ERA5ARCO(\n",
|
|
59
59
|
" time=time,\n",
|
|
60
60
|
" variables=Cocip.rad_variables,\n",
|
|
61
61
|
" pressure_levels=-1,\n",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"## Download meteorology data from ECMWF\n",
|
|
45
45
|
"\n",
|
|
46
46
|
"This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
|
|
47
|
-
"This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/
|
|
47
|
+
"This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/how-to-api) and local `~/.cdsapirc` file with credentials.\n",
|
|
48
48
|
"\n",
|
|
49
49
|
"> Note this will download ~1 GB of meteorology data to your computer"
|
|
50
50
|
]
|