Week 14 · Remote Sensing Specialist

Thermal IR Band 7: brightness temperature and hotspots

The heart of LaunchDetect's methodology. Band 7 at 3.9 µm sees thermal emission strongly — rocket plumes show up as ~340 K hotspots against a background of ~290 K. This week you build a working hotspot detector.

Learning objectives

Primer

This is the heart of LaunchDetect's methodology, taught from the ground up. By the end of this week you'll have a working thermal hotspot detector that operates on real NOAA GOES-18 NetCDF files — the same input, same physics, and same threshold logic that powers the production pipeline at launchdetect.com.

Band 7 and the Planck function

GOES-R ABI Band 7 is centered at 3.9 µm. The level-1b (calibrated radiance) data product reports radiance in mW/m²/sr/cm⁻¹. To turn radiance into something physically meaningful, you invert the Planck function:

T_b = (h * c / (k * λ)) / log((2 * h * c² / (λ⁵ * L)) + 1)

where L is radiance, λ is the band center wavelength, and h, c, k are Planck's constant, the speed of light, and Boltzmann's constant. The output is a temperature in Kelvin — the temperature a perfect black body would need to emit the observed radiance. This is the brightness temperature, Tb.

For GOES Band 7, NOAA helpfully publishes the Planck constants in each NetCDF file:

import xarray as xr
import numpy as np

ds = xr.open_dataset('OR_ABI-L1b-RadM1-M6C07_G18_*.nc')
Rad = ds.Rad.values  # radiance, mW/m²/sr/cm⁻¹

# Constants from the NetCDF
fk1 = ds.planck_fk1.values
fk2 = ds.planck_fk2.values
bc1 = ds.planck_bc1.values
bc2 = ds.planck_bc2.values

Tb = (fk2 / np.log(fk1 / Rad + 1) - bc1) / bc2  # Kelvin

Typical brightness temperatures

The threshold approach

The simplest detector: threshold the brightness temperature. If Tb > threshold, flag the pixel as a hotspot. Sensible thresholds:

LaunchDetect's production threshold is set dynamically and combined with spatial coincidence with a known spaceport geofence + temporal pattern matching (a real plume grows then shrinks over 1–3 minutes; a wildfire stays hot for hours). That logic is Track 4 and Track 5.

Common false positives

The single biggest source of false positives is wildfires. Both produce hotspots in Band 7. The discriminators:

Other false positives: industrial gas flares (Iraqi/Saudi oil fields), reflective sun glint over water, and rarely volcanic eruptions.

The lab

You'll download several GOES-18 Band 7 frames spanning a known SpaceX Falcon 9 launch from Vandenberg, convert radiance to brightness temperature, threshold at 320 K, output the detected hotspot pixels with timestamps and lat/lon (via Week 15's georeferencing). The lab produces the same primary detection that drives a real launchdetect.com entry — without (yet) the parallax correction, clustering, or scoring layers.

Hands-on lab: Detect a real launch plume in GOES-18 Band 7

Download GOES-18 Band 7 frames spanning a known SpaceX launch from Vandenberg. Convert to brightness temperature. Threshold at >320 K. Output detected hotspot pixels with timestamps and lat/lon.

Quiz

Test yourself. Answer key on the certificate-track page (Gold-tier feature: progress tracking and auto-grading).

Q1. Band 7 wavelength is:
  1. 3.9 µm (mid-wave IR)
  2. 10.3 µm (long-wave IR)
  3. 0.64 µm (red)
  4. 1.38 µm (water vapor)
Q2. A rocket plume in Band 7 appears as:
  1. A cold spot
  2. A hotspot
  3. Invisible
  4. Striped
Q3. Typical Earth surface brightness temperature is:
  1. ~150 K
  2. ~290 K
  3. ~400 K
  4. ~1000 K
Q4. Why use brightness temperature, not raw radiance?
  1. It's intuitive (Kelvin) and threshold-comparable across scenes
  2. It looks better
  3. It's required by law
  4. Radiance can't be measured
Q5. Common false positives in Band 7 hotspot detection?
  1. Wildfires, gas flares, industrial sources, sun glint
  2. Only clouds
  3. Only ocean
  4. Only night