Skip to content

Releases: sentinel-hub/eo-learn

Version 1.5.4

13 May 08:44
c7a39ed
Compare
Choose a tag to compare
  • Minor fixes for documentation

Version 1.5.3

10 Jan 12:22
bd4717b
Compare
Choose a tag to compare
  • Fix version numpy<2 in anticipation of numpy 2.0 release.

Version 1.5.2

07 Nov 12:27
0310d55
Compare
Choose a tag to compare
  • RayExecutor can now forward remote kwargs to ray jobs.
  • ImportTiffTask no longer uses the use_vsi parameter. The IO part was fully off-loaded to rasterio.
  • ImportTiffTask and ExportTiffTask parameter folder was renamed to path. The renaming is backwards compatible for now.

Version 1.5.1

17 Oct 13:07
e93682c
Compare
Choose a tag to compare
  • MorphologicalFilterTask adapted to work on boolean values.
  • Added temporal_subset method to EOPatch, which can be used to extract a subset of an EOPatch by filtering out temporal slices. Also added a corresponding TemporalSubsetTask.
  • EOExecutor now has an option to treat TemporalDimensionWarning as an exception.
  • String representation of EOPatch objects was revisited to avoid edge cases where the output would print enormous objects.

Version 1.5.0

06 Sep 15:07
83f14c7
Compare
Choose a tag to compare

The release focuses on making eo-learn much simpler to install, reducing the number of dependencies, and improving validation of soundness of EOPatch data.

  • eo-learn is now distributed as a single package. Installation of eo-learn-mask and similar is no longer necessary and users are warned when such installations are detected.
  • Changes to timestamps and bbox attributes of EOPatch objects:
    • FeatureType.TIMESTAMPS and FeatureType.BBOX have been deprecated, data should be accessed via attributes. Feature parsers no longer return these values (for instance when calling EOPatch.get_features).
    • EOPatches without temporal information now have a timestamp value of None, whereas a timestamp value [] signifies that the EOPatch has a temporal dimension of 0.
    • Introduced a get_timestamps method that will fail if timestamps are None. This can be used in cases where timestamps are assumed to be present (to avoid issues with type-checking and ill formed inputs).
    • Loading, saving, and copying of EOPatches will take timestamps into account either when processing the full eopatch (i.e. features=...) or if the selection contains a temporal feature. The behavior can be controlled via the load_timestamps/save_timestamps/copy_timestamps parameter.
  • Saving and loading of FeatureType.META_INFO now processes each feature as a separate file, allowing better filtering and preventing accidental overwriting.
  • The default backend for SpatialResizeTask has been switched to cv2 to reduce the number of dependencies.
  • eolearn.geometry.morphology tasks now use cv2 instead of scikit-image to reduce the number of dependencies. The task interfaces have been slightly adjusted.
  • Improved reports:
    • Exception grouping is now done by exception origin instead of exception message, resulting in shorter reports.
    • Added execution time statistics per node
  • CloudMaskTask has been restricted to mono-temporal predictions using the s2cloudless package. For the multi-temporal one check here.
  • Certain tasks (for instance SaveTask and LoadTask) no longer pass arguments to the super-class via **kwargs in order to improve documentation and type-checking.
  • SaveTask and LoadTask now raise OSError exceptions instead of IOError.
  • Project-specific and outdated EOTasks were moved to extras or to the example repository eo-learn-examples/extra-tasks.
  • The submodule eolearn.features.bands_extraction has been renamed to eolearn.features.ndi.
  • The submodule eolearn.ml_tools.extra.plotting has been moved to eolearn.visualization.utils.
  • Compression of EOPatch files has been hardcoded. The parameter compression_level has been deprecated and has no effect.
  • Introduced experimental zarr support for loading/saving temporal slices of temporal features. The API might be changed in future releases.
  • Limited rasterio to 1.3.7 due to an issue with importing rasters from AWS S3
  • Updated examples, simplified tests, various improvements.

Version 1.4.2

24 May 10:53
a65899e
Compare
Choose a tag to compare

Changelog:

  • Introduced support for Python 3.11.
  • Removed support for Python 3.7.
  • Added T-Digest EOTask in the scope of the Global Earth Monitor Project, contributed by @meengel.
  • Used evalscript generation utility from sentinelhub-py in SH related EOTasks.
  • Deprecated the EOPatch.merge method and extracted it as a function.
  • Deprecated the OVERWRITE_PATCH permission and enforcing the usage of explicit string permissions.
  • Encapsulated FeatureDict class as Mapping, removed inheritance from dict.
  • Switched to new-style typed annotations.
  • Introduced the ruff python linter, removed flake8 and isort (covered by ruff).
  • Fixed issue with occasionally failing scheduled builds on the master branch.
  • Various refactoring efforts and dependency improvements.
  • Various improvements to tests and code.

