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 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.
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 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
Version History

Creator
Submitter
Views: 119 Downloads: 20
Created: 25th Feb 2025 at 08:41
Last updated: 25th Feb 2025 at 09:38


None