Releases: sentinel-hub/eo-learn
Version 1.5.7
- Remove
numpy<2
restriction.
Version 1.5.6
- Limit
geopandas
version to < 1.0.0
Version 1.5.5
SnowMaskTask
now correctly handles temporally empty eopatches.
Version 1.5.4
- Minor fixes for documentation
Version 1.5.3
- Fix version
numpy<2
in anticipation of numpy 2.0 release.
Version 1.5.2
RayExecutor
can now forward remote kwargs to ray jobs.ImportTiffTask
no longer uses theuse_vsi
parameter. The IO part was fully off-loaded torasterio
.ImportTiffTask
andExportTiffTask
parameterfolder
was renamed topath
. The renaming is backwards compatible for now.
Version 1.5.1
MorphologicalFilterTask
adapted to work on boolean values.- Added
temporal_subset
method toEOPatch
, which can be used to extract a subset of anEOPatch
by filtering out temporal slices. Also added a correspondingTemporalSubsetTask
. EOExecutor
now has an option to treatTemporalDimensionWarning
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
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 ofeo-learn-mask
and similar is no longer necessary and users are warned when such installations are detected.- Changes to
timestamps
andbbox
attributes ofEOPatch
objects:FeatureType.TIMESTAMPS
andFeatureType.BBOX
have been deprecated, data should be accessed via attributes. Feature parsers no longer return these values (for instance when callingEOPatch.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 iftimestamps
areNone
. 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 theload_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 tocv2
to reduce the number of dependencies. eolearn.geometry.morphology
tasks now usecv2
instead ofscikit-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 thes2cloudless
package. For the multi-temporal one check here.- Certain tasks (for instance
SaveTask
andLoadTask
) no longer pass arguments to the super-class via **kwargs in order to improve documentation and type-checking. SaveTask
andLoadTask
now raiseOSError
exceptions instead ofIOError
.- 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 toeolearn.features.ndi
. - The submodule
eolearn.ml_tools.extra.plotting
has been moved toeolearn.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
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 relatedEOTasks
. - 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 asMapping
, removed inheritance fromdict
. - Switched to new-style typed annotations.
- Introduced the
ruff
python linter, removedflake8
andisort
(covered byruff
). - 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
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 validbbox
. For now the users are warned when no such value is provided. SaveTask
andLoadTask
now automatically save/load the bounding box whenever possible, even if not specified infeatures
parameter.CopyTask
andMergeEOPatchesTask
also always include the bounding box when possible.- The
EOPatch
attributebbox
can no longer be deleted via thedel
command. - The
EOPatch
attributetimestamp
was renamed intotimestamps
. The old name still works, but the users are notified. Similarly forFeatureType.TIMESTAMP
which was renamed toFeatureType.TIMESTAMPS
. - Feature parsers from
eolearn.core.utils.parsers
now support callables as input forallowed_feature_types
, which are used for filtration over all feature types. Due to this improvement the classFeatureTypeSet
was deprecated. - Certain rarely used methods of
FeatureType
were deprecated. Methodis_raster
has been renamed tois_array
and designates feature types that contain numpy arrays. We also addedis_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.