Skip to content

Releases: sentinel-hub/eo-learn

Version 1.0.0

09 Feb 17:47
Compare
Choose a tag to compare

Core Changes

  • EOPatch changes:

    • IO for vectors and meta-info switched from pickle to Geopackage, GeoJSON, and JSON files. Objects saved with pickle can be loaded but the format is deprecated.
    • Now supports the in keyword for checking whether an EOPatch contains a given feature.
    • Major update to EOPatch plotting functionality, which now features a simpler matplotlib back-end. See example notebook for more details.
    • Removed some outdated EOPatch methods such as get_feature, rename_feature, etc.
    • Representation (EOPatch.__repr__ method) skips empty features.
  • EOTask changes:

    • EOTask method _parse_features replaced with get_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 raw EOTask objects when building an EOWorkflow.

  • EOWorkflow changes:

    • LinearWorkflow is replaced with linearly_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. An EOWorkflow object can be constructed from end-nodes via from_endnodes method.
  • EOExecutor changes:

    • Added RayExecutor as an extension of EOExecutor for working with the ray library.
    • Execution arguments are now given w.r.t. EONode objects instead of EOTasks.
    • 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.
  • 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 of OutputTasks in the workflow.

  • FeatureType method is_time_dependant renamed to is_temporal.

Tasks

  • Added LinearFunctionTask which applies a linear function to features.
  • MorphologicalFilterTask moved from ml_tools to features module.
  • Sampling tasks moved geometry to ml_tools module. Sampling tasks have also been greatly upgraded, with the main being:
    • FractionSamplingTask for sampling random points in a class-balanced way
    • BlockSamplingTask 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

27 Oct 13:19
Compare
Choose a tag to compare

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 parameter bands_dtype is now by default set to None, which uses the default units of each band. Note: due to changes the task no longer normalizes the output when bands_dtype=np.uint16 is used.
  • Minor fixes and improvements

Version 0.10.0

14 Sep 13:51
235b5bb
Compare
Choose a tag to compare

Changelog:

  • EOWorkflow now automatically makes a shallow copy of each EOPatch before passing it to any EOTask 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 and EOPatch.__delitem__ methods.
  • Added eolearn.io.MeteoblueRasterTask and eolearn.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. Both SentinelHubInputTask and SentinelHubEvalscriptTask now return EOPatches with timestamps that don't have timezone information anymore.
  • Changed rasterio dependency to rasterio>=1.2.7
  • All but eolearn.core tests ported to pytest framework.
  • Switched from Travis CI to GitHub actions.
  • Minor fixes and improvements.

Version 0.9.2

21 May 15:29
Compare
Choose a tag to compare

Changelog:

  • Minor fixes and improvements:
    • SaveTask and LoadTask 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

23 Apr 14:34
Compare
Choose a tag to compare

Changelog:

  • Added new tasks VectorImportTask, GeopediaVectorImportTask, and GeoDBVectorImportTask to eo-learn-io.
  • Code improvements in LULC classification documentation notebook.
  • Minor improvements and fixes.

Version 0.9.0

26 Mar 16:02
Compare
Choose a tag to compare

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 and SentinelHubEvalscriptTask which use Sentinel Hub Process API.
    • Renamed AddSen2CorClassificationFeature to SentinelHubSen2corTask. Now it uses Process API instead of OGC.
  • Changes in Sentinel-2 cloud-masking tasks:
    • Renamed AddMultiCloudMaskTask to CloudMaskTask.
    • Removed AddCloudMaskTask as it is superseded by CloudMaskTask.
    • Fixed problems with incompatibility with the latest scikit-learn version.
  • Updated all notebooks in eo-learn repository.
  • Minor fixes and improvements:
    • better handling of KeyboardInterrupt in EOExecutor,
    • fixed plotting of raster features with binary dtype,
    • documentation fixes.

Version 0.8.1

05 Mar 18:35
Compare
Choose a tag to compare

Changelog:

Version 0.8.0

19 Oct 15:59
Compare
Choose a tag to compare

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 new DataCollection class from sentinelhub-py.
  • Extended ExportToTiff and ImportFromTiff tasks to support writing and reading from AWS S3 buckets. Implemented in cooperation with @wouellette.
  • Implemented EOPatch.merge method and MergeEOPatchesTask task for merging the content of any number of EOPatches. Implemented in cooperation with @wouellette.
  • Deprecated EOPatch.concatenate in favour of EOPatch.merge.
  • Added eolearn.features.DoublyLogisticApproximationTask, contributed by @bsircelj.
  • Optional parameter config for SaveTask and LoadTask 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

03 Aug 16:03
Compare
Choose a tag to compare

Changelog

  • Support for geopandas version 0.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

06 Jul 15:30
Compare
Choose a tag to compare

Changelog:

  • Added eo-learn dockerfiles and deployed official eo-learn docker images to Docker Hub
  • Added compress parameter to ExportToTiff, contributed by @atedstone
  • Minor fixes