How to detect rocket launches from satellite imagery.

Rocket plumes are hot — combustion gases at 1,500 to 3,000 K. Earth's surface is around 290 K. That brightness-temperature contrast is the signal that lets a geostationary weather satellite, scanning at 30-second cadence, detect a launch within seconds of ignition. This is how the LaunchDetect platform does it, taught as a sequence of well-defined steps.

Step 1: Pick the right sensor

The sensor of choice for civilian launch detection is GOES-R ABI Band 7 at 3.9 micrometers — the mid-wave infrared band that gives maximum brightness-temperature contrast between hot combustion gases and the cool background.

The data is free, near-real-time, and published to NOAA's AWS Open Data bucket within seconds of generation. For global coverage you combine three satellites: GOES-East (75.2W), GOES-West (137.2W), and JMA Himawari-9 (140.7E).

Step 2: Convert radiance to brightness temperature

The raw ABI Band 7 product reports radiance. Invert the Planck function to get brightness temperature in Kelvin:

T_b = (h * c / (k * lambda)) / log((2 * h * c^2 / (lambda^5 * L)) + 1)

The NOAA NetCDF helpfully publishes the necessary Planck constants in the file itself.

Step 3: Threshold-detect hotspots

Set a brightness-temperature threshold. Practical values:

Detection is a per-pixel boolean test. Apply parallax correction immediately afterward.

Step 4: Parallax correction

The detected pixel coordinate is NOT the rocket's true ground position — the plume is at 30 to 80 km altitude, and from a satellite 35,786 km away at GEO, the line-of-sight to the plume hits the ground tens of kilometers offset from where the rocket actually is. The math is well-defined: the offset is along the line from the sub-satellite point to the apparent pixel, scaled by plume altitude / (plume altitude + Earth radius).

Step 5: False-positive filtering

The main false-positive sources are wildfires and industrial gas flares. The discriminators:

Step 6: Confidence scoring

Production-grade detection combines the above signals into a single confidence score per candidate. Inputs: spatial coincidence with a known spaceport (binary), temporal pattern match against expected plume duration (real-valued 0-1), brightness profile shape (real-valued 0-1), FIRMS overlap penalty (binary). A weighted sum or a small neural network produces the final score. LaunchDetect's production threshold is set to keep the false-positive rate below 5%.

Related weeks in the course

Frequently asked questions

Can I detect launches in real time from my laptop?
Yes — the data is free and the methodology is open. The Week 14 + Week 15 + Capstone 3 path in LaunchDetect Academy walks through exactly this. Production-grade systems add scheduling, multi-frame clustering, and confidence scoring, but the core detection runs on a laptop with rasterio, xarray, and numpy.
How long after launch does detection happen?
Typically 30 to 90 seconds. NOAA's Mesoscale 30-second scan cadence is the gating factor; the satellite must produce a frame containing the plume. From frame publication to detection record is single-digit seconds with a streaming pipeline.
Why not use optical instead of thermal?
Optical works only during daytime and rocket plumes have low visible-light contrast against typical backgrounds. Thermal IR (Band 7) works day or night and gives much higher contrast because the plume's emission peak is in the IR. Most production launch-detection systems use thermal.
Are there commercial alternatives?
Yes, several companies offer commercial space situational awareness products. LaunchDetect is unique in being publicly accessible and citable for civilian use cases (journalism, research, hobbyists).
Browse the full course Glossary