Check the setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Annual tree-cover loss statistics for building deforestation monitors and country comparison tools from satellite-derived forest change.
From source to product signal
Global Forest Watch exposes UMD/Hansen tree-cover loss through a SQL query API. Start with one year and the top countries by hectares lost. Loss is a stand-replacement disturbance, not a land-use class, and it includes fire, harvest, and conversion.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import pandas as pd
import requests
response = requests.get(
"https://data-api.globalforestwatch.org/dataset/umd_tree_cover_loss/latest/query",
params={
"sql": (
"SELECT iso, SUM(umd_tree_cover_loss__ha) AS loss_ha "
"FROM data WHERE umd_tree_cover_loss__year = 2023 "
"GROUP BY iso ORDER BY loss_ha DESC LIMIT 15"
)
},
timeout=60,
)
response.raise_for_status()
loss = pd.DataFrame(response.json()["data"])
loss["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(loss)Test a useful signal
Test whether GFW country totals can power a bounded deforestation leaderboard.
World Resources Institute is a nonprofit source. Last verified 2026-08-18. Temporal coverage: 2001-present annual loss years.