Downloads · 30 days
0
xmpuspus/leaves-ph
leaves-ph is a tabular classification model from xmpuspus. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for sklearn. The card lists the license as mit.
The published per-pixel canopy model behind leaves.ph, an open, reproducible tree-cover map of Metro Manila (17 NCR cities plus Pateros), 2019 to 2026.
Downloads · 30 days
0
Access
Public
Updated May 31, 2026
Repo size
561 KB
Likes
0
Public
Click a slice to open those files.
.joblib561 KB · 91%
From the Hugging Face model README
The published per-pixel canopy model behind leaves.ph, an open, reproducible tree-cover map of Metro Manila (17 NCR cities plus Pateros), 2019 to 2026.
A HistGradientBoostingClassifier (scikit-learn) that labels each 30 m Sentinel-2 pixel as canopy or not, trained on 656 hand-labeled high-resolution pixels. It is the source of every figure on the site: the map, the per-LGU and per-barangay series, and the headline NCR canopy percentage (about 9 to 10 percent).
ndvi, dw (Dynamic World tree probability), meta_h (Meta v2 1 m canopy height), esatree (ESA WorldCover tree class), the raw Sentinel-2 bands red / nir / green / blue, plus gndvi and nir_red. Decision threshold 0.5, calibrated so 2021 matches the 10.1 percent human-truth canopy.
Scored against the 656 manual labels under region-grouped out-of-fold cross-validation with post-stratified population weighting:
| Model | Precision | Recall | F1 | IoU |
|---|---|---|---|---|
| This classifier (10 features) | 0.77 | 0.79 | 0.78 | 0.64 |
| Four-feature model (no spectral bands) | - | - | 0.75 | - |
| NDVI > 0.62 baseline | 0.69 | 0.67 | 0.68 | 0.52 |
The raw green and blue bands are what lift it over the baseline: they let it reject high-NDVI grass and scrub the NDVI threshold over-called (precision 0.67 to 0.77), and it removes the year-to-year sawtooth the fixed threshold produced. A CLIP ViT-L/14 embedding was tested as a feature and did not help, so it was dropped.
canopy_clf.joblib - the trained classifiercanopy_clf_meta.json - features, threshold, training sizemaster_labels.csv - the 656 gold labelsmodel_comparison.json - the ablation it was selected fromRESULTS.md - the build writeup