This report measures tree canopy in Metro Manila using Sentinel-2 surface-reflectance imagery, aggregated to the seventeen LGUs of the National Capital Region defined by PSA. Each 30-metre pixel is classified by a human-calibrated model, a gradient-boosted classifier over NDVI, Dynamic-World tree probability, Meta v2 one-metre canopy height, ESA land cover, and the raw Sentinel-2 spectral bands, trained on 656 manually labelled high-resolution pixels. Against those labels it scores F1 zero point seven eight and IoU zero point six four, well above the older NDVI greater-than-zero-point-six-two baseline (F1 zero point six eight), which is kept only as a comparison. It still over-calls some dense low vegetation, so the figure is a tree-canopy estimate with a known grass-and-scrub margin, not a pixel-exact census.
The area-weighted canopy across the NCR is roughly nine to ten per cent (the latest annual epoch reads eight point eight two per cent but is provisional). These are annual cross-sectional snapshots, not a change series. The calibrated model holds a steady band year to year; the old NDVI baseline swung about two point eight percentage points as greenness shifts pushed pixels across the fixed threshold, an imagery artefact the model removes.
Quezon City carries the largest absolute canopy share by area at about twenty-two per cent, anchored by the La Mesa watershed, UP Diliman, and the Wack Wack greens. The largest 2019-to-2026 snapshot differences sit in Caloocan, Valenzuela, and Marikina, but these are differences between cross-sectional snapshots, not measured canopy loss. Per-LGU values for every epoch in the series are in Fig 4 and the downloadable CSV. Open the map →
Inputs, the canopy model and its feature set, and aggregation logic are documented on the methodology page. The published CSV is hash-pinned; running make hash-verify against a clean checkout reproduces the canonical artefact byte-for-byte.