pycontrails 0.47.3__tar.gz → 0.48.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.47.3 → pycontrails-0.48.1}/.github/workflows/docs.yaml +1 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/workflows/doctest.yaml +1 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/workflows/release.yaml +1 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/workflows/scorecard.yaml +1 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/workflows/test.yaml +1 -3
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.gitignore +2 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/CHANGELOG.md +62 -0
- {pycontrails-0.47.3/pycontrails.egg-info → pycontrails-0.48.1}/PKG-INFO +2 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/api.rst +1 -0
- pycontrails-0.48.1/docs/examples/ACCF.ipynb +833 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/ISSR.ipynb +72 -61
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/SAC.ipynb +25 -17
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/__init__.py +2 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/_version.py +2 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/coordinates.py +17 -10
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/datalib.py +155 -113
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/flight.py +45 -28
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/met.py +163 -39
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/met_var.py +9 -9
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/models.py +27 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/rgi_cython.c +283 -203
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/vector.py +257 -33
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/common.py +14 -65
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/era5.py +22 -27
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/hres.py +53 -88
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/ifs.py +10 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/gfs/gfs.py +68 -106
- pycontrails-0.48.1/pycontrails/models/accf.py +406 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/cocip.py +205 -105
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/cocip_params.py +0 -4
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/wake_vortex.py +9 -7
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocipgrid/cocip_grid.py +2 -6
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/issr.py +29 -31
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/pcr.py +5 -12
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/sac.py +24 -27
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/tau_cirrus.py +22 -5
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/types.py +1 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1/pycontrails.egg-info}/PKG-INFO +2 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails.egg-info/requires.txt +3 -1
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pyproject.toml +7 -3
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/conftest.py +53 -45
- pycontrails-0.48.1/tests/unit/test_accf.py +60 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cocip.py +51 -24
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_datalib.py +4 -9
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_dtypes.py +5 -3
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_ecmwf.py +83 -11
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_fleet.py +6 -4
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_flight.py +128 -20
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_gfs.py +31 -18
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_grid_to_netcdf.py +23 -17
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_met.py +79 -2
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_pcc.py +12 -14
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_sac_issr.py +54 -50
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_vector.py +45 -8
- pycontrails-0.47.3/docs/examples/ACCF.ipynb +0 -821
- pycontrails-0.47.3/pycontrails/models/accf.py +0 -379
- pycontrails-0.47.3/tests/unit/test_accf.py +0 -52
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/dependabot.yaml +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/pull_request_template.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.github/workflows/benchmark.yaml +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.pre-commit-config.yaml +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/.zenodo.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/CONTRIBUTING.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/LICENSE +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/Makefile +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/NOTICE +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/README.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/RELEASE.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/_static/css/style.css +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/_static/img/favicon.png +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/_static/img/logo-dark.png +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/_static/img/logo.png +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/_static/pycontrails.bib +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/changelog.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/conf.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/contributing.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/develop.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/AircraftPerformance.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/Cache.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/CoCiP.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/ECMWF.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/Flight.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/GFS.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/GOES.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/Meteorology.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/advection.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/airports.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/flight.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/flight2.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples/flightplan.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/examples.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/index.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/install.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/literature.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/tutorials/CoCiP.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/tutorials/flight.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/tutorials/interpolating-specific-humidity.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/docs/tutorials.rst +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/aircraft_performance.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/airports.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/cache.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/fleet.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/flightplan.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/fuel.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/interpolation.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/polygon.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/core/rgi_cython.pyx +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/ecmwf/variables.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/gfs/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/gfs/variables.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/goes.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/spire/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/datalib/spire/spire.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/ext/bada.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/ext/cirium.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/ext/empirical_grid.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/ext/synthetic_flight.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/contrail_properties.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/output_formats.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/radiative_forcing.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/radiative_heating.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocip/wind_shear.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocipgrid/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/cocipgrid/cocip_time_handling.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/dry_advection.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/black_carbon.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/emissions.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/ffm2.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/static/edb-gaseous-v28c-engines.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/emissions/static/edb-nvpm-v28c-engines.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/humidity_scaling/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/humidity_scaling/quantiles/era5-quantiles.pq +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/pcc.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/ps_model/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/ps_model/ps_grid.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/ps_model/ps_model.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/models/ps_model/static/ps-aircraft-params-20230517.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/constants.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/geo.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/jet.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/thermo.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/physics/units.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/py.typed +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/dependencies.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/iteration.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/json.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails/utils/temp.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails.egg-info/SOURCES.txt +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails.egg-info/dependency_links.txt +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/pycontrails.egg-info/top_level.txt +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/setup.cfg +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/setup.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/_deprecated.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/Makefile +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/README.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/benchmark.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/compare.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/data.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/output.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip/review.ipynb +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/cocip-fortran/README.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/north-atlantic-study/README.md +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/north-atlantic-study/support.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/benchmark/north-atlantic-study/validate.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/fixtures/cocip-met.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/fixtures/cocip-met2.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/fixtures/ecmwf-met.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/fixtures/gfs-met.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/__init__.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-contrail-output.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-contrail-output2.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-flight-output.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-flight-output2.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flight-cocip2.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flight-meridian.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flight-metadata.json +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flight.csv +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-20190101-eu.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-accf-pl.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-accf-sl.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-ecmwf-pl.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-ecmwf-sl.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-era5-cocip1.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-era5-cocip2.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/met-gfs.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/polygon-bug.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/rad-20190101-eu.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/rad-era5-cocip1.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/rad-era5-cocip2.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/static/rad-gfs.nc +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_airports.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cache.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cocip_grid.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cocip_grid_parity.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cocip_radiative_forcing.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_cocip_uncertainty.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_coordinates.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_dry_advection.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_emissions.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_flightplan.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_fuel.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_geo.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_goes.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_humidity_scaling.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_init.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_interpolation.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_met_cache.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_models.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_polygons.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_ps_model.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_spire.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_tau_cirrus.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_thermo_sac.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_units.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_utils.py +0 -0
- {pycontrails-0.47.3 → pycontrails-0.48.1}/tests/unit/test_zarr.py +0 -0
|
@@ -46,7 +46,7 @@ jobs:
|
|
|
46
46
|
CIBW_SKIP: '*-win32 *-manylinux_i686 *-musllinux*'
|
|
47
47
|
CIBW_BUILD_VERBOSITY: 3
|
|
48
48
|
CIBW_ARCHS_MACOS: x86_64 arm64
|
|
49
|
-
CIBW_TEST_SKIP: '*-macosx_arm64
|
|
49
|
+
CIBW_TEST_SKIP: '*-macosx_arm64'
|
|
50
50
|
# Completely isolate tests to prevent cibuildwheel from importing the
|
|
51
51
|
# source instead of the wheel. This happens when tests/__init__.py is read.
|
|
52
52
|
CIBW_TEST_EXTRAS: "complete,dev"
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# Run unit tests from the ground up
|
|
2
2
|
# installing "pycontrails" into the Github OS environments
|
|
3
3
|
|
|
4
|
-
# TODO: Include windows platforms testing here
|
|
5
|
-
|
|
6
4
|
name: Unit tests
|
|
7
5
|
|
|
8
6
|
on:
|
|
@@ -40,7 +38,7 @@ jobs:
|
|
|
40
38
|
fail-fast: false
|
|
41
39
|
matrix:
|
|
42
40
|
os: [ubuntu-latest, windows-latest]
|
|
43
|
-
pyversion: ['3.9', '3.10', '3.11']
|
|
41
|
+
pyversion: ['3.9', '3.10', '3.11', '3.12']
|
|
44
42
|
runs-on: ${{ matrix.os }}
|
|
45
43
|
|
|
46
44
|
steps:
|
|
@@ -1,6 +1,68 @@
|
|
|
1
1
|
|
|
2
2
|
# Changelog
|
|
3
3
|
|
|
4
|
+
## v0.48.1
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
- Generalize `met.shift_longitude()` to translate longitude coordinates onto any domain bounds.
|
|
9
|
+
- Add `VectorDataset.to_dict()` methods to output Vector data as dictionary. This method enables `Flight.to_dict()` objects to be serialized for input to the [Contrails API](https://api.contrails.org).
|
|
10
|
+
- Add `VectorDataset.from_dict()` class method to create `VectorDataset` class from dictionary.
|
|
11
|
+
- Support more time formats, including timezone aware times, in `VectorDataset` creation. All timezone aware `"time"`` coordinates are converted to UTC and stripped of timezone identifier.
|
|
12
|
+
|
|
13
|
+
### Fixes
|
|
14
|
+
|
|
15
|
+
- Fix issue in the `wake_vortex.max_downward_displacement` function in which float32 dtypes were promoted to float64 dtypes in certain cases.
|
|
16
|
+
- Ignore empty vectors in `VectorDataset.sum`.
|
|
17
|
+
|
|
18
|
+
### Internals
|
|
19
|
+
|
|
20
|
+
- Set `frozen=True` on the `MetVariable` dataclass.
|
|
21
|
+
- Test against python 3.12 in the GitHub Actions CI. Use python 3.12 the docs and doctest workflows.
|
|
22
|
+
|
|
23
|
+
## v0.48.0
|
|
24
|
+
|
|
25
|
+
This release includes a number of breaking changes and new features. If upgrading from a previous version of `pycontrails`, please read the changelog carefully. Open an [issue](https://github.com/contrailcirrus/pycontrails/issues) if you experience problems.
|
|
26
|
+
|
|
27
|
+
### Breaking changes
|
|
28
|
+
|
|
29
|
+
- When running `Cocip` and other `pycontrails` models, the `met` and `rad` parameter must now contain predefined metadata attributes `provider`, `dataset`, and `product` describing the met source. An error will now be raised in `Cocip` if these attributes are not present.
|
|
30
|
+
- Deprecate passing arbitrary `kwargs` into the `MetDataArray` constructor.
|
|
31
|
+
- No longer convert accumulated radiation data to average instantaneous data in `ERA5` and `HRES` interfaces. This logic is now handled downstream by the model (e.g., `Cocip`). This change allows for more flexibility in the `rad` data passed into the model and avoids unnecessary computation in the `MetDataSource` interfaces.
|
|
32
|
+
- Add new `MetDataSource.set_met_source_metadata` abstract method. This should be called within the implementing class `open_metdataset` method.
|
|
33
|
+
- No longer take a finite difference in the time dimension for HRES radiation data. This is now also handled natively in `Cocip`.
|
|
34
|
+
- No longer convert relative humidity from a percentage to a fraction in `ERA5` and `HRES` interfaces.
|
|
35
|
+
- Require the `HRES` `stream` parameter to be one of `["oper", "enfo"]`. Require the `field_type` parameter to be one of `["fc", "pf", "cf", "an"]`.
|
|
36
|
+
- Remove the `steps` and `step_offset` properties in the `GFSForecast` interface. Now the `timesteps` attribute is the only source of truth for determining AWS S3 keys. Change the `filename` method to take in a `datatime` timestep instead of an `int` step. No longer assign the first step radiation data to the zeroth step.
|
|
37
|
+
- Change the return type of `ISSR.eval`, `SAC.eval`, and `PCR.eval` from `MetDataArray` to `MetDataset`. This is more consistent with the return type of other `pycontrails` models and more closely mirrors the behavior of vector models. Set output `attrs` metadata on the global `MetDataset` instead of the individual `MetDataArray` in each case.
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
- Rewrite parts of the `pycontrails.core.datalib` module for higher performance and readability.
|
|
42
|
+
- Add optional `attrs` and `attrs_kwargs` parameters to `MetDataset` constructor. This allows the user to customize the attributes on the underlying `xarray.Dataset` object. This update makes `MetDataset` more consistent with `VectorDataset`.
|
|
43
|
+
- Add three new properties `provider_attr`, `dataset_attr`, and `product_attr` to `MetDataset`. These properties give metadata describing the underlying meterological data source.
|
|
44
|
+
- Add new `Model.transfer_met_source_attrs` method for more consistent handling of met source metadata on the `source` parameter passed into `Model.eval`.
|
|
45
|
+
- No longer require `geopotential` data when computing `tau_cirrus`. If neither `geopotential` nor `geopotential_height` are available, geopotential is approximated from the geometric height. No longer require geopotential on the `met` parameter in `Cocip` or `CocipGrid`.
|
|
46
|
+
- Remove the `Cocip` `shift_radiation_time` parameter. This is now inferred directly from the `rad` metadata. An error is raised if the necessary metadata is not present.
|
|
47
|
+
- Allow `Cocip` to run with both instantaneous (`W m-2`) and accumulated (`J m-2`) radiation data.
|
|
48
|
+
- Allow `Cocip` to run with accumulated ECMWF HRES radiation data.
|
|
49
|
+
|
|
50
|
+
### Fixes
|
|
51
|
+
|
|
52
|
+
- Correct radiation unit in the `ACCF` wrapper model [#64]. Both instantaneous (`W m-2`) and accumulated (`J m-2`) radiation data are now supported, and the `ACCF` wrapper will handle each appropriately.
|
|
53
|
+
- Avoid unnecessary writing and reading of temporary files in `ERA5.cache_dataset` and `HRES.cache_dataset`.
|
|
54
|
+
- Fix timestep resolution bug in `GFSForecast`. When the `grid` parameter is 0.5 or 1.0, forecasts are only available every 3 hours. Previously, the `timesteps` property would define an hourly timestep.
|
|
55
|
+
|
|
56
|
+
### Internals
|
|
57
|
+
|
|
58
|
+
- Include `name` parameter in `MetDataArray` constructor.
|
|
59
|
+
- Make the `coordinates.slice_domain` function slightly more performant by explicitly dropping nan values from the `request` parameter.
|
|
60
|
+
- Round unwieldy floating point numbers in `GeoVectorDataset._display_attrs`.
|
|
61
|
+
- Remove the `ecmwflibs` package from the `ecmwf` optional dependencies.
|
|
62
|
+
- Add NPY to `ruff` rules.
|
|
63
|
+
- Add convenience `MetDataset.standardize_variables` method.
|
|
64
|
+
- Remove the `p_settings` attribute on the `ACCF` interface. This is now constructed internally within `ACCF.eval`. Replace the `ACCF._update_accf_config` method with a `_get_accf_config` function.
|
|
65
|
+
|
|
4
66
|
## v0.47.3
|
|
5
67
|
|
|
6
68
|
### Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pycontrails
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.48.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
|
|
@@ -68,7 +68,6 @@ Provides-Extra: ecmwf
|
|
|
68
68
|
Requires-Dist: cdsapi>=0.4; extra == "ecmwf"
|
|
69
69
|
Requires-Dist: cfgrib>=0.9; extra == "ecmwf"
|
|
70
70
|
Requires-Dist: eccodes>=1.4; extra == "ecmwf"
|
|
71
|
-
Requires-Dist: ecmwflibs>=0.4; extra == "ecmwf"
|
|
72
71
|
Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
|
|
73
72
|
Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
|
|
74
73
|
Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
|
|
@@ -84,6 +83,7 @@ Requires-Dist: eccodes>=1.4; extra == "gfs"
|
|
|
84
83
|
Requires-Dist: platformdirs>=3.0; extra == "gfs"
|
|
85
84
|
Requires-Dist: tqdm>=4.61; extra == "gfs"
|
|
86
85
|
Provides-Extra: goes
|
|
86
|
+
Requires-Dist: aiohttp>=3.9.0b0; python_version >= "3.12" and extra == "goes"
|
|
87
87
|
Requires-Dist: cartopy>=0.22; extra == "goes"
|
|
88
88
|
Requires-Dist: gcsfs>=2022.3; extra == "goes"
|
|
89
89
|
Requires-Dist: h5netcdf>=1.2; extra == "goes"
|