Off-Nadir Delta
Satellite measurement

Facility Heat Changes: Heat at Industrial Sites, Measured by Sentinel-2

Refineries, gas fields, steelworks and smelters give off heat every day. Whether one of them is running hotter than usual is hard to see from a single picture. Off-Nadir Delta measures the heat at each such site in every clear Sentinel-2 pass and records the passes on which it is well above that site’s own usual level.

Quick answer — what a facility heat change is here

A facility heat change is a record that Sentinel-2 measured the heat in a 2.4 km square around a persistent heat source well above that place’s own usual level. The places are registered facilities near a heat source that satellites see on most nights, and persistent heat sources with no registered facility nearby. The heat is the shortwave-infrared radiance of the hot pixels. A record is made when it is at least 3.5 on the modified Z-score against the clear passes of the previous 90 days that showed heat, and less than 20% of the background is cloud. It states the time, the number of hot pixels and how the heat compares with usual. It does not state a cause. Records are events on the Watchfloor map under the category Facility Heat Changes.

What is a facility heat change?

Very hot surfaces — a flare, molten metal, a fire — shine in the shortwave infrared, the part of the spectrum Sentinel-2 records at 20 m. A pixel that is far brighter in those bands than in the near infrared is a hot pixel. Off-Nadir Delta counts the hot pixels in a square around each site and adds up their radiance.

A site that is always hot is not news. What changes is how hot it is. So each pass is compared with the same site’s own clear passes over the previous 90 days, using a robust statistic (the modified Z-score, built on the median) that a single odd pass does not move much.

A facility heat change is therefore narrow: one place, one pass, heat well above its own usual range. It says the site was running hotter. It does not say why, or which installation inside the square it came from.

How a pass is judged

  • The places are registered facilities near a heat source that satellites detect on most nights, and such heat sources with no registered facility within 2 km.
  • Each clear pass, the square of 2.4 km around the place is read. A hot pixel is one that passes the shortwave-infrared tests; fewer than 2 hot pixels count as no heat.
  • A pass counts as clear when less than half of the background around the hot pixels is cloud. A record also needs less than 20% cloud in that background.
  • The usual level is the clear passes of the previous 90 days that showed heat; at least 10 are needed before a pass is judged.
  • A record is made when the heat of the pass is at least 3.5 on the modified Z-score against that usual level.
  • Only passes read within 7 days of being taken become records. Older passes read to build the usual level do not.
  • Further rises at the same place within 30 days update the same record. A heat source with no facility of its own that lies within 2.5 km of a measured facility is recorded with that facility.

Data: Sentinel-2 Level-2A, processed by Off-Nadir Delta. Credit: Contains modified Copernicus Sentinel-2 data, the wording the legal notice on the use of Copernicus Sentinel data asks for when the data has been modified.

What a record states

  • The place: the nearest registered facility, or the nearest town for a heat source with no facility nearby.
  • The time of the satellite pass (UTC).
  • How many hot pixels there were.
  • How the heat compares with the usual level of the previous 90 days, and the modified Z-score.
  • How much of the background was cloud.

What it does not state

  • A cause. A fire, a flare, a restart after maintenance or more production all raise the heat. The record says it rose, not why.
  • Which installation. The square is 2.4 km across and the facility named is the nearest registered one. The heat can come from another installation in the square.
  • That a site stopped. Passes with no heat are recorded but do not become events yet: there were too few new examples to check them.
  • That a quiet pass was quiet. Sentinel-2 does not see through cloud and passes over a place only every few days. No record does not mean nothing changed.
  • Certainty. In our own check of 20 days (2026-10-21 to 2026-11-10), the rise could be seen in the imagery for 19 of 24 passes at or above the Z-score threshold. One person judged the images, and “not seen” is not “did not rise”.
  • A severity. A record takes its severity only from reporting about the same facility. An empty severity means not assessed, not minor.

Measurement and reporting are kept apart

A refinery fire can appear on the map as reporting, as a thermal anomaly from the night-time fire detections, and as a facility heat change. They are different kinds of evidence from different sources.

The facility heat change is its own event, placed at the measured square, and is never merged into the reporting about the same site. Its title and summary are written by a fixed rule from the measured values, not by a model.

Facility heat changes over the API

Facility heat changes are events, so they come back from the events endpoint with their category. A page costs from 3 tokens, 1 per 10 rows returned.

curl "https://offnadir-delta.com/api/v1/signals?categories=facility_heat_change" \
  -H "Authorization: Bearer ond_..."

Each one carries measured: true and measured_kind: facility_heat. The same query works through the MCP tool query_signals. A reader for this kind alone is GET /api/v1/facility-heat-changes, and client.facility_heat_changes in the Python SDK. Parameters and response fields are in the API reference.

What each plan sees

On every plan, the Watchfloor map shows that a facility heat change was recorded, when, and where. The marks are there without paying.

Which facility or place it was, how many hot pixels there were and how the heat compares with usual are part of the full account of each event, in the app, through the Delta Agent and over the API. Pricing shows which plan opens it.

How It Works

1

Open the Watchfloor

Facility heat changes are on the map next to reported events. To see only these, pick “Facility Heat Changes” under Category in the filters.

2

Find the chimney marks

Each red mark is one place where Sentinel-2 measured heat well above that place’s own usual level.

3

Open one

Read what was measured: the pass time, the number of hot pixels, how the heat compares with usual and how cloudy it was.

4

Read it with the reporting

Reporting and thermal anomalies at the same facility are separate events on the same map.

Frequently Asked Questions

What is a facility heat change?▼
A record that Sentinel-2 measured the shortwave-infrared heat in a 2.4 km square around a persistent heat source at least 3.5 on the modified Z-score above that place’s own clear passes of the previous 90 days, with less than 20% cloud in the background.
How is this different from a thermal anomaly?▼
A thermal anomaly comes from the night-time fire detections of VIIRS, about 375 m across, and asks whether a heat source far stronger than recent ones appeared near a site. A facility heat change comes from Sentinel-2 at 20 m and asks whether a site that is always hot became hotter than its own usual level.
Does a facility heat change mean there was a fire?▼
No. It means the site was hotter than usual at one pass. A fire, a flare, a restart or more production all do that. The record does not say which.
Which places are measured?▼
Registered facilities near a heat source that satellites detect on most nights, such as refineries, gas plants, steelworks and power plants, and persistent heat sources with no registered facility within 2 km, such as oil and gas field flares, coal fires and smelters. Places that are not persistently hot are not measured this way.
How reliable is one record?▼
In our own check of 20 days (2026-10-21 to 2026-11-10), the rise could be seen in the imagery for 19 of 24 passes at or above the Z-score threshold; for the other five the site was hot but the change was not visible. One person judged the images. The two false records we found in that check were cloud over the site (24% and 36% of the background), which is why a record needs less than 20% cloud there.
Is there a facility heat API?▼
Facility heat changes are events: GET /api/v1/signals with categories=facility_heat_change returns them, each with measured: true and measured_kind: facility_heat. A page costs from 3 tokens, 1 per 10 rows returned. A reader for this kind alone is GET /api/v1/facility-heat-changes, and client.facility_heat_changes in the Python SDK; the API reference has the parameters.
What does each plan see?▼
Every plan sees that a facility heat change was recorded, when, and where on the map. Which facility and the measured values are part of the full account of each event, which not every plan includes. The Pricing page shows which plan opens it.

See Facility Heat Changes on the Map

The marks are on the Watchfloor for every account. The detail of each record and the API are plan-dependent; see Pricing.

From headline to satellite evidence

One connected intelligence workflow across four surfaces — free to start, no GIS software or remote-sensing background required.