We downloaded the Global Human Settlement Model grid (R2023) (GHS-SMOD) GeoTIFF
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
We wrote a script to iterate every project in the AidData that included geographic information
We used Turf.js to get the centroid of that geographic feature
var centroid = turf.centroid(feature);
gdallocationinfo -valonly -wgs84 GHS-SMOD.tif $LAT $LNG
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" Source30 = 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.
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.
We added two Urban Index columns with these values to the AidData Excel file, which can be downloaded here