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 To run the **Settlement Delineation and Analysis** workflow, the easiest way is to use [SettlementDelineationAnalysis.py](app/sda-workflow/SettlementDelineationAnalysis.py), which wraps the command line interface of the main binary and executes it in a container using _docker-compose_, mounting the required input and configuration files in the container. ### Software Requirements - _Docker Compose_ ### Running the Workflow ``` python3 SettlementDelineationAnalysis.py -i INPUT_FILE -c CONFIG_FILE.json -o OUTPUT_FILE.shp ``` - **Input**: Input GIS file (*GeoTIFF* | *Shapefile*) on settlement location (e.g. [WSF](https://geoservice.dlr.de/web/maps/eoc:wsf2019)) - **Config**: JSON file containing the config for the workflow run (e.g. [Example Config](app/sda-workflow/sda-docker.json) ) - **Output**: Path of output shapefile The input, config, intermediate and final result files will be mounted on the host system, which is by default: **${HOME}/.fishnet/**.

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