A module to create arbitrary regional boundary datasets for energy systems modelling
This is a modular snakemake workflow created as part of the Modelblocks project. It can be imported directly into any snakemake workflow.
For more information, please consult the Modelblocks documentation,
the integration example,
and the snakemake documentation.
Data processing steps:
- The configuration file is read to identify the datasets to use as well as the specific countries and regional aggregation (
subtypein the configuration) to process.- Country landmass data: eurostat NUTS, GADM, geoBoundaries, and Overture Maps are supported.
- Exclusive Economic Zone (EEZ) data: MarineRegions.org.
- Individual country files are downloaded and harmonised to fit a standardised schema.
- If identified, contested regions are removed at this stage.
- Land is clipped using maritime Exclusive Economic Zones (EEZ).
- Optionally, a Voronoi algorithm is run to separate EEZ areas to fit subnational regions.
- Each country file is combined and then clipped using its neighbours to minimise overlapping polygons.
Tip
The subtype naming matches that of the source database. For example, NUTS uses 0, 1, 2 and 3 (NUTS0, NUTS1, NUTS2, etc.).
Use the references at the bottom of this page for more details.
Caution
To increase the replicability of your workflow, we recommend using NUTS and geoBoundaries as sources whenever possible as they have more stable hosting methods than Overture Maps and GADM.
Please consult the configuration README and the configuration example for a general overview on the configuration options of this module.
This module only has one output: a geoparquet file with your requested geo-boundary "shapes".
Please consult the interface file for more information.
We use pixi as our package manager for development.
Once installed, run the following to clone this repository and install all dependencies.
git clone git@github.com:modelblocks-org/module_geo_boundaries.git
cd module_geo_boundaries
pixi install --allFor testing, simply run:
pixi run test-integrationTo test a minimal example of a workflow using this module:
pixi shell # activate this project's environment
cd tests/integration/ # navigate to the integration example
snakemake --use-conda --cores 2 # run the workflow!This module is based on the following research and datasets. We encourage users to cite both the original source and our workflow.
- eurostat NUTS (various years). Nomenclature of territorial units for statistics (NUTS).
- License: reuse is authorised provided the source is acknowledged. https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Copyright/licence_policy
- GADM 4.1. (2018). Global Administrative Areas (GADM).
- License: GADM data is freely available for academic and non-commercial use. https://gadm.org/license.html.
- geoBoundaries (most recent version). William & Mary geoLab.
- License: varies per dataset type (from CC-BY 4.0 compliant to non-commercial use only). Consult their documentation for details. https://www.geoboundaries.org/.
- Marine Regions World EEZ v12 (2023). Flanders Marine Institute (MarineRegions.org).
- License: CC-By. See https://www.marineregions.org/disclaimer.php.
- Overture Maps Divisions database (most recent version). Overture Maps Foundation.
- License: ODbL. See https://docs.overturemaps.org/attribution/ and https://opendatacommons.org/licenses/odbl/summary/ for details.

