Releases: sentinel-hub/eo-learn
Releases · sentinel-hub/eo-learn
Version 1.0.0
Core Changes
-
EOPatchchanges:- IO for vectors and meta-info switched from
pickleto Geopackage, GeoJSON, and JSON files. Objects saved withpicklecan be loaded but the format is deprecated. - Now supports the
inkeyword for checking whether anEOPatchcontains a given feature. - Major update to
EOPatchplotting functionality, which now features a simplermatplotlibback-end. See example notebook for more details. - Removed some outdated
EOPatchmethods such asget_feature,rename_feature, etc. - Representation (
EOPatch.__repr__method) skips empty features.
- IO for vectors and meta-info switched from
-
EOTaskchanges:EOTaskmethod_parse_featuresreplaced withget_feature_parserand additional helper methods (parse_feature,parse_renamed_feature,parse_features,parse_renamed_features).- Removed
EOTask.__mul__as task concatenation as it was unsound.
-
EONodeis a newly introduced object for specifying computational graphs. It replaces rawEOTaskobjects when building anEOWorkflow. -
EOWorkflowchanges:LinearWorkflowis replaced withlinearly_connect_tasksfunction 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. EONodesform a tree-like structure of dependencies, hence the end-nodes of a workflow contain all information. AnEOWorkflowobject can be constructed from end-nodes viafrom_endnodesmethod.
-
EOExecutorchanges:- Added
RayExecutoras an extension ofEOExecutorfor working with theraylibrary. - Execution arguments are now given w.r.t.
EONodeobjects 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
filesystemargument 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
-
FeatureParsernow supports fewer input formats but handles those better. It now returns lists instead of generators. See documentation for more information. -
WorkflowResultsare re-done. They now contain execution stats of nodes (start and end times) and the outputs ofOutputTasks in the workflow. -
FeatureTypemethodis_time_dependantrenamed tois_temporal.
Tasks
- Added
LinearFunctionTaskwhich applies a linear function to features. MorphologicalFilterTaskmoved fromml_toolstofeaturesmodule.- Sampling tasks moved
geometrytoml_toolsmodule. Sampling tasks have also been greatly upgraded, with the main being:FractionSamplingTaskfor sampling random points in a class-balanced wayBlockSamplingTaskfor randomly sampling larger blocks of data (can also be 1 pixel blocks)GridSamplingTaskfor deterministically sampling according to a grid.
- Removed
feature_extractormodule. - Removed unused submodules of
ml_tools(classifier,postprocessing, ...) - To reduce core dependencies some functionalities have been moved to
extramodules. - 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
blackand 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 SentinelHubInputTasknow requests bands with correct units and should now work with more data collections. The parameterbands_dtypeis 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.uint16is used.- Minor fixes and improvements
Version 0.10.0
Changelog:
EOWorkflownow automatically makes a shallow copy of eachEOPatchbefore passing it to anyEOTaskin 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.copyandEOPatch.__delitem__methods. - Added
eolearn.io.MeteoblueRasterTaskandeolearn.io.MeteoblueVectorTaskfor obtaining weather data. Joint effort with Meteoblue. VectorToRasterTasknow supports rasterization of time-dependant vector features. Contributed by @asylve.- Fixes in
SentinelHubInputTask. BothSentinelHubInputTaskandSentinelHubEvalscriptTasknow return EOPatches with timestamps that don't have timezone information anymore. - Changed
rasteriodependency torasterio>=1.2.7 - All but
eolearn.coretests ported topytestframework. - Switched from Travis CI to GitHub actions.
- Minor fixes and improvements.
Version 0.9.2
Changelog:
- Minor fixes and improvements:
SaveTaskandLoadTaskdon't automatically store a filesystem object anymore,- fix in
ImportFromTiffabout file extensions, contributed by @rpitonak, - fix in
SentinelHubInputTaskabout data collection bands handling, - fix in
GeoDBVectorImportTask, NormalizedDifferenceIndexTaskdoesn't show division warnings anymore,- improvement in
PointSamplingTask - improvements in LULC documentation notebook.
Version 0.9.1
Changelog:
- Added new tasks
VectorImportTask,GeopediaVectorImportTask, andGeoDBVectorImportTasktoeo-learn-io. - Code improvements in LULC classification documentation notebook.
- Minor improvements and fixes.
Version 0.9.0
Changelog:
- Changes in
eo-learn-iotasks that interact with Sentinel Hub services:- Added
SentinelHubEvalscriptTaskthat downloads data given a user-defined evalscript. - Removed all tasks that interact with Sentinel Hub OGC services. They are fully replaced by
SentinelHubInputTaskandSentinelHubEvalscriptTaskwhich use Sentinel Hub Process API. - Renamed
AddSen2CorClassificationFeaturetoSentinelHubSen2corTask. Now it uses Process API instead of OGC.
- Added
- Changes in Sentinel-2 cloud-masking tasks:
- Renamed
AddMultiCloudMaskTasktoCloudMaskTask. - Removed
AddCloudMaskTaskas it is superseded byCloudMaskTask. - Fixed problems with incompatibility with the latest
scikit-learnversion.
- Renamed
- Updated all notebooks in
eo-learnrepository. - Minor fixes and improvements:
- better handling of
KeyboardInterruptinEOExecutor, - 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-py3.2.0ands2cloudless1.5.0. - Fixed an issue in
eolearn.coregistration.RegistrationTask. - Fixed an issue in
eolearn.io.ExportToTiffwith paths on Windows. - Various minor improvements.
Version 0.8.0
Changelog:
- Switched from "data source" to "data collection" terminology according to changes in
sentinelhub-pyand Sentinel Hub services. - Improvements in
SentinelHubInputTaskto better support any type of data collection. Using newDataCollectionclass fromsentinelhub-py. - Extended
ExportToTiffandImportFromTifftasks to support writing and reading from AWS S3 buckets. Implemented in cooperation with @wouellette. - Implemented
EOPatch.mergemethod andMergeEOPatchesTasktask for merging the content of any number of EOPatches. Implemented in cooperation with @wouellette. - Deprecated
EOPatch.concatenatein favour ofEOPatch.merge. - Added
eolearn.features.DoublyLogisticApproximationTask, contributed by @bsircelj. - Optional parameter
configforSaveTaskandLoadTaskto 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
geopandasversion0.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
SentinelHubInputTaskhas 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
compressparameter toExportToTiff, contributed by @atedstone - Minor fixes