Eo-learn

Latest version: v1.5.7

Safety actively analyzes 682387 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 6

1.5.1

- `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.

1.5.0

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](https://github.com/sentinel-hub/eo-learn-examples/blob/main/extra-tasks/cloud_mask/cloud_mask.py).
- 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](https://github.com/sentinel-hub/eo-learn-examples/tree/main/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.

1.4.2

- 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.

1.4.1

- 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.

1.4.0

- (**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.

1.3.1

- 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.

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.