SCIENCE · METHODOLOGY
CanopySat Methodology
How CanopySat processes satellite data to produce accurate and reliable forest intelligence.
1. Satellite Data Sources
CanopySat combines 6 complementary satellite sources, all processed via Google Earth Engine with a dedicated ESA/Google service account.
| Satellite |
Resolution |
Primary use |
Period |
| ESA Sentinel-2 | 10m | NDVI, forest cover, vegetation indices | 2015–present |
| ESA Sentinel-1 | 10m | SAR radar backscatter — forest structure | 2014–present |
| NASA Landsat 8/9 | 30m | Historical trend — last 10 years | 2013–present |
| NASA Landsat 4/5 | 30m | Long-term trend since 1984 | 1984–2013 |
| NASA FIRMS/VIIRS | 375m | Active fire detection | 2012–present |
| NASA GEDI LiDAR | 25m | Canopy height from ISS | 2019–present |
2. Processing Pipeline
STEP 1
Zone selection
The user defines a circular GPS zone (1-100km radius). CanopySat creates a geospatial buffer and sends it to Google Earth Engine.
STEP 2
Cloud-free composite
CanopySat generates a median composite of Sentinel-2 images from the last 12 months, excluding cloudy pixels (QA60 filter). This ensures analysis based on the most recent available data.
STEP 3
Index calculation
NDVI (Normalized Difference Vegetation Index) = (NIR - RED) / (NIR + RED). Values between -1 and 1, where >0.5 indicates dense healthy vegetation. Sentinel-1 VV/VH backscatter for forest structure under cloud cover.
STEP 4
Historical trend
CanopySat calculates NDVI trend over 3 years, 10 years and 40 years (since 1984) using Landsat 4/5/8/9. A positive trend indicates forest regeneration, a negative trend indicates degradation.
STEP 5
GEDI canopy height
NASA GEDI LiDAR (Global Ecosystem Dynamics Investigation) measures forest canopy height from the International Space Station at 25m resolution. CanopySat extracts the mean height for the analyzed zone.
STEP 6
Forest Integrity Score calculation
All indicators are combined into a single 0-100 score. See the Forest Integrity Score page for algorithm details.
All analyses are processed via Google Earth Engine with a dedicated service account. Satellite data is publicly available (ESA Copernicus, NASA EOSDIS).
4. Biomass & Carbon Calculation
CanopySat calculates above-ground biomass (AGB) using NASA GEDI LiDAR canopy height with biome-specific allometric equations, validated against GFW/WHRC, FAO FRA 2020 and ESA CCI Biomass (mean error 0.8%).
# Biome-specific allometric formula (Chave 2014 + Potapov 2021)
AGB (t/ha) = k × H²
# Validated coefficients k:
Tropical (Amazon, Congo): k = 0.68
Tropical SE Asia (Borneo): k = 1.17
Subtropical: k = 0.75
Temperate: k = 0.88
Boreal: k = 0.90
# IPCC 2006/2019 Tier 1 carbon calculation:
BGB = AGB × 0.26 # root-to-shoot ratio
Carbon (t C/ha) = (AGB + BGB) × 0.47
CO2 (t CO2/ha) = Carbon × 3.67
| Forest zone |
CanopySat (t/ha) |
GFW/WHRC |
FAO FRA |
ESA CCI |
Error% |
| Amazon Rainforest |
118.5 |
120.0 |
115.0 |
118.0 |
0.7% |
| Congo Basin |
133.3 |
135.0 |
128.0 |
131.0 |
1.5% |
| Black Forest |
91.6 |
95.0 |
88.0 |
92.0 |
0.1% |
| Borneo |
141.6 |
145.0 |
138.0 |
142.0 |
0.0% |
| Boreal Canada |
50.8 |
55.0 |
48.0 |
52.0 |
1.7% |
| Mean absolute error |
0.8% |
Full validation report available in the
CanopySat Library.
5. Species Climate Suitability — BEA Method
Bioclimatic Envelope Assessment (BEA)
CanopySat uses a Bioclimatic Envelope Assessment (BEA) approach to predict climate suitability of forest species in 2050. This method is consistent with full MaxEnt model results for general trends (cf. published studies on Ceiba pentandra, SSP2-4.5, Frontiers in Forests 2026).
Data sources
| Source |
Usage |
Licence |
| GBIF API |
Species occurrences in zone + global distribution |
CC BY 4.0 |
| WorldClim V1 |
Current bioclimatic variables (BIO01, BIO12) |
CC BY 4.0 |
| NASA GDDP-CMIP6 |
2050 climate projections — 5-model CMIP6 ensemble (ACCESS-CM2, MIROC6, MPI-ESM1-2-HR, GFDL-ESM4, BCC-CSM2-MR), SSP2-4.5 scenario |
Open |
| ESA Sentinel-2 |
Forest context of analyzed zone |
Open |
Suitability score calculation
score = 1.0
# Temperature estimated from GBIF latitude :
temp_from_lat(lat) = 27 - |lat| × 0.52 (°C)
# Penalties :
if temp_2050 > temp_max_species: score -= min(0.7, (temp_2050 - temp_max) × 0.15)
if temp_2050 < temp_min_species: score -= min(0.7, (temp_min - temp_2050) × 0.10)
if |temp_2050 - temp_mean| > 3°C: score -= min(0.3, (diff - 3) × 0.05)
Classification thresholds
Suitable
Score ≥ 0.70
Species should maintain its presence in the zone in 2050
Moderate risk
Score 0.40–0.69
Species under climate pressure — possible decline
At risk
Score < 0.40
2050 climate conditions outside species tolerance range
Important limitations
- Temperature estimated from latitude (bioclimatic approximation) — no field data
- Simplified model — does not account for altitude, soil type or interspecific competition
- Based on 100 GBIF occurrences per species — may lack representativeness for rare species
- 5-model CMIP6 ensemble (ACCESS-CM2, MIROC6, MPI-ESM1-2-HR, GFDL-ESM4, BCC-CSM2-MR) — a larger ensemble (10+ models) would provide even more robustness
- Results consistent with MaxEnt for general trends but not equivalent to full MaxEnt modeling