pycontrails 0.52.0__tar.gz → 0.52.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.52.0 → pycontrails-0.52.2}/.github/workflows/scorecard.yaml +1 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.pre-commit-config.yaml +1 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/CHANGELOG.md +47 -2
- {pycontrails-0.52.0 → pycontrails-0.52.2}/Makefile +8 -1
- {pycontrails-0.52.0/pycontrails.egg-info → pycontrails-0.52.2}/PKG-INFO +21 -10
- {pycontrails-0.52.0 → pycontrails-0.52.2}/README.md +16 -4
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/index.rst +10 -2
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/install.rst +16 -9
- pycontrails-0.52.2/docs/notebooks/AircraftPerformance.ipynb +256 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/_version.py +2 -2
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/aircraft_performance.py +115 -19
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/coordinates.py +5 -5
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/fleet.py +11 -10
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/flight.py +100 -59
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/interpolation.py +2 -2
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/met.py +23 -14
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/models.py +25 -16
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/polygon.py +1 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/rgi_cython.c +155 -155
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/vector.py +26 -29
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/_met_utils/metsource.py +0 -4
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/goes.py +10 -3
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/cocip.py +20 -26
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/cocip_uncertainty.py +9 -9
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/output_formats.py +14 -6
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +1 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/geo.py +1 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2/pycontrails.egg-info}/PKG-INFO +21 -10
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails.egg-info/requires.txt +4 -5
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pyproject.toml +6 -7
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/conftest.py +13 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_airports.py +4 -4
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cocip.py +5 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_ecmwf.py +8 -2
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_fleet.py +7 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_flight.py +156 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_leo.py +16 -10
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_met.py +24 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_models.py +13 -12
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_ps_model.py +45 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_sac_issr.py +10 -1
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_vector.py +2 -2
- pycontrails-0.52.0/docs/notebooks/AircraftPerformance.ipynb +0 -281
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/dependabot.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/pull_request_template.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/workflows/docs.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/workflows/doctest.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/workflows/release.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.github/workflows/test.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.gitignore +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/.zenodo.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/CONTRIBUTING.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/LICENSE +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/NOTICE +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/RELEASE.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/css/style.css +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/img/colab.png +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/_static/pycontrails.bib +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/api.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/changelog.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/conf.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/contributing.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/develop.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/flight.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/integrations/ACCF.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/integrations/APCEMM.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/literature.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/meteorology.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/models.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/Cache.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/CoCiP.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/ECMWF.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/Flight.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/GFS.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/GOES.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/ISSR.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/Landsat.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/Meteorology.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/SAC.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/Sentinel.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/advection.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/airports.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/.gitignore +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/flight-ap.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/flight-cocip.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/flight-fdr.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/flight-noisy.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/flight.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/flightplan.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/model-levels.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/run-cocip-on-flight.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/notebooks.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/observations.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/tutorials.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/docs/utilities.rst +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/cache.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/flightplan.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/met_var.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/_leo_utils/search.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/_leo_utils/static/bq_roi_query.sql +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/_leo_utils/vis.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/common.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/era5.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/hres.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/ifs.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/model_levels.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/ecmwf/variables.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/gfs/gfs.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/gfs/variables.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/landsat.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/sentinel.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/datalib/spire.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/accf.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/apcemm/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/apcemm/apcemm.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/apcemm/inputs.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/apcemm/utils.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/cocip_params.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/contrail_properties.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/radiative_forcing.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/wake_vortex.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/issr.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/pcr.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/ps_grid.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/ps_model.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/static/ps-aircraft-params-20240524.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/ps_model/static/ps-synonym-list-20240524.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/sac.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/models/tau_cirrus.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/constants.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/jet.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/thermo.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/py.typed +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/dependencies.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails/utils/types.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails.egg-info/SOURCES.txt +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/setup.cfg +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/setup.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/_deprecated.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/fixtures/cocip-met.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/__init__.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-contrail-output.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-contrail-output2.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-flight-output.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-flight-output2.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_accf.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_apcemm.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cocip_grid.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cocip_grid_parity.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_datalib_metsource.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_dtypes.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_flightplan.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_gfs.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_grid_to_netcdf.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_humidity_scaling.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_init.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_pcc.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_polygons.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_thermo_sac.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_units.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.52.0 → pycontrails-0.52.2}/tests/unit/test_zarr.py +0 -0
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.52.2
|
|
4
|
+
|
|
5
|
+
### Breaking changes
|
|
6
|
+
|
|
7
|
+
- Flight antimeridian crossings are now detected based on individual flight segments rather than minimum and maximum longitude values. This allows for correct detection of antimeridian crossings for flights that span more than 180 degrees longitude, and may change the output of `Flight.resample_and_fill` for such flights.
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- Add experimental `fill_low_alt_with_isa_temperature` parameter on the `AircraftPerformance` base class. When set to `True`, aircraft performance models with `Flight` sources will fill points below the lowest altitude in the ``met["air_temperature]`` data with the ISA temperature. This is useful when the met data does not extend to the surface. In this case, we can still estimate fuel flow and other performance metrics through the entire climb phase. By default, this parameter is set to `False`.
|
|
12
|
+
- Add experimental `fill_low_altitude_with_zero_wind` parameter on the `AircraftPerformance` base class. When set to `True`, aircraft performance models will estimate the true airspeed at low altitudes by assuming the wind speed is zero.
|
|
13
|
+
- Add convenience `Flight.plot_profile` method.
|
|
14
|
+
|
|
15
|
+
### Fixes
|
|
16
|
+
|
|
17
|
+
- Fix missing `Fuel Flow Idle (kg/sec)` value in the `1ZM001` engine in the `edb-gaseous-v29b-engines.csv`.
|
|
18
|
+
- Fix the `step_threshold` in `Flight._altitude_interpolation`. This correction is only relevant when passing in a non-default value for `freq` in `Flight.resample_and_fill`.
|
|
19
|
+
- Fix the `VectorDataset.__eq__` method to check for the same keys. Previously, if the other dataset had a superset of the instance keys, the method may still return `True`.
|
|
20
|
+
- Fix minor bug in `cocip.output_formats.radiation_time_slice_statistics` in which the function previously threw an error if `t_end` did not directly align with the time index in the `rad` dataset.
|
|
21
|
+
- Remove the residual constraint in `cocip.output_formats.contrails_to_hi_res_grid` used during debugging.
|
|
22
|
+
- Improve detection of antimeridian crossings for flights that span more than 180 degrees longitude.
|
|
23
|
+
|
|
24
|
+
### Internals
|
|
25
|
+
|
|
26
|
+
- Improve the runtime performance of `Fleet.to_flight_list`. For a large `Fleet`, this method is now 5x faster.
|
|
27
|
+
- Improve the runtime performance and memory footprint of `Cocip._bundle_results`. When running `Cocip` with a large `Fleet` source, `Cocip.eval` is now slightly faster and uses much less memory.
|
|
28
|
+
|
|
29
|
+
## v0.52.1
|
|
30
|
+
|
|
31
|
+
### Breaking changes
|
|
32
|
+
|
|
33
|
+
- Remove `lock=False` as a default keyword argument to `xr.open_mfdataset` in the `MetDataSource.open_dataset` method. This reverts a change from [v0.44.1](https://github.com/contrailcirrus/pycontrails/releases/tag/v0.44.1) and prevents segmentation faults when using recent versions of [netCDF4](https://pypi.org/project/netCDF4/) (1.7.0 and above).
|
|
34
|
+
- GOES imagery is now loaded from a temporary file on disk rather than directly from memory when using `GOES.get` without a cachestore.
|
|
35
|
+
|
|
36
|
+
### Internals
|
|
37
|
+
|
|
38
|
+
- Remove upper limits on netCDF4 and numpy versions.
|
|
39
|
+
- Remove h5netcdf dependency.
|
|
40
|
+
- Update doctests with numpy 2 scalar representation (see [NEP 51](https://numpy.org/neps/nep-0051-scalar-representation.html)). Doctests will now fail when run with numpy 1.
|
|
41
|
+
- Run certain tests in `test_ecmwf.py` and `test_met.py` using the single-threaded dask scheduler to prevent tests from hanging while waiting for a lock that is never released. (This issue was [encountered previously](https://github.com/contrailcirrus/pycontrails/pull/68), and removing `lock=False` in `MetDataSource.open_dataset` reverts the fix.)
|
|
42
|
+
- Document pycontrails installation from conda-forge.
|
|
43
|
+
|
|
44
|
+
### Fixes
|
|
45
|
+
|
|
46
|
+
- Ensure the `MetDataset` vertical coordinates `"air_pressure"` and `"altitude"` have the correct dtype.
|
|
47
|
+
|
|
3
48
|
## v0.52.0
|
|
4
49
|
|
|
5
50
|
### Breaking changes
|
|
@@ -138,7 +183,7 @@ The Unterstrasser (2016) parameterization can be used in CoCiP by setting a new
|
|
|
138
183
|
- Update flight resampling logic to align with expected behavior for very short flights, which is now detailed in the `Flight.resample_and_fill` docstring.
|
|
139
184
|
|
|
140
185
|
### Internals
|
|
141
|
-
|
|
186
|
+
|
|
142
187
|
- Adds a parameter to `CoCipParams`, `unterstrasser_ice_survival_fraction`, that activates the Unterstrasser (2016) survival parameterization when set to `True`. This is disabled by default, and only implemented for `CoCiP`. `CoCiPGrid` will produce an error if run with `unterstrasser_ice_surival_fraction=True`.
|
|
143
188
|
- Modifies `CoCiPGrid` so that setting `compute_atr_20` (defined in `CoCipParams`) to `True` adds `global_yearly_mean_rf` and `atr20` to CoCiP-grid output.
|
|
144
189
|
- Replaces `pycontrails.datalib.GOES` ash convention label "MIT" with "SEVIRI"
|
|
@@ -169,7 +214,7 @@ The Unterstrasser (2016) parameterization can be used in CoCiP by setting a new
|
|
|
169
214
|
- Add new `MetDataSource.is_single_level` property.
|
|
170
215
|
- Add `ecmwf.Divergence` (a subclass of `MetVariable`) for accessing ERA5 divergence data.
|
|
171
216
|
- Update the [specific humidity interpolation notebook](https://py.contrails.org/notebooks/specific-humidity-interpolation.html) to use the new `ARCOERA5` interface.
|
|
172
|
-
- Adds two parameters to `CoCipParams`, `compute_atr20` and `global_rf_to_atr20_factor`. Setting the former to `True` will add both `global_yearly_mean_rf` and `atr20` to the CoCiP output.
|
|
217
|
+
- Adds two parameters to `CoCipParams`, `compute_atr20` and `global_rf_to_atr20_factor`. Setting the former to `True` will add both `global_yearly_mean_rf` and `atr20` to the CoCiP output.
|
|
173
218
|
- Bump minimum pytest version to 8.1 to avoid failures in release workflow.
|
|
174
219
|
|
|
175
220
|
## v0.49.5
|
|
@@ -133,6 +133,13 @@ main-test-status:
|
|
|
133
133
|
DOCS_DIR = docs
|
|
134
134
|
DOCS_BUILD_DIR = docs/_build
|
|
135
135
|
|
|
136
|
+
# Check that numpy 2 is being used
|
|
137
|
+
ensure-numpy-2:
|
|
138
|
+
[[ $$(python -c 'import numpy as np; print(np.__version__)') == 2.* ]] \
|
|
139
|
+
|| ( \
|
|
140
|
+
echo -e "$(COLOR_YELLOW)NumPy 2 required for doctests$(END_COLOR)"; \
|
|
141
|
+
exit 1)
|
|
142
|
+
|
|
136
143
|
# Check for GCP credentials
|
|
137
144
|
ensure-gcp-credentials:
|
|
138
145
|
python -c 'from google.cloud import storage; storage.Client()' \
|
|
@@ -163,7 +170,7 @@ ensure-era5-cached:
|
|
|
163
170
|
cache-era5-gcp: ensure-era5-cached
|
|
164
171
|
gcloud storage cp -r -n .doc-test-cache/* gs://contrails-301217-unit-test/doc-test-cache/
|
|
165
172
|
|
|
166
|
-
doctest: ensure-era5-cached ensure-gcp-credentials
|
|
173
|
+
doctest: ensure-numpy-2 ensure-era5-cached ensure-gcp-credentials
|
|
167
174
|
pytest --doctest-modules \
|
|
168
175
|
--ignore-glob=pycontrails/ext/* \
|
|
169
176
|
pycontrails -vv
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.52.
|
|
3
|
+
Version: 0.52.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
|
|
@@ -28,7 +28,7 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
License-File: LICENSE
|
|
29
29
|
License-File: NOTICE
|
|
30
30
|
Requires-Dist: dask>=2022.3
|
|
31
|
-
Requires-Dist: numpy
|
|
31
|
+
Requires-Dist: numpy>=1.22
|
|
32
32
|
Requires-Dist: overrides>=6.1
|
|
33
33
|
Requires-Dist: pandas>=2.2
|
|
34
34
|
Requires-Dist: scipy>=1.10
|
|
@@ -36,7 +36,7 @@ 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"
|
|
38
38
|
Provides-Extra: dev
|
|
39
|
-
Requires-Dist: black[jupyter]==24.4.
|
|
39
|
+
Requires-Dist: black[jupyter]==24.4.2; 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"
|
|
@@ -50,7 +50,7 @@ Requires-Dist: pyarrow>=5.0; extra == "dev"
|
|
|
50
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.
|
|
53
|
+
Requires-Dist: ruff==0.5.3; extra == "dev"
|
|
54
54
|
Requires-Dist: setuptools; extra == "dev"
|
|
55
55
|
Provides-Extra: docs
|
|
56
56
|
Requires-Dist: doc8>=1.1; extra == "docs"
|
|
@@ -70,7 +70,7 @@ Requires-Dist: cdsapi>=0.4; extra == "ecmwf"
|
|
|
70
70
|
Requires-Dist: cfgrib>=0.9; extra == "ecmwf"
|
|
71
71
|
Requires-Dist: eccodes>=1.4; extra == "ecmwf"
|
|
72
72
|
Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
|
|
73
|
-
Requires-Dist: netcdf4
|
|
73
|
+
Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
|
|
74
74
|
Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
|
|
75
75
|
Requires-Dist: requests>=2.25; extra == "ecmwf"
|
|
76
76
|
Requires-Dist: lxml>=5.1.0; extra == "ecmwf"
|
|
@@ -94,7 +94,6 @@ Requires-Dist: gcsfs>=2022.3; extra == "sat"
|
|
|
94
94
|
Requires-Dist: geojson>=3.1; extra == "sat"
|
|
95
95
|
Requires-Dist: google-cloud-bigquery>=3.23; extra == "sat"
|
|
96
96
|
Requires-Dist: google-cloud-bigquery-storage>=2.25; extra == "sat"
|
|
97
|
-
Requires-Dist: h5netcdf>=1.2; extra == "sat"
|
|
98
97
|
Requires-Dist: pillow>=10.3; extra == "sat"
|
|
99
98
|
Requires-Dist: pyproj>=3.5; extra == "sat"
|
|
100
99
|
Requires-Dist: rasterio>=1.3; extra == "sat"
|
|
@@ -121,9 +120,9 @@ Requires-Dist: zarr>=2.12; extra == "zarr"
|
|
|
121
120
|
|
|
122
121
|
| | |
|
|
123
122
|
|---------------|-------------------------------------------------------------------|
|
|
124
|
-
| **Version** | [](https://pypi.python.org/pypi/pycontrails) [](https://pypi.python.org/pypi/pycontrails) |
|
|
123
|
+
| **Version** | [](https://pypi.python.org/pypi/pycontrails) [](https://anaconda.org/conda-forge/pycontrails) [](https://pypi.python.org/pypi/pycontrails) |
|
|
125
124
|
| **Citation** | [](https://zenodo.org/badge/latestdoi/617248930) |
|
|
126
|
-
| **Tests** | [](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
|
|
125
|
+
| **Tests** | [](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
|
|
127
126
|
| **License** | [](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
|
|
128
127
|
| **Community** | [](https://github.com/contrailcirrus/pycontrails/discussions) [](https://github.com/contrailcirrus/pycontrails/issues) [](https://github.com/contrailcirrus/pycontrails/pulls) |
|
|
129
128
|
|
|
@@ -140,7 +139,9 @@ Documentation and examples available at [py.contrails.org](https://py.contrails.
|
|
|
140
139
|
|
|
141
140
|
## Install
|
|
142
141
|
|
|
143
|
-
|
|
142
|
+
### Install with pip
|
|
143
|
+
|
|
144
|
+
You can install pycontrails from PyPI with `pip` (Python 3.9 or later required):
|
|
144
145
|
|
|
145
146
|
```bash
|
|
146
147
|
$ pip install pycontrails
|
|
@@ -155,7 +156,17 @@ Install the latest development version directly from GitHub:
|
|
|
155
156
|
pip install git+https://github.com/contrailcirrus/pycontrails.git
|
|
156
157
|
```
|
|
157
158
|
|
|
158
|
-
|
|
159
|
+
### Install with conda
|
|
160
|
+
|
|
161
|
+
You can install pycontrails from the [conda-forge](https://conda-forge.org/) channel with `conda` (or other `conda`-like package managers such as `mamba`):
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
conda install -c conda-forge pycontrails
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The conda-forge package includes all optional runtime dependencies.
|
|
168
|
+
|
|
169
|
+
See more installation options in the [install documentation](https://py.contrails.org/install).
|
|
159
170
|
|
|
160
171
|
## Get Involved
|
|
161
172
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
| | |
|
|
6
6
|
|---------------|-------------------------------------------------------------------|
|
|
7
|
-
| **Version** | [](https://pypi.python.org/pypi/pycontrails) [](https://pypi.python.org/pypi/pycontrails) |
|
|
7
|
+
| **Version** | [](https://pypi.python.org/pypi/pycontrails) [](https://anaconda.org/conda-forge/pycontrails) [](https://pypi.python.org/pypi/pycontrails) |
|
|
8
8
|
| **Citation** | [](https://zenodo.org/badge/latestdoi/617248930) |
|
|
9
|
-
| **Tests** | [](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
|
|
9
|
+
| **Tests** | [](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
|
|
10
10
|
| **License** | [](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
|
|
11
11
|
| **Community** | [](https://github.com/contrailcirrus/pycontrails/discussions) [](https://github.com/contrailcirrus/pycontrails/issues) [](https://github.com/contrailcirrus/pycontrails/pulls) |
|
|
12
12
|
|
|
@@ -23,7 +23,9 @@ Documentation and examples available at [py.contrails.org](https://py.contrails.
|
|
|
23
23
|
|
|
24
24
|
## Install
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
### Install with pip
|
|
27
|
+
|
|
28
|
+
You can install pycontrails from PyPI with `pip` (Python 3.9 or later required):
|
|
27
29
|
|
|
28
30
|
```bash
|
|
29
31
|
$ pip install pycontrails
|
|
@@ -38,7 +40,17 @@ Install the latest development version directly from GitHub:
|
|
|
38
40
|
pip install git+https://github.com/contrailcirrus/pycontrails.git
|
|
39
41
|
```
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
### Install with conda
|
|
44
|
+
|
|
45
|
+
You can install pycontrails from the [conda-forge](https://conda-forge.org/) channel with `conda` (or other `conda`-like package managers such as `mamba`):
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
conda install -c conda-forge pycontrails
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The conda-forge package includes all optional runtime dependencies.
|
|
52
|
+
|
|
53
|
+
See more installation options in the [install documentation](https://py.contrails.org/install).
|
|
42
54
|
|
|
43
55
|
## Get Involved
|
|
44
56
|
|
|
@@ -11,11 +11,11 @@ Learn more on `contrails.org <https://contrails.org>`_.
|
|
|
11
11
|
:header-rows: 0
|
|
12
12
|
|
|
13
13
|
* - **Version**
|
|
14
|
-
- |PyPI version| |Supported python versions|
|
|
14
|
+
- |PyPI version| |conda-forge version| |Supported python versions|
|
|
15
15
|
* - **Citation**
|
|
16
16
|
- |DOI|
|
|
17
17
|
* - **Tests**
|
|
18
|
-
- |Unit test| |Docs| |Release|
|
|
18
|
+
- |Unit test| |Docs| |Release| |OpenSSF scorecard|
|
|
19
19
|
* - **License**
|
|
20
20
|
- |Apache License 2.0|
|
|
21
21
|
* - **Community**
|
|
@@ -80,6 +80,10 @@ Learn more on `contrails.org <https://contrails.org>`_.
|
|
|
80
80
|
:alt: Supported python versions
|
|
81
81
|
:target: https://pypi.python.org/pypi/pycontrails
|
|
82
82
|
|
|
83
|
+
.. |conda-forge version| image:: https://anaconda.org/conda-forge/pycontrails/badges/version.svg
|
|
84
|
+
:alt: conda-forge version
|
|
85
|
+
:target: https://anaconda.org/conda-forge/pycontrails
|
|
86
|
+
|
|
83
87
|
.. |DOI| image:: https://zenodo.org/badge/617248930.svg
|
|
84
88
|
:alt: DOI
|
|
85
89
|
:target: https://zenodo.org/badge/latestdoi/617248930
|
|
@@ -96,6 +100,10 @@ Learn more on `contrails.org <https://contrails.org>`_.
|
|
|
96
100
|
:alt: Release
|
|
97
101
|
:target: https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml
|
|
98
102
|
|
|
103
|
+
.. |OpenSSF scorecard| image:: https://api.securityscorecards.dev/projects/github.com/contrailcirrus/pycontrails/badge
|
|
104
|
+
:alt: OpenSSF scorecard
|
|
105
|
+
:target: https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails
|
|
106
|
+
|
|
99
107
|
.. |Apache License 2.0| image:: https://img.shields.io/pypi/l/pycontrails.svg
|
|
100
108
|
:alt: Apache License 2.0
|
|
101
109
|
:target: https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
Install
|
|
3
3
|
=======
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
conda install
|
|
6
|
+
-------------
|
|
7
7
|
|
|
8
|
-
-
|
|
8
|
+
Install the latest release from `conda-forge <https://conda-forge.org>`__ using ``conda``:
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
.. code-block:: bash
|
|
11
|
+
|
|
12
|
+
$ conda install -c conda-forge pycontrails
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
The conda-forge package includes all optional runtime dependencies.
|
|
16
|
+
|
|
17
|
+
pip install
|
|
18
|
+
-----------
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
With Python 3.9 or later, install the latest release from PyPI using ``pip``:
|
|
14
21
|
|
|
15
22
|
.. code-block:: bash
|
|
16
23
|
|
|
@@ -29,13 +36,13 @@ Install the latest development version directly from GitHub:
|
|
|
29
36
|
|
|
30
37
|
|
|
31
38
|
Optional Dependencies
|
|
32
|
-
|
|
39
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
33
40
|
|
|
34
41
|
The ``pycontrails`` package uses optional dependencies for specific features:
|
|
35
42
|
|
|
36
43
|
.. code-block:: bash
|
|
37
44
|
|
|
38
|
-
# install all
|
|
45
|
+
# install all optional runtime dependencies
|
|
39
46
|
$ pip install "pycontrails[complete]"
|
|
40
47
|
|
|
41
48
|
# install specific optional dependencies
|
|
@@ -57,7 +64,7 @@ for the latest optional dependencies.
|
|
|
57
64
|
|
|
58
65
|
|
|
59
66
|
Pre-built wheels
|
|
60
|
-
|
|
67
|
+
~~~~~~~~~~~~~~~~
|
|
61
68
|
|
|
62
69
|
Wheels for common platforms are available on `PyPI <https://pypi.org/project/pycontrails/>`__. Currently, wheels are available for:
|
|
63
70
|
|