pycontrails 0.54.7__tar.gz → 0.54.8__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.7 → pycontrails-0.54.8}/.github/workflows/release.yaml +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/workflows/scorecard.yaml +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/CHANGELOG.md +18 -0
- {pycontrails-0.54.7/pycontrails.egg-info → pycontrails-0.54.8}/PKG-INFO +3 -2
- pycontrails-0.54.8/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/index.rst +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/_version.py +9 -4
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/cache.py +4 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/flightplan.py +10 -2
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/met.py +12 -7
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/rgi_cython.c +155 -155
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/vector.py +11 -3
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/spire/spire.py +6 -8
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/cocip.py +14 -5
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/contrail_properties.py +4 -6
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/output_formats.py +12 -4
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/radiative_forcing.py +2 -8
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocipgrid/cocip_grid.py +11 -11
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/humidity_scaling/humidity_scaling.py +49 -4
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/ps_model/ps_aircraft_params.py +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/ps_model/ps_grid.py +22 -22
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/ps_model/ps_model.py +3 -6
- pycontrails-0.54.7/pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv → pycontrails-0.54.8/pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv +58 -57
- pycontrails-0.54.7/pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv → pycontrails-0.54.8/pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv +1 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/tau_cirrus.py +1 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/jet.py +5 -4
- pycontrails-0.54.7/pycontrails/physics/static/iata-cargo-load-factors-20241115.csv → pycontrails-0.54.8/pycontrails/physics/static/iata-cargo-load-factors-20250221.csv +3 -0
- pycontrails-0.54.7/pycontrails/physics/static/iata-passenger-load-factors-20241115.csv → pycontrails-0.54.8/pycontrails/physics/static/iata-passenger-load-factors-20250221.csv +3 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8/pycontrails.egg-info}/PKG-INFO +3 -2
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails.egg-info/SOURCES.txt +4 -4
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cocip_grid_parity.py +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_flight.py +1 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_flightplan.py +15 -5
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_grid_to_netcdf.py +2 -1
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_humidity_scaling.py +53 -5
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_ps_model.py +7 -7
- pycontrails-0.54.7/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/dependabot.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/pull_request_template.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/workflows/docs.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/workflows/doctest.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.github/workflows/test.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.gitignore +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.pre-commit-config.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/.zenodo.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/CONTRIBUTING.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/LICENSE +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/Makefile +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/NOTICE +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/README.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/RELEASE.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/_static/css/style.css +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/_static/img/colab.png +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/_static/pycontrails.bib +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/api.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/changelog.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/conf.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/contributing.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/develop.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/flight.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/install.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/integrations/ACCF.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/integrations/APCEMM.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/literature.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/meteorology.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/models.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/AircraftPerformance.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/Cache.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/CoCiP.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/CoCiPGrid.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/ECMWF.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/Flight.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/GFS.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/GOES.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/ISSR.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/Landsat.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/Meteorology.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/SAC.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/Sentinel.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/advection.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/airports.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/.gitignore +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/flight-ap.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/flight-cocip.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/flight-fdr.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/flight-noisy.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/flight.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/flightplan.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/model-levels.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/notebooks.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/observations.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/tutorials.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/docs/utilities.rst +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/aircraft_performance.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/coordinates.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/fleet.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/flight.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/interpolation.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/met_var.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/models.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/polygon.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/_leo_utils/search.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/_leo_utils/static/bq_roi_query.sql +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/_leo_utils/vis.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/_met_utils/metsource.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/common.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/era5.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/hres.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/ifs.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/model_levels.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/ecmwf/variables.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/gfs/gfs.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/gfs/variables.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/goes.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/landsat.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/sentinel.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/spire/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/datalib/spire/exceptions.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/accf.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/apcemm/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/apcemm/apcemm.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/apcemm/inputs.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/apcemm/utils.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/cocip_params.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/wake_vortex.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/issr.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/pcr.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/models/sac.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/constants.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/geo.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/thermo.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/py.typed +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/dependencies.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails/utils/types.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails.egg-info/requires.txt +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/pyproject.toml +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/setup.cfg +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/setup.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/_deprecated.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/fixtures/cocip-met.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/__init__.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/conftest.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-contrail-output.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-contrail-output2.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-flight-output.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-flight-output2.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-ecmwf-ml.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_accf.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_airports.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_apcemm.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cocip.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cocip_grid.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_datalib_metsource.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_dtypes.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_ecmwf.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_fleet.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_gfs.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_init.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_leo.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_met.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_models.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_pcc.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_polygons.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_sac_issr.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_thermo_sac.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_units.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_vector.py +0 -0
- {pycontrails-0.54.7 → pycontrails-0.54.8}/tests/unit/test_zarr.py +0 -0
|
@@ -40,7 +40,7 @@ jobs:
|
|
|
40
40
|
|
|
41
41
|
# https://cibuildwheel.readthedocs.io/en/stable/options/#testing
|
|
42
42
|
- name: Build wheels
|
|
43
|
-
uses: pypa/cibuildwheel@v2.
|
|
43
|
+
uses: pypa/cibuildwheel@v2.23
|
|
44
44
|
env:
|
|
45
45
|
CIBW_BUILD: cp310-* cp311-* cp312-* cp313-*
|
|
46
46
|
CIBW_SKIP: '*-win32 *-manylinux_i686 *-musllinux*'
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.54.8
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Update the Poll-Schumann Aircraft Performance model:
|
|
8
|
+
- Support the Support Boeing 737 MAX 10 aircraft type.
|
|
9
|
+
- Update aircraft maximum landing weight, maximum zero fuel weight, operating empty weight, and maximum payload within the static CSVs for existing aircraft types as recommended by Ian Poll.
|
|
10
|
+
- Add `ExponentialBoostLatitudeCorrectionHumidityScaling` calibrated for model-level ERA5 data.
|
|
11
|
+
|
|
12
|
+
### Internals
|
|
13
|
+
|
|
14
|
+
- Update the `pycontrails.physics.static` CSV files to include newly released global and regional passenger and cargo load factor data from IATA (Oct-2024 to Dec-2024).
|
|
15
|
+
- Attach `n_ice_per_m_0` and `f_surv` to the downwash flight computed in the `Cocip` runtime. This data is now saved as part of the `Cocip` output.
|
|
16
|
+
- Rename and modify `contrail_properties.ice_particle_number` to `contrail_properties.initial_ice_particle_number`.
|
|
17
|
+
- Rename `ValidateTrajectoryHandler.CRUISE_ROCD_THRESHOLD_FPS` -> `ValidateTrajectoryHandler.ROCD_THRESHOLD_FPS`. Update its value from 4.2 ft/sec -> 83.25 ft/sec.
|
|
18
|
+
- Remove the altitude filter on the `ValidateTrajectoryHandler` ROCD check. Now all waypoints are checked for ROCD violations.
|
|
19
|
+
- Correctly parse "DOF" (departure date) field from flight plan in the `flightplan` module.
|
|
20
|
+
|
|
3
21
|
## v0.54.7
|
|
4
22
|
|
|
5
23
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.54.
|
|
3
|
+
Version: 0.54.8
|
|
4
4
|
Summary: Python library for modeling aviation climate impacts
|
|
5
5
|
Author-email: "Contrails.org" <py@contrails.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -111,6 +111,7 @@ Provides-Extra: zarr
|
|
|
111
111
|
Requires-Dist: fsspec>=2022.7.1; extra == "zarr"
|
|
112
112
|
Requires-Dist: gcsfs>=2022.7.1; extra == "zarr"
|
|
113
113
|
Requires-Dist: zarr>=2.12; extra == "zarr"
|
|
114
|
+
Dynamic: license-file
|
|
114
115
|
|
|
115
116
|
# pycontrails
|
|
116
117
|
|
|
Binary file
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
# file generated by
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
3
6
|
TYPE_CHECKING = False
|
|
4
7
|
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
6
11
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
12
|
else:
|
|
8
13
|
VERSION_TUPLE = object
|
|
@@ -12,5 +17,5 @@ __version__: str
|
|
|
12
17
|
__version_tuple__: VERSION_TUPLE
|
|
13
18
|
version_tuple: VERSION_TUPLE
|
|
14
19
|
|
|
15
|
-
__version__ = version = '0.54.
|
|
16
|
-
__version_tuple__ = version_tuple = (0, 54,
|
|
20
|
+
__version__ = version = '0.54.8'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 54, 8)
|
|
@@ -266,6 +266,8 @@ class DiskCacheStore(CacheStore):
|
|
|
266
266
|
>>> # put a file directly
|
|
267
267
|
>>> disk_cache.put("README.md", "test/file.md")
|
|
268
268
|
'test/file.md'
|
|
269
|
+
|
|
270
|
+
>>> disk_cache.clear() # cleanup
|
|
269
271
|
"""
|
|
270
272
|
|
|
271
273
|
if not pathlib.Path(data_path).is_file():
|
|
@@ -312,6 +314,8 @@ class DiskCacheStore(CacheStore):
|
|
|
312
314
|
>>> # returns a path
|
|
313
315
|
>>> disk_cache.get("test/file.md")
|
|
314
316
|
'cache/test/file.md'
|
|
317
|
+
|
|
318
|
+
>>> disk_cache.clear() # cleanup
|
|
315
319
|
"""
|
|
316
320
|
return self.path(cache_path)
|
|
317
321
|
|
|
@@ -38,10 +38,13 @@ def to_atc_plan(plan: dict[str, Any]) -> str:
|
|
|
38
38
|
if "second_alt_icao" in plan:
|
|
39
39
|
ret += f" {plan['second_alt_icao']}"
|
|
40
40
|
ret += "\n"
|
|
41
|
-
ret += f"-{plan['other_info']}
|
|
41
|
+
ret += f"-{plan['other_info']}"
|
|
42
42
|
if "supplementary_info" in plan:
|
|
43
|
+
ret += "\n-"
|
|
43
44
|
ret += " ".join([f"{i[0]}/{i[1]}" for i in plan["supplementary_info"].items()])
|
|
44
45
|
|
|
46
|
+
ret += ")"
|
|
47
|
+
|
|
45
48
|
if ret[-1] == "\n":
|
|
46
49
|
ret = ret[:-1]
|
|
47
50
|
|
|
@@ -194,7 +197,12 @@ def parse_atc_plan(atc_plan: str) -> dict[str, str]:
|
|
|
194
197
|
|
|
195
198
|
# Other info
|
|
196
199
|
if len(basic) > 8:
|
|
197
|
-
|
|
200
|
+
info = basic[8]
|
|
201
|
+
idx = info.find("DOF")
|
|
202
|
+
if idx != -1:
|
|
203
|
+
flightplan["departure_date"] = info[idx + 4 : idx + 10]
|
|
204
|
+
|
|
205
|
+
flightplan["other_info"] = info.strip()
|
|
198
206
|
|
|
199
207
|
# Supl. Info
|
|
200
208
|
if len(basic) > 9:
|
|
@@ -2643,19 +2643,24 @@ def downselect(data: XArrayType, bbox: tuple[float, ...]) -> XArrayType:
|
|
|
2643
2643
|
"or length 6 [west, south, min-level, east, north, max-level]"
|
|
2644
2644
|
)
|
|
2645
2645
|
|
|
2646
|
+
if west <= east:
|
|
2647
|
+
# Return a view of the data
|
|
2648
|
+
# If data is lazy, this will not load the data
|
|
2649
|
+
return data.sel(
|
|
2650
|
+
longitude=slice(west, east),
|
|
2651
|
+
latitude=slice(south, north),
|
|
2652
|
+
level=slice(level_min, level_max),
|
|
2653
|
+
)
|
|
2654
|
+
|
|
2655
|
+
# In this case, the bbox spans the antimeridian
|
|
2656
|
+
# If data is lazy, this will load the data (data.where is not lazy AFAIK)
|
|
2646
2657
|
cond = (
|
|
2647
2658
|
(data["latitude"] >= south)
|
|
2648
2659
|
& (data["latitude"] <= north)
|
|
2649
2660
|
& (data["level"] >= level_min)
|
|
2650
2661
|
& (data["level"] <= level_max)
|
|
2662
|
+
& ((data["longitude"] >= west) | (data["longitude"] <= east))
|
|
2651
2663
|
)
|
|
2652
|
-
|
|
2653
|
-
# wrapping longitude
|
|
2654
|
-
if west <= east:
|
|
2655
|
-
cond = cond & (data["longitude"] >= west) & (data["longitude"] <= east)
|
|
2656
|
-
else:
|
|
2657
|
-
cond = cond & ((data["longitude"] >= west) | (data["longitude"] <= east))
|
|
2658
|
-
|
|
2659
2664
|
return data.where(cond, drop=True)
|
|
2660
2665
|
|
|
2661
2666
|
|