Research Object Crate for Settlement Delineation and Analysis

Original URL: https://workflowhub.eu/workflows/1308/ro_crate?version=1

# Description The Settlement Delineation and Analysis (SDA) workflows generates a settlement network from geospatial settlement data. It can process _geotiff_ and _shapefile_ inputs and was originally designed to operate on the [World Settlement Footprint](https://geoservice.dlr.de/web/maps/eoc:wsf2019) dataset. Through multiple workflow stages, a settlement network is constructed, contracted (i.e. clustered) and ultimately analysed with centrality measures. The output _shapefile_ stores the aggregated settlement (multi-)polygons and their centrality values in fields. Optionally, the edges of the settlement graph can be visualized in a separate file as well. # Implementation The workflow comprises four main stages, each implemented as a standalone executable, with the interface wrapped in a CWL definition file. * **Filter**: At first, the raster input is polygonized, and settlements not fulfilling the user-specified filter condition are dropped * **Neighbours**: The adjacencies of the settlements are computed according to a user-configurable criterion. The graph is stored in a central graph database. * **Contraction**: The settlement graph is contracted with edges fulfilling the contraction criterion being removed from the graph and the incident vertices merged. The connectivity to former neighbors of aggregated vertices is restored afterwards. * **Analysis**: The final stage computes selected centrality measures on the contracted graph and writes the centrality values in the output shapefile. Optionally, this stage can visualize the graph's edges in a separate output file. Additionally, three orchestrational task are needed: * **Split**: Splits the input _geotiff_ or _shapefile_ to enable concurrent processing. * **Components**: Identifies connected components in the settlement graph, which are the unit of parallelization for the **Contraction** and **Analysis** stage. * **Merge**: Merges the output files of the **Analysis** stage into a single file. The **Job Generator** creates CWL jobs for the aformentionend tasks and models their dependencies in a directed acyclic graph (DAG). The **Scheduler** queues the jobs according to the DAG and submits them to an CWL executor, which runs the job in a separate child process. Both the job generator and scheduler are utilized by the workflow's _main_ file (SettlementDelineation.h/cpp). # Deployment The workflow can be easily deployed with a **docker-compose** setup. Since the workflow requires a running graph database instance, the **docker-compose** file joins both the _Memgraph_ database and the **fishnet/sda** image. ```shell docker compose up -d ``` Then change your directory to the mounted directory, specified in the **docker-compose**, by default: **~/fishnet**. The workflow can then be executed using the *docker exec*, specifying the inputs/config/outputs as relative paths from the mounted directory. ```docker docker exec fishnet SettlementDelineation -i INPUT_FILE -c CFG_FILE -o OUTPUT_FILE For example: docker exec fishnet SettlementDelineation -i input/Astana_KAZ.tiff -c cfg/sda-workflow.json -o output/AstanaAnalysis.shp

Author
Lorenz Gruber
License
MIT-Modern-Variant

Contents

Main Workflow: Settlement Delineation and Analysis
Size: 493 bytes
Main Workflow Diagram: JobDAG.png
Size: 341085 bytes