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
- It does not use official flood hazard maps. Flood-proneness is a proxy derived from an open global elevation model (low slope and low height above nearby drainage).
- It is not a risk assessment and should not be used for planning, insurance or emergency decisions.
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
- Sentinel-2 imagery: Contains modified Copernicus Sentinel data (2026), processed by the author. Copernicus Sentinel data are free, full and open. Scenes were found through the Earth Search catalogue (Element 84).
- Elevation: Produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. Used under the Licence for the use of the Copernicus WorldDEM-30, which allows free use by the general public. The Copernicus programme bodies accept no liability for any use of the data.
- OpenStreetMap: © OpenStreetMap contributors, available under the Open Database Licence (ODbL 1.0). Roads, schools and health facilities come from the Geofabrik Philippines extract of 28 October 2026. The map's background tiles are also © OpenStreetMap contributors.
- Building footprints: Google Open Buildings v3, © Google Research (Sirko, Kashubin, Ritter and colleagues), licensed under CC BY 4.0 (also available under ODbL 1.0), distributed as GeoParquet by Source Cooperative.
- Land-cover cross-check: © ESA WorldCover project 2021 / Contains modified Copernicus Sentinel data (2021) processed by the ESA WorldCover consortium, licensed under CC BY 4.0.
- River lines: National Mapping and Resource Information Authority (NAMRIA), 1:250,000 river system, distributed by OCHA Philippines on the Humanitarian Data Exchange (2015). The exchange lists the licence only as "Other" and states no terms, so the layer was used for comparison and is not shown on the map or redistributed.
- Map software: Leaflet, © Vladimir Agafonkin and contributors (BSD 2-Clause).
Method
- 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.
- 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.
- 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.
- 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
- Weights. Across the 19 distinct weight combinations from {0, 1, 2}, the top-10% cells overlap the equal-weight top 10% by a median Jaccard of 0.59 (range 0.08 to 1.00), and rank correlation has a median of 0.64. A ranking on service gap alone shares almost nothing with the equal-weight ranking (overlap 0.08). Only 321 cells (0.1% of footprints) stay in the top 10% under at least 90% of the weightings.
- Empty ground. Only 38% of the equal-weight top-10% cells are populated (at least 5 footprints; 6,627 of 30,877 cells are). The highest scores sit largely on bare, flat, coastal or industrial ground. Restricting to populated cells, the top-10% overlap across weights has a median of 0.62 (minimum 0.01) and only 19 cells (202 footprints) are stable at the 90% level.
- Distance cap and flood thresholds. A 1 km or 3 km cap changes the top 10% little (overlap 0.87 and 0.92). The flood thresholds change the flagged area a lot (slope <= 1 deg and HAND <= 3 m gives 0.35x the baseline area, slope <= 3 deg and HAND <= 10 m gives 1.89x) and move the top 10% moderately (overlap 0.68 to 0.85).
- What this means. The three criteria point at different places, so a single weighted score is a policy choice,
not a finding. The map therefore also shows how many of three criteria each populated cell meets (green scarcity
= 0.5, flood share >= 0.1, service gap >= 0.75). 1,550 populated cells (58,620 footprints, about a third of the total) meet at least two; of those, 1,482 cells (57,466 footprints) are green-poor and flood-prone, and only 3 cells meet all three. Inside the populated area the service gap rarely applies, so the useful reading is "green-poor and flood-prone populated cells", with distance to services as context.
Limitations
- Resolution: 10 m land cover and 30 m elevation cannot resolve narrow drains, small buildings or street-level flooding.
- OpenStreetMap completeness varies by neighbourhood; missing schools or clinics will inflate the service gap. The extract holds 246 schools and 69 health facilities for the whole city. Roads (18,261 segments) agree with a separate Overpass count (18,321) and look well mapped. OSM buildings (39,928) look badly incomplete: Google Open Buildings finds 183,077 footprints at confidence >= 0.70 (240,145 at the dataset minimum of 0.65, 72,830 at 0.80), and only 24% of those footprints touch an OSM building, while 84% of OSM buildings touch a Google footprint.
- Building footprints are machine-detected from satellite imagery, with a confidence score but no building type or address. They can include false detections (rock, shadows, roofless sheds) and miss small or tree-covered buildings, and the count swings from 73k to 240k with the threshold, so it is used only for a relative exposure column, never as a count of houses. No ground-truth check was made.
- The elevation model measures the surface (buildings and trees included), which affects slope and drainage.
- One image date; seasonal vegetation and cloud masking affect the green-space estimate.
- Thresholds are simple and tuned by inspection.
Future extensions
- Weight sensitivity testing of the screening score.
- Comparison with official hazard layers where available.
- Multiple image dates, population data, and a validation set.