Thermal Plume Detector
Detect a real rocket plume from a real NOAA GOES NetCDF.
The brief
Build a Python tool that, given a GOES-18 ABI Band 7 NetCDF file and a known launch event (date, location, vehicle), outputs detection records `(timestamp_UTC, lat, lon, brightness_temp_K, area_km²)` for each detected plume pixel cluster. Apply parallax correction. Apply false-positive filtering (mask known wildfires from the FIRMS dataset). Produce a Folium heatmap visualization showing detected hotspots overlaid on a basemap, with hover-popups showing the (t, T_b) for each detection.
From Hawaiʻi — what this capstone asks of you
Your plume detector is the same architecture HVO uses to track Kīlauea lava flows. When you finish, point it at a real Kīlauea eruption frame (HVO publishes them) and see if your code catches the lava. Then point it at a Pacific Northwest wildfire. Same code; same physics; different stories to tell.
Rubric
- Tool runs on the provided sample NetCDF and produces ≥1 valid plume detection record for the known launch
- Detection timestamps are within 30 seconds of ignition time published by the launch operator
- Coordinates are within 5 km of the known launch pad (after parallax correction)
- Brightness temperatures are physically plausible (> 320 K for plume, > 290 K for background)
- False-positive filtering rejects ≥90% of FIRMS-overlapping pixels in the same scene
- Folium heatmap is interactive and correctly rendered
Deliverable
Python tool + Jupyter notebook walkthrough + Folium HTML output for the test event
Dataset
https://github.com/ops-sketch/academy-labs/tree/main/capstones/03-plume-detector
Earned credential
Successful completion of this capstone (all rubric items met) mints the Certified Remote Sensing Specialist certificate at /academy/verify/{certId}/.