How it works
Satellites have spotted fires from space since 2000. In 2012 a sharper camera took over, and it sees many more fires. Here is how we make the old and the new camera count the same way, and how we checked it.
Who watched when
Four satellites photograph fires for us. Two carry MODIS, the older camera. Two carry VIIRS, the newer and sharper one. Our record uses one camera at a time.
Point at or tap a bar to see its years and what it does.
For scientists: series sources by period
The series uses one source per period, so the method changes exactly once, in 2012, for MODIS:
- November 2000 to June 2002: Terra MODIS only. Flagged as partial coverage and left out of the baseline.
- July 2002 to December 2011: Terra and Aqua MODIS, weight 1.
- January 2012 to the day before 2 November 2026: weighted S-NPP VIIRS, with NOAA-20 filling days S-NPP missed.
- From 2 November 2026: weighted NOAA-20 VIIRS.
MODIS from 2012 on stays out of the series. It is the ground truth for the tests below, and the calendar's raw view.
Same fire, two cameras
MODIS sees the ground in squares 1 km across. VIIRS sees squares 375 m across: about seven fit inside one MODIS square. A small fire stands out more in a small square, so VIIRS spots fires that MODIS misses.
MODIS sees 2 · VIIRS sees 6
MODIS 1 km squares
VIIRS 375 m squares
- A fire on the ground
- A square the camera reports as fire
For scientists: the problem, and this picture's simple rule
Raw hotspot counts jump in 2012, when VIIRS joins MODIS: its 375 m pixels catch small fires that MODIS's 1 km pixels miss, so it reports several times as many hotspots for the same burning, and every later month looks like a record fire year. The years 2000 to 2011 exist only in MODIS form and cannot be observed again, so VIIRS has to be brought to MODIS's scale, not the other way round. And MODIS is ending, so the correction has to keep working on VIIRS alone.
The picture is a toy: a square is reported when the fires inside it give off at least 10 MW per km² of square, which puts MODIS's limit near 10 MW and VIIRS's near 1.4 MW. Real detection also depends on the background temperature, day or night, and the viewing angle. The measured curve is in "When MODIS sees a fire" below.
How one VIIRS fire is counted
Mock numbers, not results
We count everything in MODIS fires. A MODIS fire counts as 1. A VIIRS fire counts as the chance that MODIS would have seen it too, times a factor for its region and month.
For scientists: the weight w = s × k
Hot or Not counts each VIIRS hotspot as the number of MODIS hotspots it stands for, so the whole record, from 2000 to today, is in one unit: MODIS-equivalent hotspots. A MODIS hotspot counts 1. A VIIRS hotspot counts its weight w = s × k, and a month's harmonized value is the sum of the weights.
- s, the detection share
- The modeled chance that Aqua MODIS would have detected the same fire, shared among the VIIRS hotspots that fall inside one MODIS pixel, so a fire front with five VIIRS hotspots and one MODIS hotspot adds up to about 1, not 5. The model learns from 2012–2019 overpasses where Aqua and S-NPP looked at the same place within 15 minutes, including the times MODIS looked and missed. It uses VIIRS-side features only, so it scores any VIIRS hotspot, including near-real-time ones and those after MODIS ends.
- k, the coverage factor
- MODIS hotspots divided by the summed detection shares, per region and calendar month over 2012–2019. It carries the sampling differences s cannot see: Terra's mid-morning overpass, which no VIIRS satellite matches, and the outer part of the wider VIIRS swath.
- The fallback,
ratio_v1 - Every VIIRS hotspot in a region and calendar month weighs r = MODIS count ÷ S-NPP count over 2012–2019. It needs no model, and it is the benchmark the model has to beat.
The diagram uses the all-land curve, which holds cluster size at 1 (a lone hotspot) and averages over pixel size and day or night, and the S-NPP k. NOAA-20 has its own k, scaled to S-NPP over the years both flew. The map's tooltips show each hotspot's actual weight.
Follow one real day
Over the whole record our pipeline works through about 13 million fire detections. These are the real ones from a single day over the Nile Delta, 13 September 2017, in the season when farmers burn rice straw. Step through what the pipeline does with them.
Play is off because your device asks for less motion. Back and Next still work.
Close-up 8 km across, the dashed square on the map
- VIIRS on S-NPP
- MODIS on Aqua
- Set aside: not a vegetation fire
- MODIS square, real size
- 5 km square: its weights added up
September 2017, day by day
What happened
For scientists: this day, row by row
How the Clean step catches a gas flare
NASA has not labelled the newest months yet, so the Clean step needs a rule to tell a gas flare from a farm fire. A flare burns in the same spot day after day; a field burns once. Here are 90 real days near Idku, on the coast east of Alexandria.
Play is off because your device asks for less motion. The day slider still works.
- Seen today, by day
- Seen today, at night
- A spot about 400 m across: the number is the days it showed heat
- Seen on 20 days or more: a steady heat source
For scientists: the flare rule and this box
Tested on years it never saw
Mock numbers, not results
From 2012 to 2019 both cameras flew, so we know what MODIS really counted. We hide two years, learn from the other six, and check our count for the hidden years against MODIS. Four tests hide every year once.
- Learned from
- Hidden, then predicted
Month by month
Each chart shows one region from 2012 to 2025: what MODIS counted, raw VIIRS, and our corrected count. Every corrected month comes from a test that never saw it.
For scientists: the held-out folds
After 2012 both sensors flew, so real MODIS counts show what the harmonized series should be. Raw VIIRS should sit far above MODIS and harmonized VIIRS should track it. Every harmonized month here comes from a fit that never saw it: each pair of years in 2012–2019 is left out in turn and predicted from the other six, and 2020–2025 is predicted from a fit on 2012–2019. The shaded bands on the charts are the folds.
What to keep in mind
- S-NPP ended on 2 November 2026. Since then NOAA-20 alone carries the record, and a day it misses marks its month as incomplete.
- MODIS has drifted. Its satellites no longer pass over at their usual times, which makes the tests on 2020 to 2025 harder to pass.
- A few gas flares can slip through. The newest months are not labelled yet, so for a few months a flare can be counted as a fire, or a fire right next to one missed.
- Bolivia and Brazil are not covered. Those parts of the Chaco region show as no data, never as zero.
- The newest months may change. They are early numbers until NASA's archive replaces them, and months before July 2002 had only one MODIS satellite.
For scientists: the caveats in full
- S-NPP ended on 2 November 2026. From that day the series runs on NOAA-20 alone, calibrated against S-NPP rather than against MODIS. NOAA-20 has had its own data gaps since 5 November 2026: a day with no NOAA-20 overpass marks its month as partial coverage, so an outage never reads as a quiet month.
- MODIS orbit drift. Terra and Aqua have drifted from their nominal crossing times, which pulls Aqua's overpasses away from S-NPP's and changes what MODIS samples. We fit only on 2012–2019 and report 2020–2025 separately, so part of the larger error on those years is drift in the ground truth rather than in the harmonization. When MODIS ends, nothing in the series changes: it has used weighted VIIRS since 2012.
- Gas-flare masking. Gas flares and other static heat sources trigger the same fire algorithm. The science-quality archive labels them and we drop them, but near-real-time data, which covers the most recent months, carries no label. We mask near-real-time hotspots close to a static source known from the archive, or seen at the same spot on many days within 90 days. In the Nile Delta flares outnumber farm fires, so recent months can still hold a few flares, or miss a fire next to one, until the archive replaces them.
- Bolivia and Brazil are not covered. The Northern Argentina and Paraguayan Chaco region includes parts of Bolivia and Brazil, whose fire records we did not download. Cells centered there show as no data, never as zero, and an area drawn across them counts only the covered cells.
- Partial and provisional months. Before July 2002 only Terra flew, so those months are flagged and left out of the 2003–2025 baseline. Near-real-time months are provisional until the archive replaces them, about five months later.
For scientists
The full scores on hidden years, the detection curve the model learned, the region factors, and the check on the second VIIRS satellite.
The scores and the decision
Mock numbers, not results
Two scores per region, both on hidden years: how far the yearly totals land from MODIS, and how closely the months line up. A method has to do well on both.
The first is the mean error of annual totals against MODIS, the second the Pearson correlation of monthly totals with MODIS. Correlation alone cannot catch a change of scale, since raw VIIRS follows the seasons closely while counting several times too many, so the rule needs both. The model ships when it meets both limits in at least three of the four regions and beats the ratio method's annual error.
When MODIS sees a fire
Mock numbers, not results
This is the curve the model learned: the stronger the fire, the more likely MODIS saw it too. It comes from the moments both cameras looked at the same place.
The detection share comes from a logistic regression on VIIRS fire radiative power (FRP), pixel size, day or night, land cover and cluster size. Its curve against FRP is why one ratio cannot fit every place: small agricultural burns, which MODIS mostly misses, get a low detection share, and large fires, which both sensors see, a high one.
The region factors The ratio factors
One factor per region and month: the one in "How one VIIRS fire is counted". Each cell shows its value.
In this data version every VIIRS fire in a region and month counts this factor, whatever its strength. Each cell shows its value.
The coverage factor k: one value per region, satellite and calendar month, estimated over 2012–2019. Where a region and month had fewer than 50 MODIS hotspots in those years, it is pooled with the two adjacent months, and if that is still too thin, one value covers the region's whole year. NOAA-20 gets its own k, scaled to S-NPP over the years both flew.
The ratio factor r: MODIS hotspots divided by S-NPP hotspots per region and calendar month over 2012–2019, pooled with the two adjacent months where a month had fewer than 50 MODIS hotspots, and over the whole year if that is still too thin. NOAA-20 gets its own r, scaled to S-NPP over the years both flew.
The hand-over to NOAA-20
Mock numbers, not results
S-NPP stopped sending data on 2 November 2026. NOAA-20 carries the same camera and has flown beside it since 2018, so we checked that the two give the same counts.
NOAA-20 carries the same VIIRS instrument and fire algorithm in the same orbit, about 50 minutes apart, and the two overlap from April 2018, so the second switch is calibrated VIIRS to VIIRS. On the years both flew, the series built on NOAA-20 has to track the one built on S-NPP.