Releases: contrailcirrus/pycontrails
Releases · contrailcirrus/pycontrails
v0.40.1
Fixes
- Use oldest-supported-numpy for building pycontrails wheels. This allows pycontrails to be compatible with environments that use old versions of numpy. The pycontrails v0.40.0 wheels are not compatible with numpy 1.22.
- Fix a unit test (
test_dtypes.py::test_issr_sac_grid_output
) that occasionally hangs.
v0.40.0
v0.40.0
Support scipy 1.10, improve interpolation performance, and fix many windows issues.
Features
- Improve interpolation performance by cythonizing linear interpolation. This extends the approach taken in scipy 1.10. The pycontrails cython routines allow for both float64 and float32 grids via cython fused types (the current scipy implementation assumes float64). In addition, interpolation up to dimension 4 is supported (the scipy implementation supports dimension 1 and 2).
- Officially support scipy 1.10.
- Officially test on windows in the GitHub Actions CI.
- Build custom wheels for python 3.9, 3.10, and 3.11 for the following platforms:
- Linux (x86_64)
- macOS (arm64 and x86_64)
- Windows (x86_64)
Breaking changes
- Change
MetDataset
andMetDataArray
conventions: underlying dimension coordinates are automatically promoted to float64. - Change how datetime arrays are converted to floating values for interpolation. The new approach introduces small differences compared with the previous implementation. These differences are significant enough to see relative differences in CoCiP predictions on the order of 1e-4.
Fixes
- Unit tests no longer raise errors when the
pycontrails-bada
package is not installed. Instead, some tests are skipped. - Fix many numpy casting issues encountered on windows.
- Fix temp file issues encountered on windows.
- Officially support changes in
xarray
2023.04 andpandas
2.0.
Internals
- Make the
interpolation
module more aligned with scipy 1.10 enhancements to theRegularGridInterpolator
. In particular, grid coordinates now must be float64. - Use cibuildwheel to build wheels for Linux, macOS (arm64 and x86_64), and Windows on release in Github Actions. Allow this workflow to be triggered manually to test the release process without actually publishing to PyPI.
- Simplify interpolation with pre-computed indices (invoked with the model parameter
interpolation_use_indices
) via aRGIArtifacts
interface. - Overhaul much of the interpolation module to improve performance.
- Slight performance enhancements to the
met
module.
v0.39.6
v0.39.6
Features
- Add
geo.azimuth
andgeo.segment_azimuth
functions to calculate the azimuth
between coordinates.
Azimuth is the angle between coordinates relative to true north on the range [0, 360].
Fixes
- Fix edge case in polygon algorithm by utilizing the
fully_connected
parameter inmeasure.find_contours
. This update leads to slight changes in interior contours in some cases. - Fix hard-coded POSIX path in
conftest.py
for windows compatibility. - Address
PermissionError
raised byshutil.copy
when the destination file is open in another thread. The copy is skipped and a warning is logged. - Fix some unit tests in
test_vector.py
andtest_ecmwf.py
for windows compatibility. There are still a few tests that fail on windows (unrelated to changes in this release) that will be fixed in v0.40.0. - Allow
cachestore=None
to skip caching inERA5
,HRES
, andGFS
interfaces. Previously a defaultDiskCacheStore
was created even whencachestore=None
. By default, caching is still enabled.
Internals
- Clean up
geo
module docstrings. - Add Wikipedia reference for Azimuth.
- Convert
MetBase._load
to from a class method to a function.
v0.39.5
Fixes
- Fix
docs/examples/CoCiP.ipynb
example demonstrating aircraft performance integration - Fix unit test caused by breaking change in pyproj 3.5.0
Internals
- Add additional Zenodo metadata
- Execute notebook examples in Docs Action
v0.39.4
Internals
- Add additional Zenodo metadata
- Add Doc / Notebook test Action to run notebook test (
make nb-test
) and doctests (make doctest
) on pull requests. - Update Docs Action to use python 3.11.
v0.39.3
Full Changelog: v0.39.2...v0.39.3
v0.39.2
Full Changelog: v0.39.1...v0.39.2
v0.39.1
What's Changed
- Feature/setuptools scm by @zebengberg in #30
New Contributors
- @zebengberg made their first contribution in #30
Full Changelog: v0.39.0...v0.39.1