pycontrails 0.50.2__tar.gz → 0.51.1__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.50.2 → pycontrails-0.51.1}/.zenodo.json +5 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/CHANGELOG.md +50 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/Makefile +11 -3
- {pycontrails-0.50.2 → pycontrails-0.51.1}/PKG-INFO +4 -4
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/api.rst +3 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/conf.py +5 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/ECMWF.ipynb +2439 -526
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/_version.py +2 -2
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/datalib.py +22 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/flight.py +87 -7
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/met.py +33 -5
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/polygon.py +10 -3
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/rgi_cython.c +125 -125
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/__init__.py +6 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/arco_era5.py +2 -53
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/common.py +4 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/era5.py +2 -6
- pycontrails-0.51.1/pycontrails/datalib/ecmwf/era5_model_level.py +481 -0
- pycontrails-0.51.1/pycontrails/datalib/ecmwf/hres_model_level.py +494 -0
- pycontrails-0.51.1/pycontrails/datalib/ecmwf/model_levels.py +79 -0
- pycontrails-0.51.1/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +139 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/variables.py +12 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/humidity_scaling/humidity_scaling.py +55 -8
- pycontrails-0.51.1/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/ps_model/ps_aircraft_params.py +19 -3
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/ps_model/ps_grid.py +21 -21
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/ps_model/ps_model.py +41 -6
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/ps_model/ps_operational_limits.py +15 -6
- pycontrails-0.50.2/pycontrails/models/ps_model/static/ps-aircraft-params-20240417.csv → pycontrails-0.51.1/pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv +16 -12
- pycontrails-0.51.1/pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv +103 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/thermo.py +1 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/types.py +3 -2
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails.egg-info/PKG-INFO +4 -4
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails.egg-info/SOURCES.txt +8 -2
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails.egg-info/requires.txt +3 -3
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pyproject.toml +7 -5
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/conftest.py +2 -2
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/cocip-contrail-output.json +983 -983
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/cocip-contrail-output2.json +4118 -4118
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/cocip-flight-output.json +241 -241
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/cocip-flight-output2.json +1394 -1394
- pycontrails-0.51.1/tests/unit/static/cocip-output-contrail-edges.json +242 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cocip_grid.py +3 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cocip_grid_parity.py +3 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_datalib.py +18 -0
- pycontrails-0.51.1/tests/unit/test_ecmwf.py +1145 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_flight.py +32 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_humidity_scaling.py +99 -1
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_met.py +98 -4
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_polygons.py +31 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_ps_model.py +31 -18
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_thermo_sac.py +14 -1
- pycontrails-0.50.2/tests/unit/static/cocip-output-contrail-edges.json +0 -242
- pycontrails-0.50.2/tests/unit/test_ecmwf.py +0 -596
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/dependabot.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/pull_request_template.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/benchmark.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/docs.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/doctest.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/release.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/scorecard.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.github/workflows/test.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.gitignore +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/.pre-commit-config.yaml +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/CONTRIBUTING.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/LICENSE +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/NOTICE +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/README.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/RELEASE.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/css/style.css +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/img/colab.png +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/_static/pycontrails.bib +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/changelog.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/contributing.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/develop.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/flight.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/index.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/install.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/integrations/ACCF.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/literature.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/meteorology.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/models.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/AircraftPerformance.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/Cache.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/CoCiP.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/Flight.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/GFS.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/GOES.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/ISSR.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/Meteorology.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/SAC.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/advection.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/airports.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/.gitignore +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/flight-ap.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/flight-cocip.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/flight-fdr.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/flight-noisy.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/data/flight.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/flightplan.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/model-levels.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/notebooks.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/observations.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/tutorials.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/docs/utilities.rst +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/aircraft_performance.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/cache.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/coordinates.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/fleet.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/flightplan.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/interpolation.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/met_var.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/models.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/core/vector.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/hres.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/ecmwf/ifs.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/gfs/gfs.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/gfs/variables.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/goes.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/spire/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/datalib/spire/spire.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/accf.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/cocip.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/cocip_params.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/contrail_properties.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/output_formats.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/radiative_forcing.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/wake_vortex.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- /pycontrails-0.50.2/pycontrails/models/humidity_scaling/quantiles/era5-quantiles.pq → /pycontrails-0.51.1/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/issr.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/pcr.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/sac.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/models/tau_cirrus.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/constants.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/geo.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/jet.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/py.typed +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/dependencies.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/setup.cfg +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/setup.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/_deprecated.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/fixtures/cocip-met.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/__init__.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_accf.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_airports.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cocip.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_dtypes.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_fleet.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_flightplan.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_gfs.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_grid_to_netcdf.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_init.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_models.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_pcc.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_sac_issr.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_units.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_vector.py +0 -0
- {pycontrails-0.50.2 → pycontrails-0.51.1}/tests/unit/test_zarr.py +0 -0
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
{
|
|
21
21
|
"name": "Tom Dean",
|
|
22
22
|
"affiliation": "Breakthrough Energy"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "Tristan Abbott",
|
|
26
|
+
"affiliation": "Breakthrough Energy"
|
|
23
27
|
}
|
|
24
28
|
],
|
|
25
29
|
"license": "Apache-2.0",
|
|
@@ -42,4 +46,4 @@
|
|
|
42
46
|
"type": "Researcher"
|
|
43
47
|
}
|
|
44
48
|
]
|
|
45
|
-
}
|
|
49
|
+
}
|
|
@@ -1,6 +1,55 @@
|
|
|
1
|
-
|
|
2
1
|
# Changelog
|
|
3
2
|
|
|
3
|
+
## v0.51.1
|
|
4
|
+
|
|
5
|
+
### Breaking changes
|
|
6
|
+
|
|
7
|
+
- Average fuel burn in the PS model is increased by 2.5\% unless `engine_deterioration_factor` is overriden.
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- PS model: Support four aircraft types, including `E75L`, `E75S`, `E290`, and `E295`
|
|
12
|
+
- PS model: Integrate `ps_synonym_list` to increase PS model aircraft type coverage to 102
|
|
13
|
+
- PS model: Account for increase in fuel consumption due to engine deterioration between maintenance cycle
|
|
14
|
+
|
|
15
|
+
### Internals
|
|
16
|
+
|
|
17
|
+
- Calculate rate of climb and descent (ROCD) using hydrostatic equation to improve accuracy.
|
|
18
|
+
- PS model: Move engine performance buffer from `c_t_available` to `tr_max`.
|
|
19
|
+
- Set `tr_max` buffer to +20%, as recommended by Ian Poll.
|
|
20
|
+
|
|
21
|
+
## v0.51.0
|
|
22
|
+
|
|
23
|
+
### Breaking changes
|
|
24
|
+
|
|
25
|
+
- Geodesic interpolation is now used in `Flight.resample_and_fill` when the great circle distance between waypoints (rather than the total segment length including vertical displacement) exceeds a threshold. This may change the interpolation method used when resampling flight segments with lengths close to the geodesic interpolation threshold.
|
|
26
|
+
- Fixed typo in `thermo.c_pm` will decrease computed values of moist heat capacity with non-zero specific humidity. We expect the downstream impact on contrail predictions by `ISSR`, `SAC`, `PCR`, and `Cocip` models to be minimal.
|
|
27
|
+
- `np.nan` is now used as the default `fill_value` in `MetDataArray.to_polygon_feature` and `MetDataArray.to_polygon_feature_collection`. This ensures that NaN values are never included in polygon interiors unless a non-NaN `fill_value` is explicitly passed as a keyword argument.
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
- Add `ERA5ModelLevel` and `HRESModelLevel` interfaces for accessing ERA5 and HRES data on model levels.
|
|
32
|
+
- Update [ECMWF tutorial notebook](https://py.contrails.org/notebooks/ECMWF.html) with instructions for using model-level datalibs.
|
|
33
|
+
- Add `HistogramMatching` humidity scaling calibrated for model-level ERA5 data.
|
|
34
|
+
- Modify `polygon.find_multipolygon`, `MetDataArray.to_polygon_feature`, `MetDataArray.to_polygon_feature_collection`, and `MetDataArray.to_polyhedra` to permit finding regions with values above or below a threshold.
|
|
35
|
+
|
|
36
|
+
### Fixes
|
|
37
|
+
|
|
38
|
+
- Use horizontal great circle distance to determine whether geodesic interpolation is used in `Flight.resample_and_fill`. This ensures geodesic interpolation is used between sufficiently distant waypoints even when one or both waypoints contain NaN altitude data.
|
|
39
|
+
- Fix typo in moist heat capacity equation `thermo.c_pm`.
|
|
40
|
+
|
|
41
|
+
### Internals
|
|
42
|
+
|
|
43
|
+
- Create static copy of dataframe for determining pressure at ECMWF model levels.
|
|
44
|
+
- Extract model-level utilities in `ARCOERA5` to their own module for reuse in `ERA5ModelLevel` and `HRESModelLevel`.
|
|
45
|
+
- Update Makefile so `make ensure-era5-cached` uses default cache directory when run locally.
|
|
46
|
+
- Bump pinned black and ruff versions.
|
|
47
|
+
- Disable mypy type checking on `functools.wraps` in `support_arraylike` decorator to avoid error that appears starting on mypy 1.10.0.
|
|
48
|
+
- Update pinned `Cocip` test output values after moist heat capacity bugfix.
|
|
49
|
+
- Add static files with ECMWF model levels and model-level ERA5 RHI quantiles to packaged data.
|
|
50
|
+
- Pass `exc_type=ImportError` to `pytest.importorskip` in test fixtures that use pycontrails extensions to suppress pytest warning when extensions are not installed.
|
|
51
|
+
- Bump minimum pytest version 8.2 to ensure the `exc_type` kwarg is available.
|
|
52
|
+
|
|
4
53
|
## v0.50.2
|
|
5
54
|
|
|
6
55
|
### Breaking changes
|
|
@@ -142,12 +142,11 @@ ensure-gcp-credentials:
|
|
|
142
142
|
"See https://cloud.google.com/docs/authentication/application-default-credentials$(END_COLOR)"; \
|
|
143
143
|
exit 1)
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
# Cache common ERA5 data for nb-tests and doctests in DiskCacheStore(cache_dir=".doc-test-cache")
|
|
145
|
+
# Cache common ERA5 data for nb-tests and doctests in DiskCacheStore
|
|
147
146
|
ensure-era5-cached:
|
|
148
147
|
python -c 'from pycontrails.datalib.ecmwf import ERA5; \
|
|
149
148
|
from pycontrails import DiskCacheStore; \
|
|
150
|
-
cache = DiskCacheStore(
|
|
149
|
+
cache = DiskCacheStore(); \
|
|
151
150
|
time = "2022-03-01", "2022-03-01T23"; \
|
|
152
151
|
lev = [300, 250, 200]; \
|
|
153
152
|
met_vars = ["t", "q", "u", "v", "w", "ciwc", "z", "cc"]; \
|
|
@@ -250,4 +249,13 @@ docs-serve: doc8
|
|
|
250
249
|
|
|
251
250
|
docs-pdf: doc8
|
|
252
251
|
sphinx-build -b latex $(DOCS_DIR) $(DOCS_BUILD_DIR)/latex
|
|
252
|
+
|
|
253
|
+
# GIF in notebooks/advection.ipynb kills the pdflatex process
|
|
254
|
+
# If advection notebook changes, this will have to get updated
|
|
255
|
+
rm docs/_build/latex/notebooks_advection_20_0.png
|
|
256
|
+
|
|
257
|
+
# this needs to get run twice
|
|
253
258
|
cd $(DOCS_BUILD_DIR)/latex && make
|
|
259
|
+
cd $(DOCS_BUILD_DIR)/latex && make
|
|
260
|
+
|
|
261
|
+
echo "PDF exported to $(DOCS_BUILD_DIR)/latex/pycontrails.pdf"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.51.1
|
|
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
|
|
@@ -36,7 +36,7 @@ Requires-Dist: xarray>=2022.3
|
|
|
36
36
|
Provides-Extra: complete
|
|
37
37
|
Requires-Dist: pycontrails[ecmwf,gcp,gfs,goes,jupyter,pyproj,vis,zarr]; extra == "complete"
|
|
38
38
|
Provides-Extra: dev
|
|
39
|
-
Requires-Dist: black[jupyter]==24.
|
|
39
|
+
Requires-Dist: black[jupyter]==24.4.1; extra == "dev"
|
|
40
40
|
Requires-Dist: dep_license; extra == "dev"
|
|
41
41
|
Requires-Dist: fastparquet>=0.8; extra == "dev"
|
|
42
42
|
Requires-Dist: ipdb>=0.13; extra == "dev"
|
|
@@ -47,10 +47,10 @@ 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>=8.
|
|
50
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
51
51
|
Requires-Dist: pytest-cov>=2.11; extra == "dev"
|
|
52
52
|
Requires-Dist: requests>=2.25; extra == "dev"
|
|
53
|
-
Requires-Dist: ruff==0.1
|
|
53
|
+
Requires-Dist: ruff==0.4.1; extra == "dev"
|
|
54
54
|
Provides-Extra: docs
|
|
55
55
|
Requires-Dist: doc8>=1.1; extra == "docs"
|
|
56
56
|
Requires-Dist: furo>=2023.3; extra == "docs"
|
|
@@ -55,8 +55,11 @@ ECMWF
|
|
|
55
55
|
:toctree: api/
|
|
56
56
|
|
|
57
57
|
datalib.ecmwf.ERA5
|
|
58
|
+
datalib.ecmwf.era5_model_level
|
|
58
59
|
datalib.ecmwf.HRES
|
|
60
|
+
datalib.ecmwf.hres_model_level
|
|
59
61
|
datalib.ecmwf.hres.get_forecast_filename
|
|
62
|
+
datalib.ecmwf.model_levels
|
|
60
63
|
datalib.ecmwf.IFS
|
|
61
64
|
datalib.ecmwf.variables
|
|
62
65
|
|
|
@@ -37,6 +37,7 @@ extensions = [
|
|
|
37
37
|
"sphinx.ext.autosummary",
|
|
38
38
|
"sphinx.ext.todo",
|
|
39
39
|
"sphinx.ext.intersphinx",
|
|
40
|
+
"sphinx.ext.imgconverter",
|
|
40
41
|
"sphinx.ext.mathjax",
|
|
41
42
|
"sphinx.ext.napoleon",
|
|
42
43
|
"sphinx.ext.extlinks",
|
|
@@ -269,3 +270,7 @@ html_sourcelink_suffix = ""
|
|
|
269
270
|
html_js_files = [
|
|
270
271
|
("https://plausible.io/js/script.js", {"data-domain": "py.contrails.org", "defer": "defer"}),
|
|
271
272
|
]
|
|
273
|
+
|
|
274
|
+
# -- Options for Latex output -------------------------------------------------
|
|
275
|
+
|
|
276
|
+
latex_logo = "_static/img/logo.png"
|