A transparent map of global conservation effort
In 2017, the OECD estimated global biodiversity finance at USD 78-91 billion, while potentially harmful investments reached USD 500 billion. Despite this spending, we lack a comprehensive map of where conservation effort actually happens on the ground.
With Earth's surface at 510 million km², dividing into 100 km² pixels gives us 5.1 million pixels – the resolution of an average digital camera in 2010. We aim to create a transparent map showing conservation patrol coverage for each of these pixels.
This tool monitors 162 African keystone protected areas covering 2.1 million km², tracking fire events, deforestation, settlements, and patrol effort to ensure accountability and reveal where resources are needed most.
Quick Start
- Click a park to see fire, settlement & deforestation data
- Use time slider to filter data by date range
- Upload GPX to add patrol tracks (upload button)
- Star parks to save and generate reports
- Bell icon shows fire alerts & notifications
Data Layers
- Fire Activity – Satellite detections grouped into trajectories with origin/destination
- Settlements – Built-up areas classified by type and distance to park
- Deforestation – Forest loss events clustered and classified by cause
- Patrol Tracks – GPS coverage intensity in 10×10 km grid cells
How We Process Data
Fire: Lines, Season Front & Vanguard
In short. Red lines show where fire moved from day to day. In the main season they mark the corridors that burn every year — but not the direction; no method can read that from satellite data (we tested). Two layers give you something to act on: vanguard chains — this year’s fires 10–60 days ahead of the season, direction measured, refreshed nightly — and early-burn squares — the ground the season enters first, year after year. Send the first flights there.
- Detections. NASA VIIRS (three satellites) passes twice a day and reports each 375 m pixel burning at that moment. Fetched daily from FIRMS; each area reads its boundary plus 30 km. More satellites since 2024 means more detections, not more fire, so charts break their line there.
- Lines. Pixels alight in 30+ different months (flares, kilns, dumps) are set aside. Three same-day detections within 3 km form a patch; a patch links to yesterday’s if it lies ahead of it (within 5 km + 8 km per unseen day, turn under 100°, at most 3 unseen days). A line needs 10 detections over 2 days. Speed never rejects a link: herders and hunters cover 80 km a day, and every speed cap removed exactly those chains.
- Two tests. Is the day order real? Shuffle the days within each month, rebuild, compare. Real links have yesterday’s and today’s patches nearly touching; chance links don’t. Summed along a chain this gives the evidence tier: supported (≈1 in 100 by chance), weak, unsupported (coin toss), single, unmeasured. Wide lines have confirmed order and carry direction chevrons; thin lines only confirm the corridor. Is the place right? Hide one season, predict it from earlier ones: last season’s fires predict this season’s in 99 % of 151 areas, and only 1.5–4 % of fires land on ground that never burned before. Past fire is a sound map of future fire.
- In season, direction cannot be read. When fire is everywhere, shuffled data gives as many and as long chains as real data — for our tracker and for a Kalman filter alike. The same corridor is threaded both ways in the same months. In-season lines are therefore thin, without chevrons, and read “between A and B”, never “from A to B”.
- Season front. Per 2.5 km cell: the day by which a fifth of the land that burns in a season had burned within ~60 km; contours every 5 days. The season starts in the landscape’s quietest month. Fronts use all detections around the grid, not just the park’s own, so neighbouring parks agree on shared ground. Lead = days a fire burned before the front; before this season’s front exists, lead is measured against the usual front of past seasons and says so. Earlier seasons can be added beside the current one to compare timing.
- Season speed is the front’s pace from contour spacing (1/|∇T|), 1–50 km a day on one fixed scale, drawn as line weight: heavy where the season stalled, hairline where it raced. Click a line for km/day. Descriptive, not a forecast.
- Vanguard. Ahead of the front, fire is sparse and day order is readable: about half of all links are signal, in every season and area tested. A chain may start only 10–60 days ahead of the front and is then followed into the arriving season with a Kalman filter (predict tomorrow’s position, accept only a patch that fits, update speed and heading). This repairs the 43 % of chains the plain tracker lost as the season closed in; chains run ~70 % longer than shuffled data and fires in long chains (150 km+) rise 61 %. After two unseen days a chain ends — the next fire is someone else’s. Unseen days are dashed, never guessed. Reading it: colour is lead (white far ahead → yellow at two weeks → orange as the season arrives → ash); width is evidence tier; small chevrons give direction; a large chevron at the end means still moving at the newest data. The tip says why a chain ended. On the ground this is people moving ahead of the season and burning along the way — the map says “ahead of the season”, not who or why. Field staff report herds one to two weeks behind the scouts; that is their knowledge, not our measurement.
- Early-burn ground — rose squares. A 2.5 km cell whose first burn came 15+ days before the local front in 40 % or more of the seasons held (at least two): incoming routes, boundary burns, village rings. Crimson at 40 %, light rose at 70 %+; the tip prints the count beside chance. On the hidden-season test these squares place the leading edge (fires 10–60 days ahead) better than whole-season fire density (Gini +0.37 vs +0.24) — and are useless for the season as a whole. Two questions, two maps: past density for where fire will be, squares for where it enters. They are not this year’s herds; the vanguard chains are. In the animation a square brightens over the 30 days before its usual entry, flashes white when the first detection lands, and dims once the front has passed.
- Patrol front and pressure (your own tracks only). Same 2.5 km grid: a cell is reached the first day it holds 3+ weighted patrol-days within ~5 km (foot 1 · vehicle/boat 0.7 · helicopter 0.4 · fixed-wing 0.2), contoured every 5 days — green dash-dot. Pressure lines show how much effort piled up (1, 2, 5, 10, 20, 50 …). Lay them over the fire front to see where rangers arrived before the season, and where after.
- Refresh. Lines rebuild nightly, same rules for the archive and this morning’s detections. Fronts, vanguard, speed and early-burn ground refresh daily for the current season, in rotation for past ones. An area without a front yet says so.
Settlement Detection
- Source: EU Global Human Settlement Layer (10m resolution)
- Built-up pixels clustered into settlement polygons
- Distance to park boundary and nearest road calculated
- Classified: village, farm compound, herding camp, fishing camp, seasonal camp, possible mining site — inferred from river proximity, deforestation shape, fire seasonality and remoteness
Deforestation Analysis
- Source: Hansen Global Forest Change (30m resolution)
- Annual tree cover loss 2001-2024
- Clustered into events (5km radius)
- Classified: agricultural clearing, logging, charcoal production
- Near-real-time: GFW integrated alerts (GLAD-S2/RADD, ~10m) with 100km buffer — one park rescanned per day
Patrol Tracking
- Upload GPX tracks from GPS devices or apps
- Tracks split into 10×10 km grid cells
- Movement classified: foot (<7 km/h), vehicle (7-80), aircraft (>80) with subtypes: boat, fixed-wing, rotor-wing from trajectory analysis
- Intensity = % of 1km subcells visited in each grid cell
Update Schedule
| Fire data | Daily at 5am CAT |
| Deforestation alerts (GFW) | Daily rotation — one park/day |
| Park narratives refresh | Daily — follows the scanned park |
| Research papers | Daily (OpenAlex API) |
| Legal documents | Weekly (FAOLEX) |
| Patrol data | On upload (instant) |
Data Sources & Licences
Everything here was measured, drawn or published by somebody else first. Each source is listed with the terms its publisher granted; the full register with citations is at /licenses.