Package: geodataflow.core
geodataflow.coreThe main subpackage ofGeodataFlowwhich implements basic building blocks (Pipeline engine & Modules) and commonly used functionalities.GeodataFlowis a Geoprocessing framework for fetching, translating and manipulating Geospatial data (Raster,Vector,EO/STAC collections) by using aPipelineor sequence of operations on input data. It is very much like theGDALlibrary which handles raster and vector data.The project is split up into several namespace packages.geodataflow.coreimplements core functionalities: the Pipeline engine and a CLI tool to run workflows.Workflow examplesAssuming you are usinggeodataflow.spatial(GDAL/OGR) as active backend implementation,GeodataFlowcan run workflows as the following:Converting a Shapefile to GeoPackage:# ==============================================================# Pipeline sample to convert a Shapefile to GeoPackage.# =============================================================={"pipeline":[{"type":"FeatureReader","connectionString":"input.shp"},# Extract the Centroid of input geometries.{"type":"GeometryCentroid"},# Transform CRS of geometries.{"type":"GeometryTransform","sourceCrs":4326,"targetCrs":32630},# Save features to Geopackage.{"type":"FeatureWriter","connectionString":"output.gpkg"}]}Fetching metadata of a S2L2A Product (STAC):# ==============================================================# Pipeline sample to fetch metadata of a S2L2A Product (STAC).# =============================================================={"pipeline":[{"type":"FeatureReader",# Define the input AOI in an embedded GeoJson."connectionString":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"id":0,"name":"My AOI for testing"},"geometry":{"type":"Polygon","coordinates":[[[-1.746826,42.773227],[-1.746826,42.860866],[-1.558685,42.860866],[-1.558685,42.773227],[-1.746826,42.773227]]]}}]}},# Transform CRS of geometries.{"type":"GeometryTransform","sourceCrs":4326,"targetCrs":32630},# Fetch metadata of EO Products that match one SpatioTemporial criteria.{"type":"EOProductCatalog","driver":"STAC","provider":"https://earth-search.aws.element84.com/v0/search","product":"sentinel-s2-l2a-cogs","startDate":"2021-09-25","endDate":"2021-10-05","closestToDate":"2021-09-30","filter":"","preserveInputCrs":true},# Save features to Geopackage.{"type":"FeatureWriter","connectionString":"output.gpkg"}]}Installationgeodataflow.corejust provides basic built-in modules, you need to install one of available backends in order to have a complete list of useful modules.Using pypiTo install the latest stable version frompypi, write this in the command-line:>pipinstallgeodataflow.coreTo view all available CLI tool commands and options:>geodataflow--helpListing all available modules:>geodataflow--modulesUsing dockerBuilding the container with:>dockerbuild-f./Dockerfile.core-tgeodataflow/cli:1.0.0.Getting start:>dockerrun--rm--namegdfgeodataflow/cli:1.0.0--help
>dockerrun--rm--namegdfgeodataflow/cli:1.0.0--modulesCreating an interactive bash shell:>dockerrun--rm-it--entrypoint"bash"geodataflow/cli:1.0.0ContributeHave you spotted a typo in our documentation? Have you observed a bug while runningGeodataFlow? Do you have a suggestion for a new feature?Don't hesitate and open an issue or submit a pull request, contributions are most welcome!LicenseGeodataFlowis licensed under Apache License v2.0.
SeeLICENSEfile for details.CreditsGeodataFlowis built on top of amazingly useful open source projects. SeeNOTICEfile for details about those projects
and their licenses.Thank you to all the authors of these projects!