Releases: sentinel-hub/eo-learn
Releases · sentinel-hub/eo-learn
Version 1.0.0
Core Changes
-
EOPatch
changes:- IO for vectors and meta-info switched from
pickle
to Geopackage, GeoJSON, and JSON files. Objects saved withpickle
can be loaded but the format is deprecated. - Now supports the
in
keyword for checking whether anEOPatch
contains a given feature. - Major update to
EOPatch
plotting functionality, which now features a simplermatplotlib
back-end. See example notebook for more details. - Removed some outdated
EOPatch
methods such asget_feature
,rename_feature
, etc. - Representation (
EOPatch.__repr__
method) skips empty features.
- IO for vectors and meta-info switched from
-
EOTask
changes:EOTask
method_parse_features
replaced withget_feature_parser
and additional helper methods (parse_feature
,parse_renamed_feature
,parse_features
,parse_renamed_features
).- Removed
EOTask.__mul__
as task concatenation as it was unsound.
-
EONode
is a newly introduced object for specifying computational graphs. It replaces rawEOTask
objects when building anEOWorkflow
. -
EOWorkflow
changes:LinearWorkflow
is replaced withlinearly_connect_tasks
function that prepares nodes for a linear workflow.- No longer accepts tuples in execution arguments. In cases where this is required, passing arguments to a task can be done with the new
InputTask
. EONodes
form a tree-like structure of dependencies, hence the end-nodes of a workflow contain all information. AnEOWorkflow
object can be constructed from end-nodes viafrom_endnodes
method.
-
EOExecutor
changes:- Added
RayExecutor
as an extension ofEOExecutor
for working with theray
library. - Execution arguments are now given w.r.t.
EONode
objects instead ofEOTasks
. - Now always returns results, which by default only contain statistics. Other data (for instance the final EOPatch) can be added to results with the new
OutputTask
. - Additionally, supports a
filesystem
argument for saving logs and reports. - Reports now have the option to only link to logs, greatly reducing size in case of large numbers of EOPatches. Logs files are now also more informative.
- Added
-
FeatureParser
now supports fewer input formats but handles those better. It now returns lists instead of generators. See documentation for more information. -
WorkflowResults
are re-done. They now contain execution stats of nodes (start and end times) and the outputs ofOutputTask
s in the workflow. -
FeatureType
methodis_time_dependant
renamed tois_temporal
.
Tasks
- Added
LinearFunctionTask
which applies a linear function to features. MorphologicalFilterTask
moved fromml_tools
tofeatures
module.- Sampling tasks moved
geometry
toml_tools
module. Sampling tasks have also been greatly upgraded, with the main being:FractionSamplingTask
for sampling random points in a class-balanced wayBlockSamplingTask
for randomly sampling larger blocks of data (can also be 1 pixel blocks)GridSamplingTask
for deterministically sampling according to a grid.
- Removed
feature_extractor
module. - Removed unused submodules of
ml_tools
(classifier
,postprocessing
, ...) - To reduce core dependencies some functionalities have been moved to
extra
modules. - Removed deprecated and outdated methods and tasks.
Other
- Moved many examples to new repository. The rest were updated.
- Switched to github actions for CI.
- Code was reformatted with
black
and is now checked to be compliant with the standard. - Abstract base classes are now correctly enforced.
- Added utility functions for working with S3 and AWS.
- Various minor changes.
Version 0.10.1
Changelog:
- Copying EOPatches no longer forces loading of features if the EOPatch was loaded with
lazy_loading=True
SentinelHubInputTask
now requests bands with correct units and should now work with more data collections. The parameterbands_dtype
is now by default set toNone
, which uses the default units of each band. Note: due to changes the task no longer normalizes the output whenbands_dtype=np.uint16
is used.- Minor fixes and improvements
Version 0.10.0
Changelog:
EOWorkflow
now automatically makes a shallow copy of eachEOPatch
before passing it to anyEOTask
in the workflow.- Streamlined naming conventions of EOTasks - every name now ends with
Task
. Old names have been deprecated. - Improved functionality of merging EOPatches, particularly of merging time-dependent features.
- Removed support for Python 3.6 and added official support for Python 3.9.
- Implemented
EOPatch.copy
andEOPatch.__delitem__
methods. - Added
eolearn.io.MeteoblueRasterTask
andeolearn.io.MeteoblueVectorTask
for obtaining weather data. Joint effort with Meteoblue. VectorToRasterTask
now supports rasterization of time-dependant vector features. Contributed by @asylve.- Fixes in
SentinelHubInputTask
. BothSentinelHubInputTask
andSentinelHubEvalscriptTask
now return EOPatches with timestamps that don't have timezone information anymore. - Changed
rasterio
dependency torasterio>=1.2.7
- All but
eolearn.core
tests ported topytest
framework. - Switched from Travis CI to GitHub actions.
- Minor fixes and improvements.
Version 0.9.2
Changelog:
- Minor fixes and improvements:
SaveTask
andLoadTask
don't automatically store a filesystem object anymore,- fix in
ImportFromTiff
about file extensions, contributed by @rpitonak, - fix in
SentinelHubInputTask
about data collection bands handling, - fix in
GeoDBVectorImportTask
, NormalizedDifferenceIndexTask
doesn't show division warnings anymore,- improvement in
PointSamplingTask
- improvements in LULC documentation notebook.
Version 0.9.1
Changelog:
- Added new tasks
VectorImportTask
,GeopediaVectorImportTask
, andGeoDBVectorImportTask
toeo-learn-io
. - Code improvements in LULC classification documentation notebook.
- Minor improvements and fixes.
Version 0.9.0
Changelog:
- Changes in
eo-learn-io
tasks that interact with Sentinel Hub services:- Added
SentinelHubEvalscriptTask
that downloads data given a user-defined evalscript. - Removed all tasks that interact with Sentinel Hub OGC services. They are fully replaced by
SentinelHubInputTask
andSentinelHubEvalscriptTask
which use Sentinel Hub Process API. - Renamed
AddSen2CorClassificationFeature
toSentinelHubSen2corTask
. Now it uses Process API instead of OGC.
- Added
- Changes in Sentinel-2 cloud-masking tasks:
- Renamed
AddMultiCloudMaskTask
toCloudMaskTask
. - Removed
AddCloudMaskTask
as it is superseded byCloudMaskTask
. - Fixed problems with incompatibility with the latest
scikit-learn
version.
- Renamed
- Updated all notebooks in
eo-learn
repository. - Minor fixes and improvements:
- better handling of
KeyboardInterrupt
inEOExecutor
, - fixed plotting of raster features with binary dtype,
- documentation fixes.
- better handling of
Version 0.8.1
Changelog:
- Added example use-case about creating a timelapse with batch processing.
- Added example use-case about crop type classification. Contributed by @Gnilliw
- Updated code to be compatible with the latest releases
sentinelhub-py
3.2.0
ands2cloudless
1.5.0
. - Fixed an issue in
eolearn.coregistration.RegistrationTask
. - Fixed an issue in
eolearn.io.ExportToTiff
with paths on Windows. - Various minor improvements.
Version 0.8.0
Changelog:
- Switched from "data source" to "data collection" terminology according to changes in
sentinelhub-py
and Sentinel Hub services. - Improvements in
SentinelHubInputTask
to better support any type of data collection. Using newDataCollection
class fromsentinelhub-py
. - Extended
ExportToTiff
andImportFromTiff
tasks to support writing and reading from AWS S3 buckets. Implemented in cooperation with @wouellette. - Implemented
EOPatch.merge
method andMergeEOPatchesTask
task for merging the content of any number of EOPatches. Implemented in cooperation with @wouellette. - Deprecated
EOPatch.concatenate
in favour ofEOPatch.merge
. - Added
eolearn.features.DoublyLogisticApproximationTask
, contributed by @bsircelj. - Optional parameter
config
forSaveTask
andLoadTask
to enable defining custom AWS credentials. - Fixed a bug in
eolearn.features.ValueFilloutTask
. - Started releasing
eo-learn
(sub)packages also as wheels. - Minor improvements and fixes.
Version 0.7.7
Changelog
- Support for
geopandas
version0.8
- Added a notebook with an end-to-end example on how to transform a ML-model into an evalscript and run it with Sentinel Hub service
- Added
eolearn.features.ClusteringTask
, contributed by @bsircelj - An option to define a custom log filter for
EOExecutor
- Data mask obtained by
SentinelHubInputTask
has now boolean type instead of uint8 - Updates of some example notebooks
- A few minor fixes
Version 0.7.6
Changelog:
- Added eo-learn dockerfiles and deployed official eo-learn docker images to Docker Hub
- Added
compress
parameter toExportToTiff
, contributed by @atedstone - Minor fixes