Methodology for map

  1. We downloaded the Global Human Settlement Model grid (R2023) (GHS-SMOD) GeoTIFF

  2. We also downloaded AidData's Geospatial Global Chinese Development Finance Dataset, Version 3.0 and convered it to GeoJSON using the ogr2ogr command line tool

ogr2ogr -f GeoJSON all_combined_global.geojson all_combined_global.gpkg
  1. We wrote a script to iterate every project in the AidData that included geographic information

  2. We used Turf.js to get the centroid of that geographic feature

var centroid = turf.centroid(feature);
  1. We took that latitude and longidtude and used GDAL command line tool to query the GHS-SMOD GeoTIFF for the value at that point.
gdallocationinfo -valonly -wgs84 GHS-SMOD.tif $LAT $LNG
  1. By running gdalinfo -stats GHS-SMOD.tif on The Global Human Settlement SMOD data, we can see every 1km2 of land on Earth is marked with one of eight values "via a logic of cell clusters population size, population and built-up area densities as defined by the stage I of the Degree of Urbanisation (European Commission & Statistical Office of the European Union, 2021) and recommended by the UN STAT COM" Source
30 = Urban Centre
23 = Dense Urban Cluster
22 = Semi-dense Urban Cluster
21 = Suburban or per-urban
13 = Rural cluster
12 = Low Density Rural
11 = Very low density rural
No value

Values 21 ,22, 23 and 30 are part of the Urban domain. Values 11, 12 and 13 are considered part of the Rural domain.

  1. We added these values to the GeoJSON feature and plotted them on a map using MapLibre GL JS and PMTiles for open source tile serving.

  2. We added two Urban Index columns with these values to the AidData Excel file, which can be downloaded here


Other open source tools