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.