Releases: csiro-coasts/emsarray
Releases · csiro-coasts/emsarray
v0.8.0
- Fix invalid geometry being generated for ‘river’ cells in CFGrid2D datasets with no cell bounds (pull request #154).
- Improved speed of triangulation for convex polygons (pull request #151).
- Check all polygons in a dataset are valid as part of generating them. This will slow down opening new datasets slightly, but the trade off is worth the added security after the invalid polygons found in pull request #154 (pull request #156).
- Added new emsarray.operations.cache module for generating cache keys based on dataset geometry. (issue #153, pull request #158).
v0.7.0
- Fix a FutureWarning on accessing xarray.Dataset.dims with xarray >= 2023.12.0 (pull request #124, pull request pydata/xarray#8500).
- Fix an error when creating a transect plot that does not intersect the model geometry. Previously this would raise a cryptic error, now it returns an empty transect dataset (issue #119, pull request #120).
- Drop dependency on importlib_metadata. This was only required to support Python 3.8, which was dropped in a previous release (issue #122, pull request #125).
- Fix an error with ShocSimple.get_all_depth_names() when the dataset had no depth coordinates (issue #123, pull request #126).
- Use PEP 585 generic type annotations and stop using PEP 563 postponed annotation evaluation (issue #109, pull request #127).
- Use pytest-mpl for image comparison tests for testing plotting methods (pull request #128).
- Update all URLs to the NCI THREDDS server (update notice, issue #135, pull request #136, pull request csiro-coast/emsarray-data#2).
- Correct all references to K’gari, formerly Fraser Island (issue #133, pull request csiro-coast/emsarray-data#2, pull request #134).
- Bump minimum versions of dependencies, update pinned dependencies for CI. Officially support numpy version 2.0.0 (pull request #137).
- Lint Python code in docs/ and scripts/ (pull request #141).
- Add emsarray.utils.name_to_data_array() and data_array_to_name() functions. Allow more functions to interchangeably take either a data array or the name of a data array (pull request #142).
- Add Convention.depth_coordinates and Convention.get_depth_coordinate_for_data_array(). Deprecate functions Convention.get_depth_name(), Convention.get_all_depth_names(), and Convention.get_time_name(). Remove deprecated functions Convention.get_depths() and Convention.get_times() (pull request #143).
- Swap to using pyproject.toml for all project metadata (pull request #145).
- Add new methods Convention.selector_for_indexes(), Convention.select_indexes(), and Convention.select_points(). These allow for more efficient extraction of multiple points at the same time. The return type of Convention.selector_for_index() has been changed from a dict to an xarray.Dataset, but this new value is also designed to be passed directly to Dataset.isel(). Convention.select_index() and Convention.select_indexes() have a new drop_geometry flag which defaults to True. Previously these methods would act as if drop_geometry was False, but this led to convention-dependent results as to which geometry variables were returned. The fragmented geometry variables from different conventions often did not contain enough data to be useful. By dropping geometry the results are more consistent across all conventions and do not contain potentially fragmented geometry information. (issue #106, pull request #146).
- Remove support for the deprecated emsarray.formats module, the emsarray.formats entry point, and filtered warnings for old dependencies no longer supported (pull request #146).
v0.6.1
- Fix transect plot title and units. All attributes were being dropped accidentally in prepare_data_array_for_transect(). (pull request #114).
- Add coast and gridlines parameters to emsarray.plot.plot_on_figure(), allowing users to disable these components of a plot. Currently gridlines can cause issues in interactive Jupyter notebooks and some other environments. There is no one solution to every situation. Allowing users to disable gridlines is a temporary work around while other solutions are being sought. (pull request #115, issue SciTools/cartopy#2245, issue SciTools/cartopy#2246, issue SciTools/cartopy#2247).
v0.6.0
- Use ‘ravel’ and ‘wind’ as antonyms instead of ‘ravel’ and ‘unravel’. English is weird. ‘Ravel’ and ‘unravel’ mean the same thing!. (pull request #100, pull request #104).
- Added new emsarray.conventions.DimensionConvention subclass. For conventions with multiple grids defined on unique subsets of dimensions this base class will provide a number of default method implementations. All existing conventions have been updated to build off this base class. (pull request #100)
- Remove workaround for pydata/xarray#6049 (pull request #101).
- Add Convention.wind() method as the inverse to Convention.ravel() (pull request #102, pull request #104).
- Add Convention.strtree() spatial index, deprecate Convention.spatial_index(). The old attribute was a compatibility shim around Shapely 1.8.x STRtree implementation. Now that the minimum version of Shapely is 2.0, the STRtree can be used directly. (pull request #103).
- Add emsarray.plot.add_landmarks() and landmarks parameter to Convention.plot() and related functions. (pull request #107).
- Make the positive_down and deep_to_shallow parameters optional for normalize_depth_variables(). If not supplied, that feature of the depth variable is not normalized. This is a breaking change if you previously relied on the default value of True for these parameters. (pull request #108).
- Add new module emsarray.transect for making transect plots. This feature is considered experimental and may change significantly in future releases. (pull request #110).
- Fix an issue with plotting variables with no long_name attribute. (issue #105, pull request #111).
v0.5.0
- Add missing_points parameter to emsarray.operations.point_extraction.extract_points() and emsarray.operations.point_extraction.extract_dataframe(). Callers can now choose whether missing points raise an exception, are dropped from the returned dataset, or filled with a sensible fill value (pull request #90).
- Align automatic coordinate detection of time and depth with CF Conventions. Add Convention.time_coordinate and Convention.depth_coordinate, deprecate Convention.get_times() and Convention.get_depths() (pull request #92).
- Add Convention.select_variables() (pull request #93, pull request #94).
- Fix various small issues with the docs. Use newer version of sphinx-book-theme for documentation (pull request #91).
- Remove shorthand imports such as
import xarray as xr
(pull request #95). - Drop Python 3.8 support. Bump minimum dependency versions to those released in the past 18 months (pull request #96).
v0.4.3
- Fix an issue with negative coordinates in bounds_argument() (pull request #74).
- Add a new emsarray plot subcommand to the emsarray command line interface (pull request #76).
- Use matplotlib.collections.PolyCollection rather than PatchCollection for significant speed improvements (pull request #77).
- Added emsarray.utils.timed_func() for easily logging some performance metrics (pull request #79).
- Add Convention.bounds and Convention.geometry attributes (pull request #83).
- Fix a number of numpy warnings about unsafe casts (pull request #85).
- Follow CF Conventions properly when finding latitude / longitude coordinate variables (issue #84, pull request #86)
- Include a py.typed file in built packages (issue #80, pull request #87).
v0.4.2
- Fixed an issue with
_FillValue
/missing_value
and variables with non-float types such as timedelta64 (pull request #71)
v0.4.1
- Fix licence vs license confusion (pull request #63)
v0.4.0
- Add CF Convention attributes to coordinate variables when extracting points (pull request #34)
- Reworked how command line entrypoints are discovered (pull request #35)
- Added brief tutorial on writing command line Python scripts using emsarray (pull request #35)
- Various documentation fixes (pull request #42, pull request #43, pull request #52, pull request #58)
- Added Python 3.11 support to CI (pull request #44)
- Allow manual binding of conventions to datasets (pull request #45)
- Renamed Format to Convention (pull request #46)
- Used shapely.polygons() when generating geometry. This results in a massive performance improvement. The minimum version of Shapely has been bumped to 2.0.0 (pull request #47)
- Add emsarray export-geometry command (pull request #48)
- Use coordinate bounds from the dataset when making polygons (pull request #49)
- Fix a bug in Ugrid.drop_geometry() (pull request #50)
- Relicense to BSD 3-Clause (issue #55, pull request #56)
- Automate most of the release process (pull request #60)
- Add a CITATION.cff file and example citation to the FAQ (issue #37, pull request #38)