q19·intermediate

Is a volcano degassing or erupting — can I track its SO₂ plume?

atmosphereair-qualitydisaster-response Datasets: 5 20–45 min
Find the data for your area

Draw a rectangle to pick your area of interest, then see what NASA data covers it (live, here in your browser) or download a ready-to-run notebook with your AOI pre-filled. The notebook runs in any Python environment — it needs a free Earthdata Login to fetch the data.

Current AOI: -155.4, 19.3 → -155.2, 19.5 (Kīlauea summit (Halemaʻumaʻu), Hawaiʻi)

Is a volcano degassing or erupting — can I track its SO₂ plume?

What you can answer

  • Whether SO₂ is present above background over the vent on a given overpass day (TROPOMI HiR, OMI, OMPS).
  • Plume direction + downwind extent by mapping the SO₂ column against MERRA-2 winds.
  • A relative degassing-vs-eruption signal — quiescent degassing shows a modest, vent-anchored column; an eruption shows a large, fast-spreading, sometimes high-altitude plume.
  • Whether a hot vent is thermally active by joining VIIRS/MODIS thermal-anomaly (fire) pixels at the summit.
  • A multi-day time-series of SO₂ column over the AOI to flag escalation or a new unrest episode.

What you can NOT answer with these datasets alone

  • Continuous / overnight monitoring — these are sun-synchronous polar orbiters with roughly one daytime overpass per day; you get snapshots, not surveillance, and missed an eruption that started and ended between passes.
  • Precise SO₂ emission rate (tonnes/day) without an explicit flux calculation (column × wind × transect) and an assumed plume height — and the retrieval itself depends on which air-mass/box-height assumption you select.
  • Eruption forecasting — SO₂ alone does not predict onset; pair with ground deformation (InSAR/GPS), seismicity, and the local volcano observatory.
  • Plume altitude precisely — column retrievals assume a layer height; ash-vs-SO₂ vertical separation needs lidar (e.g., CALIPSO legacy) or aircraft data.
  • Ash mass loading — SO₂ is a gas proxy; volcanic ash is a separate retrieval (e.g., VIIRS/MODIS brightness-temperature difference) and matters most for aviation.

Code template (Python, cloud-direct)

import earthaccess
import xarray as xr
import pandas as pd

earthaccess.login(strategy="netrc")

# Example: Kīlauea summit degassing/unrest window
aoi = (-155.4, 19.3, -155.2, 19.5)   # W, S, E, N — Halemaʻumaʻu
window = ("2024-06-01", "2024-06-30")

# 1. TROPOMI SO2 (high-res) — primary product, mirrored at GES DISC
s5p = earthaccess.search_data(
    short_name="S5P_L2__SO2____HiR",
    bounding_box=aoi,
    temporal=window,
)

# 2. OMPS-NPP Nadir Mapper SO2 (PCA algorithm) as a cross-check / longer record
omps = earthaccess.search_data(
    short_name="OMPS_NPP_NMSO2_PCA_L2",
    bounding_box=aoi,
    temporal=window,
)

# 3. VIIRS thermal anomalies — is the vent hot?
viirs_fire = earthaccess.search_data(
    short_name="VNP14",
    bounding_box=aoi,
    temporal=window,
)

# 4. MERRA-2 instantaneous 3-hourly winds for plume advection
merra = earthaccess.search_data(
    short_name="M2I3NPASM",
    bounding_box=aoi,
    temporal=window,
)

# 5. Open TROPOMI cloud-direct (no download), read the SO2 column group,
#    apply the qa_value mask (keep qa_value > 0.5), and clip to the AOI.
files = earthaccess.open(s5p)
ds = xr.open_dataset(files[0], group="PRODUCT")
so2 = ds["sulfurdioxide_total_vertical_column"].where(ds["qa_value"] > 0.5)

# 6. Per overpass: AOI-mean + max SO2 column → daily time-series
# 7. Overlay strongest day's SO2 swath + MERRA-2 wind vectors → plume map
# 8. Mark VIIRS thermal-anomaly pixels at the summit

Expected output

  • Map: TROPOMI SO₂ column (mol/m²) over the vent on the peak day, with MERRA-2 wind vectors showing the downwind plume and VIIRS thermal-anomaly pixels at the summit.
  • Time-series: AOI-mean and AOI-max SO₂ column across the window — a step-up flags an escalation from quiescent degassing toward eruption.
  • Cross-sensor sanity check: TROPOMI vs OMPS SO₂ for the same days (independent retrievals, different footprints).

Caveats

  • SO₂ retrievals assume a plume height. TROPOMI/OMI/OMPS publish multiple SO₂ products keyed to assumed layer altitude (boundary-layer vs lower/mid/upper troposphere); pick the box-height that matches your scenario or you will misread the column.
  • Low columns are noisy. Always apply the qa_value mask for TROPOMI and the quality flags for OMI/OMPS; weak degassing sits near the detection floor.
  • One daytime overpass per day. Eruptions are bursty; a clean overpass can still miss the peak. Cross-check the local volcano observatory (e.g., USGS HVO) and NRT feeds.
  • Ash ≠ SO₂. For aviation hazard you need an ash retrieval too — these gas products will not flag an ash cloud on their own.
  • Aviation / real-time relevance. Volcanic SO₂ and ash drift into flight corridors; the operational responders are the Volcanic Ash Advisory Centers (VAACs) and the Support to Aviation Control Service (SACS), which ingest TROPOMI/OMPS SO₂ in near-real-time. This atlas page is for analysis, not flight ops.

Cross-DAAC composition

GES DISC (TROPOMI SO₂ mirror, OMI OMSO2, OMPS NMSO2, MERRA-2) + LAADS/LANCE (VIIRS/MODIS thermal anomalies). Auth is uniform via Earthdata Login; the original TROPOMI L2 also lives in the Copernicus Data Space if you prefer the source.

Sources

Datasets used

📚 Problem Finder KB

Not yet tracked in the KB.