RESEARCH QUESTION

Do satellite images of two cities encode meaningfully different social and environmental signals — and can computer vision surface patterns of urban inequality that ground surveys miss?

PIPELINE
Google Earth Engine
Sentinel-2 · VIIRS · Landsat 8
→
GDAL · Rasterio
reproject · resample · cloud-mask
→
PyTorch · U-Net/ViT
segmentation + attention
→
XGBoost
inequality index regression

Three modalities, one city read three ways

Each band answers a different policy question. Stacked, they describe who lives where, and how heat and green space are distributed across a city.

Seoul nighttime lights
Nighttime lights
VIIRS · 500m

Wealth & energy use. Gangnam glows 8× brighter than the outer districts.

Seoul vegetation
Vegetation
NDVI · Sentinel-2

Green access as an equity signal — a 3.1× gap between richest and poorest wards.

Seoul land surface temperature
Thermal
LST · Landsat 8

Land-surface temperature exposes the urban heat-island burden by neighbourhood.

SF nighttime lights
SF vegetation
SF land surface temperature
San Francisco, the same three bands ↑

Why vision kept changing

Three architectures, three different failure modes — not a straight line to the "best" model, but a record of what the previous one got wrong.

PHASE 1 · CNN CLASSIFICATION

ResNet-50 hits a wall

A whole-image classifier can say a tile is "urban" — it can't say where the block ends and the shadow begins. ResNet-50 kept losing the boundary between neighbourhoods whenever a cloud shadow crossed it, because classification throws away exactly the spatial structure a policy map needs.

ResNet-50
ResNet-50 classification results

Less confident on low-wealth residential blocks — F1 0.79 in SF, 0.72 in Seoul — mistaken for industrial zones ~1 in 5 times.

PHASE 2 · U-NET SEGMENTATION

Trading a label for a map

U-Net predicts a class for every pixel, so canopy is measured block by block instead of city-wide. At that resolution the two cities read differently: tree cover falls 35%→12% from wealthy to poor blocks in San Francisco and 28%→9% in Seoul, while building footprint runs the other way — 72% in poor neighbourhoods against 48% in wealthy ones.

▹ 95% mIoU on held-out tiles
ViT attention
Vision transformer attention embeddings
PHASE 3 · VISION TRANSFORMERS

Letting attention find the pattern

U-Net only sees a fixed pixel neighbourhood. Self-attention relates any patch to any other across all 13 bands, catching city-scale structure a convolution misses — like a heat corridor that only reads as a pattern at full extent.

ViT-B/16
R² 0.74 · 150ms
DiffusionSat
R² 0.81 · best fit
ResNet-152
R² 0.68 · 30ms

San Francisco vs. Seoul

Comparative inequality dashboard
SAN FRANCISCO

Topography & zoning drive the heat

The clearest signal is temperature — a 5.2°C gap between the richest and poorest census tracts, concentrated in the wealthy hills where tree cover is thickest.
Δ5.2°C
SEOUL

Density writes its own corridors

Seoul's gap is even wider — 7.8°C between richest and poorest tracts, the largest of either city, driven by thinner canopy and denser concrete corridors.
Δ7.8°C