Skip to content

GOES GLM lightning detections

Available since v0.15.0 as noaa:goes-glm. The Geostationary Lightning Mapper Level 2 product, GLM-L2-LCFA, records lightning events, the groups they form, and the flashes those groups form, in one NetCDF4 file every 20 seconds. Files live in the same anonymous noaa-goes16, noaa-goes17, noaa-goes18, and noaa-goes19 buckets and PRODUCT/YYYY/DDD/HH/ layout as ABI imagery. No AWS credentials or SDK are needed.

Require satellite (16, 17, 18, or 19) and both timestamps. There is no channel or product parameter. Unknown parameters, text/geographic constraints, and variables are rejected: each file is the whole detection table for its 20 seconds over the satellite's full field of view, and the server cannot crop it. temporal_subset means selecting archived files.

The adapter lists hourly GLM-L2-LCFA/YYYY/DDD/HH/ prefixes, follows S3 continuation tokens, and selects files whose start times fall in the inclusive UTC query interval. A query spans at most one day. That is shorter than ABI's seven days because GLM writes 180 files an hour: one day of one satellite is 4,320 files and about 1.4 GB, and a listing alone is 24 S3 requests. Split longer intervals, and prefer minutes around an event.

Times are UTC

Timestamps without a timezone are treated as UTC, including queries built directly in Python; explicit offsets are converted to UTC. Both bounds are inclusive. A date alone as the end means the last instant of that UTC day, so a window from 2024-05-07 to 2024-05-07 is that whole day; give the end a time to stop earlier. See time and place.

For example, fetch the single file starting at 20:00:00 UTC on 2024-05-06 (about 290 kB):

uv run usdata fetch noaa:goes-glm \
  --start 2024-05-06T20:00:00Z --end 2024-05-06T20:00:00Z -p satellite=16

Reading detections

The netcdf extra opens a file with FetchedAsset.open() as an xarray Dataset. Events, groups, and flashes are separate one-dimensional tables along number_of_events, number_of_groups, and number_of_flashes, linked by event_parent_group_id and group_parent_flash_id. To work with flashes as a pandas table, select the flash variables and keep the flash position and time coordinates as columns:

from usdata import pull

(item,) = pull("dataset.yaml").fetched
detections = item.open()
columns = [
    "flash_time_offset_of_first_event",
    "flash_time_offset_of_last_event",
    "flash_lat",
    "flash_lon",
    "flash_area",
    "flash_energy",
    "flash_quality_flag",
]
# Positions and times are coordinates, so keep them as columns rather than dropping them.
flashes = detections[columns].reset_coords()[columns].to_dataframe()
nearby = flashes[flashes.flash_lat.between(33, 38) & flashes.flash_lon.between(-100, -94)]

Flash times are decoded CF datetimes. The first event of a flash can precede the file's nominal start by a fraction of a second, so filter on the decoded times rather than assuming every row lies inside the 20-second window. Energy is in joules and area in square metres, with valid_range and flash_quality_flag describing the source's own screening. The reader preserves raw bytes and does not project, deduplicate, or reinterpret detections; combining files across a window is the caller's concatenation.

Archive coverage

Listing GLM-L2-LCFA/2018/ on GOES-16 day by day found the first public file at 2018-02-13T16:10:00Z (day 044); days 001 through 043 and all of 2017 are empty. The catalog's start records that first GOES-16 file, not a claim that every satellite was operating then. Satellite availability varies by date and outages; no East/West alias is inferred from a historical query. NOAA's product documentation describes the instrument and its field of view; the NODD registry documents public cloud access.

See the service research notes for dated upstream probes.

Metadata sources

Every value in the catalog entry's resolution, cadence, citation, terms, variables, and limits comes from one of these pages. A field the agency does not publish is left empty rather than estimated.

  • Resolution: the NCEI ABI and GLM product page, which gives GLM a spatial resolution of 8 to 14 km; the 20-second file cadence is the product's own.
  • Updates, citation, and terms: the NODD registry entry and the NOAA Open Data Dissemination statement it quotes.
  • Variables: the flash, group, and event tables described above, with the units the files carry.
  • Longest query window: MAX_WINDOW in usdata.providers.noaa.glm.
  • Latency is empty: NODD states only that new data is added as soon as it is available.

All NOAA datasets.

Reference

noaa:goes-glm · Released · Included since usdata 0.15. GOES Geostationary Lightning Mapper.

At a glance

Parameters

Pass these as --param name=value to the CLI, as params: entries in a manifest, or as keyword arguments to build_query.

Parameter Meaning
satellite Required GOES satellite number: 16, 17, 18, or 19.

Variables

Variable Units Meaning
flash_lat degrees_north Flash centroid latitude
flash_lon degrees_east Flash centroid longitude
flash_area m2 Flash footprint area
flash_energy J Flash radiant energy
flash_time_offset_of_first_event CF datetime Time of the flash's first event
flash_time_offset_of_last_event CF datetime Time of the flash's last event
flash_quality_flag — The source's own screening flag for the flash
group_lat degrees_north Group centroid latitude
group_lon degrees_east Group centroid longitude
group_area m2 Group footprint area
group_energy J Group radiant energy
event_lat degrees_north Event latitude
event_lon degrees_east Event longitude
event_energy J Event radiant energy

Catalog facts

  • Availability: since 0.15
  • Domain: Weather satellites
  • Spatial resolution: 8 to 14 km across the instrument's field of view
  • Temporal resolution: One detection file every 20 seconds
  • Updates: New data is added as soon as it's available
  • Longest query window: 1 day
  • Terms of use: https://www.noaa.gov/information-technology/open-data-dissemination
  • Citation: NOAA Geostationary Operational Environmental Satellites (GOES) 16, 17, 18 & 19 was accessed on [date] from https://registry.opendata.aws/noaa-goes
  • Catalog date range: 2018-02-13 to open-ended
  • Coverage varies by station, product, and date; the range above does not guarantee observations.
  • Upstream documentation
  • License: US Government Work (public domain)
  • Transport: s3
  • Adapter: usdata.providers.noaa.glm:GoesGlm