Vanuatu#
Authors: David Newhouse, Andres Chamorro
This notebook presents the results of a poverty maping exercise done for Vanuatu, at the council level. The main objective is to assess whether small area estimation with geospatial features can be a feasible alternative to the traditional method that relies on a census.
Data Sources#
National Sustainable Development Baseline Survey (2019-2020)
Population Grid (World Pop 2020)
Geospatial Features (list below)
Description |
Source |
|
---|---|---|
0 |
Population and demographic structure |
Worldpop unconstrained |
1 |
Elevation, DEM, 30 meters |
COPERNICUS 2010 |
2 |
Distance to any road |
Open Street Map |
3 |
Land cover shares |
ESA Worldcover 10m 2020 |
4 |
Built-up area |
World Settlement Footprint 2019 |
5 |
Nighttime ligths 2020 composite |
VIIRS |
6 |
Electrification rate |
High Resolution Energy Access 2019 |
7 |
Building heights |
WSF 3D 2019 |
8 |
Count of buildings |
Open Street Map |
9 |
Count of cell towers |
Open Cell ID |
10 |
Precipitation |
CHIRPS |
11 |
Temperature |
TerraClimate (4km) |
12 |
Drougth Index |
TerraClimate (4km) |
13 |
NDVI |
MODIS (250m) |
Methodology#
Fist, we create a uniform grid to aggregate population and the various geospatial statistics. We use the H3 hexabin at level 6, for which each grid cell is roughly equivalent to 36 sq. km.
The map below shows the grid with a subset of statistics.
Show code cell source
grid = gpd.read_file(join(out_dir, "h3_res7.geojson"))
stats = pd.read_csv(join(out_dir, "david", "grid_constrained.csv"))
stats.cropland = stats.cropland*100
grid = grid.merge(stats, on='hex_id', how='inner')
m = grid.explore(
column='pop_sum',
tooltip="pop_sum",
cmap="YlGnBu",
scheme='naturalbreaks',
legend_kwds=dict(colorbar=True, caption='Population', interval=True),
name="Population, World Pop"
# tiles="Stamen Terrain"
)
m = grid.explore(
m = m,
column='cropland',
tooltip="cropland",
cmap="Greens",
scheme='naturalbreaks',
legend_kwds=dict(colorbar=True, caption='% Cropland', interval=True, fmt="{:.0%}"),
name="Cropland"
)
m = grid.explore(
m = m,
column='viirs_sum',
tooltip="viirs_sum",
cmap="viridis",
scheme='naturalbreaks',
legend_kwds=dict(colorbar=True, caption='Sum of Lights', interval=True),
name="Nighttime Ligths"
)
m = grid.explore(
m = m,
column='building_heights_mean',
tooltip="building_heights_mean",
cmap="Reds",
scheme='naturalbreaks',
legend_kwds=dict(colorbar=True, caption='Average Building Height', interval=True),
name="Building Heights"
)
flm.LayerControl('topright', collapsed = False).add_to(m)
m