Version 1.4.1

14 Mar 10:44
c796a8e
Compare
Choose a tag to compare

The future direction of eo-learn will start prioritizing reliability and safety of code. After a lot of debate we decided that EOPatches must be well defined in the sense of geo-spatial information (bounding box) and, when using temporal features, temporal information (timestamps). In this light we decided to slowly adjust the code so that ill-formed EOPatches would occur less often. The end goal is to separate these patch-defining meta-information from other EOPatch features.

In this minor release we added a fair amount of deprecation warnings, that should help users to adapt their code ahead of any big codebreaking changes.

  • The codebase is now fully annotated and type annotations are mandatory for all new code.
  • In the future EOPatch objects will require a valid bbox. For now the users are warned when no such value is provided.
  • SaveTask and LoadTask now automatically save/load the bounding box whenever possible, even if not specified in features parameter. CopyTask and MergeEOPatchesTask also always include the bounding box when possible.
  • The EOPatch attribute bbox can no longer be deleted via the del command.
  • The EOPatch attribute timestamp was renamed into timestamps. The old name still works, but the users are notified. Similarly for FeatureType.TIMESTAMP which was renamed to FeatureType.TIMESTAMPS.
  • Feature parsers from eolearn.core.utils.parsers now support callables as input for allowed_feature_types, which are used for filtration over all feature types. Due to this improvement the class FeatureTypeSet was deprecated.
  • Certain rarely used methods of FeatureType were deprecated. Method is_raster has been renamed to is_array and designates feature types that contain numpy arrays. We also added is_image for types that denote temporal and timeless imagery.
  • Contributors are no longer listed in file headers, but are instead listed in the CREDITS.md file in the root of the repository.
  • Updated CONTRIBUTING.md instructions.
  • Various other minor improvements and deprecations.

Version 1.4.0

20 Jan 11:04
bb3ad5b
Compare
Choose a tag to compare

Changelog:

  • (codebreaking) Complete overhaul of eolearn.coregistration. See documentation for details.
  • (codebreaking) Removed non-working HVPlot backend for eolearn.visualization.
  • (codebreaking) The SpatialResizeTask had a bug when resizing w.r.t resolution. The issue was fixed and the signature of the task was redesigned to better avoid mistakes. See documentation for details.
  • (codebreaking) The EOPatch methods get_features and get_feature_list were recombined into a new get_features method. The method get_time_series was removed. See documentation for details.
  • (codebreaking) Removed unsound use_int_coords option in eolearn.ml_tools.sampling.random_point_in_triangle.
  • Added ability to specify query in execute method of MeteoblueTask.
  • SentinelHubInputTask no longer saves redundant data into meta-features.
  • Module eolearn.core.utils.types was moved to eolearn.core.types. Old one will be removed in the future.
  • Switched opencv-contrib-python-headless requirement to opencv-python-headless
  • Added type annotations to most of the code base.
  • Various improvements to tests and code.

Version 1.3.1

23 Nov 15:19
55cfb24
Compare
Choose a tag to compare

Changelog:

  • Sentinel Hub IO tasks now support a custom timestamp filtration via timestamp_filter parameter, contributed by @ColinMoldenhauer.
  • MergeFeatureTask now supports the axis parameter.
  • Fix minor issues with the coregistration module.
  • Prepare for future removal of sentinelhub.os_utils.
  • Fix type annotations after mypy update.
  • Improvements to tests and various minor changes.

Version 1.3.0

06 Oct 11:34
0fd30fc
Compare
Choose a tag to compare

Changelog:

  • (codebreaking) Adapted Sentinel Hub tasks to sentinelhub-py 3.8.0 which switched to Catalog 1.0.0.
  • (codebreaking) Removed support for loading pickled objects in EOPatches (deprecated since version 1.0.0).
  • (codebreaking) Various improvements of FeatureIO class. Only affects direct use of class.
  • Added type annotations to majority of eolearn.core. The types are now exposed via py.typed file, which enables use of mypy. Added type-checking to CI for the core module.
  • Numpy-array based features can now save and load object populated arrays.
  • Improved documentation building, fixed links to GitHub.
  • Improved test coverage.
  • Added pre-commit hooks to repository for easier development.
  • Various minor improvements.