Method · MODIS + VIIRS harmonization

The camera changed,not the fire.

VIIRS counts almost nine times more hotspots than MODIS. We correct it so twenty years of data speak the same language.

Apparent jump 2011 → 2012
×8.9

adding without adjusting

After harmonizing
×1.3

same VIIRS scale

Comparable record
23 years

2003 – 2025

Figures computed with NASA FIRMS data for Peru (vegetation fires, nominal and high confidence). The harmonized series comes live from the backend API.

01How it is built

Four steps, one record

Pick a step: from raw data to the final number with its range.

02The result

Before and after correcting

With the data as it arrives, fire seems to explode in 2012 and again in 2018. Switch between the two views and compare: once corrected, the series can be read year by year.

  • Satellites added
  • Harmonized series
  • Estimated year (with range)
0100k200k300k200320052007200920112013201520172019202120232025Years estimated from MODIS+ S-NPP+ NOAA-20VIIRS enters: jump ×8.9

Each dot is a year. The dotted line is what the satellites count when added; the solid one, the corrected series, where years can actually be compared.

Hover over the chart, or use the arrows ← →

2012

Added
92,738
Harmonized
75,993

What happened in 2012

×1.7

With a single satellite

With MODIS data alone, from 2011 to 2012 the count barely changes.

×8.9

Adding both

The same year, adding both records looks like a huge increase.

81 %

Comes from the new sensor

Of the 2012 total, that share comes from VIIRS, which is just starting.

Annual series of Peru's hotspots from the backend API (calibration v1, frozen). Years before 2012 are estimates with their range, not observations. The “as they arrive” line adds the raw MODIS and VIIRS counts.

03Validation

We tested it blind

We trained on 2012–2019 and hid 2020–2022. Then we compared what the model predicted with what VIIRS actually counted.

0.94

Accuracy of the monthly total (R²)

Most of the month-to-month variation in Peru is explained.

±13 %

Typical error per month

In a normal month, the national estimate is off by about 13 % from the real value. The ring shows that 13 %.

63 %

Months within the range

63 of every 100 real months fell inside the range we announced.

Metrics from the backend's validation: the model was fit on the training years and measured on years it never saw.

04Under the hood

Try it yourself

For anyone who wants to audit: play with the model, see how we validated it, which assumptions we made and each region's parameters, downloadable.

Pick a region and how many hotspots MODIS counted in a month. The model works out how many VIIRS would have counted: the same calculation we use to translate the years before 2012.

The model equation
ln(VIIRS + 1)7.28estimateda2.53based · high0.30 × 1highb0.78slopeln(MODIS + 1)5.71observed

Pass the cursor over a term to see what it means for this region.

You choose

This region has its own fit.

The model estimates

≈ 1,536

hotspots on the VIIRS scale for that month in Ucayali — about 5.1 times what MODIS counted.

MODIS300
VIIRS (estimated)1,536

Same formula the pipeline applies to each department-month before 2012, with the official calibration v1 and the Duan smearing correction.

How it got to that number

  1. 1We take MODIS to a logarithmic scaleln(300 + 1) = 5.71
  2. 2We multiply it by the slope b0.78 × 5.71 = 4.46
  3. 3We add the base level a and the high-season adjustment d4.46 + 2.53 + 0.30 = 7.28
  4. 4We undo the logarithm (with the Duan correction)1.06 × e^7.28 − 1 ≈ 1,536

Everything here is the official calibration v1 of the backend, read live from its API. If the team publishes a new version, this section updates itself.

Next step

With a consistent record,we can finally compare.