Home / Works / Cebu City Green Space and Flood-Prone Screening / Methodology

Methodology and limits

Open the map   Back to the project page

Status. Working draft. Not yet done: a check of the flood proxy against real flood records, a by-eye accuracy check of the land-cover map, and a cross-check of schools and health facilities against a second source.

Purpose. A screening map of Cebu City that highlights areas with little green space, flood-prone terrain and poor reach to schools and health facilities. It is a first-pass screening tool, not a hazard assessment.

What this is not

Data

Layer Source Resolution / scale
Land cover Sentinel-2 L2A, one low-cloud dry-season scene (25 April 2026) 10 m (20 m bands resampled)
Elevation Copernicus DEM GLO-30 about 30 m
Roads, schools, health facilities OpenStreetMap, Geofabrik Philippines extract of 28 October 2026 vector
Building footprints Google Open Buildings v3; OpenStreetMap buildings for comparison vector, machine-detected
Land-cover cross-check ESA WorldCover 2021 10 m
River lines (comparison only) NAMRIA 1:250,000 river system vector, major rivers only

Credits

Method

  1. Land cover: Sentinel-2 L2A scene of 2026-04-25 (8.5% cloud scene-wide). Cloud, shadow and cirrus are masked with the SCL band (5.4% of the city). Classes from NDVI, NDBI and MNDWI: water (MNDWI >= -0.10 and NDVI < 0.00), green space (NDVI >= 0.70), otherwise non-vegetated. Result inside the city: green space 77.8% (240 km2), non-vegetated 12.5% (39 km2), water 4.2% (13 km2). Because NDBI barely separates built-up from bare ground here (the best NDBI threshold was the edge of the search range), the middle class is best read as "non-vegetated", not as built-up only. Thresholds were chosen by a search on 2 km checkerboard blocks and scored on the other blocks against ESA WorldCover 2021: mean F1 0.82 on the hold-out blocks (0.68 before tuning). Agreement with WorldCover over the whole city is 90.9%, but that figure includes the tuning blocks. WorldCover is a model, not ground truth, so this is agreement, not accuracy; a visual check in QGIS is still to do.
  2. Flood-proneness proxy: the Copernicus 30 m DEM is reprojected to UTM 51N, pits and depressions are filled, and D8 flow direction and accumulation are computed with pysheds. Drainage is every cell with accumulation above 1,000 cells (about 0.9 km2 upstream) plus open water from the land-cover map. HAND (height above nearest drainage) is computed for every cell. A land cell is flagged when slope <= 2 degrees and HAND <= 5 m. Open water and DEM cells at or below 0 m (sea) are excluded. Result: 12.8 km2 flagged, 4.1% of the city boundary. Flagged cells have a median elevation of 10 m, and share of cells flagged falls from 42% at 5 to 10 m elevation to under 1% above 100 m, so the pattern follows the coastal plain and river valleys as expected. The thresholds are round numbers chosen for a screening map, not calibrated against observed floods; they should be varied in the future sensitivity extension. Official hydrography check: the only open NAMRIA river layer found is the 1:250,000 "Water Courses (Rivers)" file on HDX (OCHA Philippines, 2015; licence listed as "Other"). It has 29 segments, 129 km, inside the city. 80% of those river cells lie within 150 m of a DEM-derived stream, so the modelled streams follow the major official rivers; only 22% of the DEM streams lie near an official river, which is expected because 1:250,000 omits small streams. Adding the official lines to the drainage network raises the flagged area from 12.8 to 13.4 km2 (overlap 95%), so the result is not sensitive to this choice. Finer NAMRIA hydrography exists but has to be requested from NAMRIA by formal letter; it was not available. Not captured: rainfall, drains and culverts, tides and storm surge, buildings, and DEM error (several metres in places). A few flagged cells sit on high flat ground next to headwater streams.
  3. Service gap: straight-line distance from each 100 m cell centre to the nearest OSM school and nearest OSM health facility, each capped at 2 km and scaled 0 to 1, then averaged. Distances are not along roads, and OSM school and health coverage is probably incomplete, which inflates the gap in places.
  4. Screening score: 100 m grid in UTM 51N, 30,877 cells at least half inside the city. Three components scaled 0 (good) to 1 (worse): green scarcity (1 minus the green share of valid pixels), flood proxy (share of the cell flagged) and service gap. Score = equal-weight mean. 1,633 cells (5.3%) are mostly cloud-masked and get no score rather than a zero. Footprints per cell (Google Open Buildings, confidence >= 0.70) are kept as a relative exposure column and are not part of the score. Result: median score 0.28, 90th percentile 0.43, maximum 0.86. Spread by component (standard deviation): green scarcity 0.30, service gap 0.24, flood proxy 0.16. The top 5% of cells hold 9.9% of the footprints and the top 10% hold 23.7%. The very top cells (1%) are flat, built-up and green-poor, with a median position near 10.28 N, 123.88 E, with flood and green scarcity both about 0.85 and a middling service gap. The components are not independent: green scarcity and the flood proxy are positively related (Spearman 0.45) because both are high on the built-up coastal plain, while the service gap is negatively related to both (-0.45, -0.41) because the far, green hills are the farthest from mapped schools and clinics. Equal weights therefore trade these signals off against each other; weight sensitivity testing is a future extension.

Robustness checks

Limitations

Future extensions