GOES-16 FDCF Series ABI Level 2 Fire/Hot Spot Characterization Full Disk

Dataset Availability
Dataset Provider
Earth Engine Snippet
abi climate fdc fire goes goes-16 goes-east goes-r hotspot nesdis noaa ospo wildfire


The Fire (HSC) product contains four images: one in the form of a fire mask and the other three with pixel values identifying fire temperature, fire area, and fire radiative power.

The ABI L2+ FHS metadata mask assigns a flag to every earth-navigated pixel that indicates its disposition with respect to the FHS algorithm. Operational users who have the lowest tolerance for false alarms should focus on the "processed" and "saturated" categories (mask codes 10, 11, 30, and 31), but within these categories there can still be false alarms.


NOAA provides the following scripts for suggested categories, color maps, and visualizations:

NOAA's Office of Satellite and Product Operations has a General Satellite Messages channel with status updates.


2000 meters


Name Units Min Max Scale Offset Description
Area m^2 0* 16723* 60.98 4000

Fire area

Temp K 0* 32642* 0.0549367 400

Fire temperature


Fire mask categories. Pixel values in the fire mask image identify a fire category and diagnostic information associated with algorithm execution. The six fire categories include: Good quality or temporally filtered good quality fire pixel; Saturated fire pixel or temporally filtered saturated fire pixel; Cloud contaminated or temporally filtered cloud contaminated fire pixel; High probability or temporally filtered high probability fire pixel; Medium probability or temporally filtered high probability fire pixel; Low probability or temporally filtered high probability fire. Temporally filtered fire pixels are those resulting from fire pixels that are in close proximity in both space and time.

Power MW 0 200000

Fire radiative power

DQF 0 5

Data quality flags

* estimated min or max value

Mask Class Table

Value Color Description
10 red Processed fire
11 white Saturated fire
12 slategray Cloud contaminated fire
13 orange High probability fire
14 violet Medium probability fire
15 blue Low probability fire
30 darkred Processed fire, filtered
31 ghostwhite Saturated fire, filtered
32 darkslategray Cloud contaminated fire, filtered
33 darkorange High probability fire, filtered
34 darkviolet Medium probability fire, filtered
35 darkblue Low probability fire, filtered

DQF Class Table

Value Color Description
0 #ffffff Good quality fire
1 #ff00ff Good quality fire-free land
2 #0000ff Invalid due to opaque cloud
3 #00ffff Invalid due to surface type or sunglint or LZA threshold exceeded or off earth or missing input data
4 #ffff00 Invalid due to bad input data
5 #ff0000 Invalid due to algorithm failure

Terms of Use

Terms of Use

NOAA data, information, and products, regardless of the method of delivery, are not subject to copyright and carry no restrictions on their subsequent use by the public. Once obtained, they may be put to any lawful use.


  • Early characterization of the active fire detection products derived from the next generation NPOESS/VIIRS and GOES-R/ABI instruments. Schroeder, W., Csiszar, I., et al, (2010), Early characterization of the active fire detection products derived from the next generation NPOESS/VIIRS and GOES-R/ABI instruments, paper presented at 2010 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), Honolulu, HI. doi:10.1109/IGARSS.2010.5650863

  • Schmit, T., Griffith, P., et al, (2016), A closer look at the ABI on the GOES-R series, Bull. Amer. Meteor. Soc., 98(4), 681-698. doi:10.1175/BAMS-D-15-00230.1


Explore with Earth Engine

Code Editor (JavaScript)

// NOAA GOES-16 full disk fire product for a single time slice.

var image = ee.Image('NOAA/GOES/16/FDCF/2019167024053900000');
var fireAreaImage = image.select('Area');
var temperatureImage = image.select('Temp');
var dataQualityFlagsImage = image.select('DQF');

var xMin = -142;  // On station as GOES-E
var xMax = xMin + 135;
Map.setCenter((xMin + xMax) / 2, 15, 3);
var geometry = ee.Geometry.Rectangle([xMin, -65, xMax, 65], null, true);

var dataQualityFlagsVis = {
  min: 0,
  max: 5,
  palette: [
    'blanchedalmond',  // Good quality fire pixel
    'olive',           // Good quality fire free land
    'teal',            // Opaque cloud
    'darkslateblue',   // Bad surface type, sunglint, LZA threshold exceeded,
                       // off Earth, or missing input data
    'lemonchiffon',    // Bad input data
    'burlywood'        // Algorithm failure
    dataQualityFlagsImage, dataQualityFlagsVis, 'Data Quality Flags (DQF)');

var fireAreaVectors = fireAreaImage.reduceToVectors({
  geometry: geometry,
  scale: 2000,
  geometryType: 'centroid',
  labelProperty: 'area',
  maxPixels: 1e10,
// Fires are small enough that they are difficult to see at the scale of
// an entire GOES image.  Buffer fires based on area to make them stand out.
var fireAreaFeatureCollection = fireAreaVectors.map(function(feature) {
  return feature.buffer(feature.getNumber('area').add(1).pow(1.76));
Map.addLayer(fireAreaFeatureCollection, {color: 'orange'}, 'Fire area (orange)');

var temperatureVector = temperatureImage.reduceToVectors({
  geometry: geometry,
  scale: 2000,
  geometryType: 'centroid',
  labelProperty: 'temp',
  maxPixels: 1e10,
// Buffer fires based on temperature to make them stand out.
var temperature = temperatureVector.map(function(feature) {
  return feature.buffer(feature.getNumber('temp').add(2).pow(1.3));
Map.addLayer(temperature, {color: 'red'}, 'Temperature (red)');
Open in Code Editor