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_WINDOWinusdata.providers.noaa.glm. - Latency is empty: NODD states only that new data is added as soon as it is available.
Reference
noaa:goes-glm · Released · Included since usdata 0.15. GOES Geostationary Lightning Mapper.
At a glance
- Files: NetCDF4
- Selection: Whole 20-second detection files by inclusive UTC file-start time, at most one day
- Required inputs: Satellite and both timestamps
- Open locally:
usdata[netcdf]· Reader guide - On usdata.dev: GOES lightning detections, with a walkthrough
- Studies: Which severe reports came with rotation and lightning?; For one Oklahoma tornado, do the two report archives agree on when and where it was, and what did radar, lightning, and the model analysis show at that place and time?
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