GOES ABI imagery and cloud-top products
Available since v0.8 as noaa:goes-abi. Files are NetCDF4/HDF5 scenes from the
anonymous noaa-goes16, noaa-goes17, noaa-goes18, and noaa-goes19 buckets.
No AWS credentials or SDK are needed. The dataset started with single-channel
CONUS Cloud and Moisture Imagery, ABI-L2-CMIPC, and added mesoscale imagery in
v0.25.0. It now also covers full-disk imagery, the 16-band imagery files, and
four cloud-top products. L1b radiances and the other Level 2 products are not
supported.
Products
product names one bucket directory exactly. The last letter is the sector:
C for CONUS, F for full disk, M for mesoscale. NOAA does not make every
product for every sector, and the adapter accepts only the directories that
exist:
| Product | What one file holds | CONUS | Full disk | Mesoscale | First archived day |
|---|---|---|---|---|---|
ABI-L2-CMIP |
One channel of Cloud and Moisture Imagery, CMI and DQF |
CMIPC |
CMIPF |
CMIPM |
2017-02-28 |
ABI-L2-MCMIP |
All 16 channels on one 2 km grid, CMI_C01–CMI_C16 and DQF_C01–DQF_C16 |
MCMIPC |
MCMIPF |
MCMIPM |
2017-02-28 |
ABI-L2-ACHA |
Cloud-top height HT (m) |
ACHAC |
ACHAF |
ACHAM |
2019-12-02 |
ABI-L2-ACHT |
Cloud-top temperature TEMP (K) |
none | ACHTF |
ACHTM |
2019-12-05 |
ABI-L2-CTP |
Cloud-top pressure PRES (hPa) |
CTPC |
CTPF |
none | 2019-12-05 |
ABI-L2-ACTP |
Cloud-top phase Phase (categories) |
ACTPC |
ACTPF |
ACTPM |
2017-05-16; ACTPM 2019-12-02 |
Write the whole directory name, for example product=ABI-L2-MCMIPC. The first
archived day is the earliest scene in any of the four buckets, always GOES-16's;
later satellites start later (GOES-17 in late August 2018, GOES-18 on
2022-05-11, GOES-19 in October 2024). A query that ends before its product's
first day is refused, and one that starts earlier is listed from that day.
Every cloud-top file also holds a DQF quality flag. Phase values 0 to 5 mean
clear sky, liquid water, supercooled liquid water, mixed phase, ice, and
unknown, as the file's flag_meanings states. The files' spatial_resolution
attributes give 10 km at nadir for CONUS and full-disk height and pressure, 4 km
for mesoscale height, and 2 km for temperature and phase in every sector.
The 2 km cloud-top height variant
The buckets also hold ABI-L2-ACHA2KMC, ACHA2KMF, and ACHA2KMM, a 2 km
cloud-top height. Their filenames have the same shape, but they are not
supported: GOES-17 has none, and the other satellites start only in 2023
(GOES-16 on 2023-03-23, GOES-18 on 2023-03-27). Accepting them would mean a
product whose existence depends on the satellite and year, and the 10 km ACHA
already covers the whole record. Add them if a study needs the finer grid.
Selecting
Require satellite (16, 17, 18, or 19) and both timestamps. product
defaults to ABI-L2-CMIPC, so a query written before the new products still
means the same files.
channel(1–16, alsoC01–C16) is required for the threeABI-L2-CMIPproducts and refused for every other product. An MCMIP file holds all 16 channels, so a channel there is a mistake rather than a filter.sector(M1orM2) is required for the products ending inMand refused for the rest.
These rules are checked before any network access, and each mistake names the
parameter and the product. Unknown parameters, text or geographic constraints,
and variables are refused too: the server cannot crop these scenes or select
variables within them. temporal_subset means selecting archived scans.
ADR 0050 records why the parameters
work this way.
The adapter lists hourly PRODUCT/YYYY/DDD/HH/ prefixes, follows S3
continuation tokens, and selects scans whose start times fall in the inclusive
UTC query interval. It does not select a scan that started before the interval
merely because the scan overlaps it. Filename start/end stamps have tenths-of-a-
second precision; asset metadata retains both bounds and the listed byte size.
Both mesoscale sectors share one directory per product; filenames distinguish
M1 from M2, for example OR_ABI-L2-ACHAM1-M6_G16_s.... The adapter filters
the requested sector, channel, and satellite, never mixing M1 and M2. A sector
is a movable observation window, not a geographic alias. Inspect the coordinates
and geospatial_lat_lon_extent in every file before comparing pixels across
time; scan-start seconds and sector coverage can change. No sector-by-location
selection is inferred.
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,
in any ISO 8601 spelling (2024-05-07, 20240507, or 2024-W19-2), 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.
How much a query fetches
A query spans at most seven days, for every product; split longer intervals. The window bounds how many hourly listings one query makes (at most 169), not how many bytes its files hold, and those differ greatly. Measured on GOES-16 in the daytime hour from 22:00 UTC on 2024-05-06, with the last column repeating that hour for a week:
| Product | Files per hour | MB per file | A week at this rate |
|---|---|---|---|
CMIPC, one channel |
12 | 2.2–63 | 5–122 GB |
CMIPF, one channel |
6 | 9–301 | 10–288 GB |
CMIPM, one channel and sector |
60 | 0.2–5.0 | 2–49 GB |
MCMIPC |
12 | 55–58 | 114 GB |
MCMIPF |
6 | 297–312 | 307 GB |
MCMIPM, one sector |
60 | 4.3–4.5 | 45 GB |
ACHAC, CTPC, ACTPC |
12 | 0.29–0.59 | 0.6–1.2 GB |
ACHAF, CTPF, ACTPF |
6 | 1.5–3.1 | 1.5–3.1 GB |
ACHTF |
6 | 28 | 28 GB |
ACHAM, ACHTM, ACTPM, one sector |
60 | 0.09–0.33 | 0.9–3.3 GB |
The largest single-channel files are channel 2, observed at 0.5 km. Reflective
channels compress less by day, so night hours are smaller: MCMIPM scenes were
3.0–3.8 MB in the 06:00 and 10:00 UTC hours that day. A day of MCMIPF is about
44 GB, and a week of CONUS channel 2 was already 122 GB before full disk was
supported. Run usdata fetch --dry-run first; it lists every file and totals
the bytes.
Examples
Fetch one small shortwave-infrared CONUS scene (~255 kB):
uv run usdata fetch noaa:goes-abi \
--start 2024-05-06T12:01:18.1Z --end 2024-05-06T12:01:18.1Z \
-p satellite=18 -p channel=6
Fifteen minutes of one mesoscale channel (~4.93 MB in the verified window):
uv run usdata fetch noaa:goes-abi \
--start 2024-05-06T22:00:00Z --end 2024-05-06T22:14:59.999999Z \
-p satellite=16 -p channel=13 -p product=ABI-L2-CMIPM -p sector=M1
All 16 channels of one mesoscale scan in one file (4.5 MB), with no channel:
uv run usdata fetch noaa:goes-abi \
--start 2024-05-06T22:00:28Z --end 2024-05-06T22:00:28Z \
-p satellite=16 -p product=ABI-L2-MCMIPM -p sector=M1
Cloud-top phase for the same scan (87 kB):
uv run usdata fetch noaa:goes-abi \
--start 2024-05-06T22:00:28Z --end 2024-05-06T22:00:28Z \
-p satellite=16 -p product=ABI-L2-ACTPM -p sector=M1
The walkthrough opens a CONUS channel and a 16-band mesoscale scene. The mesoscale example checks scan timing, quality flags, and footprint stability before comparing a fixed local region, then restores all fifteen pinned scenes into an empty cache.
Reading the files
Channel 6 is reflected solar imagery and the small CONUS example is mostly dark; it is chosen to keep the live fetch/restore check small. For thermal imagery, CONUS channel 13 scenes are roughly 4 MB in the verified sample. CMI represents reflectance for reflective bands or brightness temperature for infrared bands; consult the file's units and data-quality flags before analysis. The adapter preserves raw bytes and does not project, mask, or reinterpret imagery.
In an MCMIP file, channels 1 to 6 are reflectance factor (units 1) and 7 to 16
are brightness temperature (K). Every channel is on the 2 km grid, so channels
1, 2, and 3, which NOAA observes at 1, 0.5, and 1 km, are coarser than in their
single-channel files. For the GOES-16 M1 scan starting 22:00:28 UTC on
2024-05-06, CMI_C13 and DQF_C13 equal CMI and DQF in the single-channel
CMIPM1 channel-13 file value for value, and the live test checks this; other
channels were not compared. Stacking CMI_C01 to CMI_C16 gives a
(16, y, x) array without fetching or regridding 16 files. A file names its
satellite (platform_ID), scene (scene_id, with M1 or M2 in dataset_name),
and resolution (spatial_resolution), so assets carry no properties.
NOAA's product documentation
identifies the products, their sectors, the channels, and scan modes. The
NODD registry documents public cloud
access. Satellite availability varies by date and outages; no East/West alias
is inferred from a historical query. The catalog's start is the initial public
GOES-16 date, not a claim that every satellite or product was operating then.
Listing ABI-L2-CMIPC/2017/ with max-keys=1 confirmed the first scene at
2017-02-28T00:02:50.4Z. The GOES-16 bucket also has placeholder year-2000 scenes
under the CMIP, MCMIP, ACTPC, and ACTPF directories, which NCEI's page describes as files
whose s20000011200000 stamps may mean an incomplete scan. The adapter excludes
these by listing only from each product's first archived day and refusing
intervals entirely before it.
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, whose
channel table gives 0.5 km to 2 km nominal resolution by channel and an average
five-minute scan frequency, and whose sector table gives full-disk files per day by
mode: 96 in Mode 3, 288 in Mode 4, 144 in Mode 6, and 1,440 per day, one a minute,
for each of the two mesoscale sectors. NESDIS's geostationary satellites
page
says the imager scans as frequently as every 30 seconds. MCMIP's 2 km grid and
the cloud-top products' 2, 4, and 10 km come from the
spatial_resolutionattribute of the fetched files, probed in the service notes. - Products and sectors: the NCEI page's product type table, which lists ACHA, ACTP, CMIP, and MCMIP for M1, M2, C, and F, ACHT for M1, M2, and F, and CTP for C and F, as the bucket listings confirm.
- Updates, citation, and terms: the NODD registry entry and the NOAA Open Data Dissemination statement it quotes.
- Variables: the file contents described on the NCEI page and carried by the fetched scenes; the MCMIP channel names and central wavelengths follow the NCEI channel table.
- Longest query window:
MAX_WINDOWinusdata.providers.noaa.goes. - Latency is empty: NODD says only that new data is added as soon as it is available, and the NCEI page's 30-minutes-to-two-hours figure describes CLASS subscriptions rather than this bucket.
Reference
noaa:goes-abi · Released · Included since usdata 0.8. GOES-R ABI Imagery and Cloud-Top Products.
At a glance
- Files: NetCDF4
- Selection: Whole scenes of one ABI product by inclusive UTC scan-start time, with one channel or mesoscale sector where the product has them
- Required inputs: Satellite and both timestamps; product (default ABI-L2-CMIPC); channel for CMIP products; sector for mesoscale products
- Open locally:
usdata[netcdf]· Reader guide - On usdata.dev: GOES ABI imagery, multiband scenes, and cloud-top products, with a walkthrough
- Studies: How did central Plains infrared cloud patterns change over fifteen minutes?; What did radar and satellites show around a reported tornado?
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 |
|---|---|
channel |
ABI channel, 1 to 16 or C01 to C16. Required for ABI-L2-CMIP products only. |
product |
ABI product directory, such as ABI-L2-MCMIPC: CMIP (one channel) or MCMIP (16 channels) imagery, or cloud-top ACHA height, ACHT temperature (F and M only), CTP pressure (C and F only), or ACTP phase, ending in C (CONUS), F (full disk), or M (mesoscale). Default ABI-L2-CMIPC. |
satellite |
Required GOES satellite number: 16, 17, 18, or 19. |
sector |
Mesoscale sector M1 or M2. Required for products ending in M only. |
Variables
| Variable | Units | Meaning |
|---|---|---|
CMI |
— | CMIP cloud and moisture imagery; reflectance factor or brightness temperature by band |
DQF |
1 | Per-pixel data quality flags in CMIP and every cloud-top product |
CMI_C01 |
1 | MCMIP band 1 (0.47 µm, blue visible) reflectance factor on the 2 km grid |
CMI_C02 |
1 | MCMIP band 2 (0.64 µm, red visible) reflectance factor on the 2 km grid |
CMI_C03 |
1 | MCMIP band 3 (0.86 µm, veggie near-infrared) reflectance factor on the 2 km grid |
CMI_C04 |
1 | MCMIP band 4 (1.37 µm, cirrus near-infrared) reflectance factor on the 2 km grid |
CMI_C05 |
1 | MCMIP band 5 (1.6 µm, snow/ice near-infrared) reflectance factor on the 2 km grid |
CMI_C06 |
1 | MCMIP band 6 (2.2 µm, cloud particle size near-infrared) reflectance factor on the 2 km grid |
CMI_C07 |
K | MCMIP band 7 (3.9 µm, shortwave window infrared) brightness temperature on the 2 km grid |
CMI_C08 |
K | MCMIP band 8 (6.2 µm, upper-level water vapor) brightness temperature on the 2 km grid |
CMI_C09 |
K | MCMIP band 9 (6.9 µm, mid-level water vapor) brightness temperature on the 2 km grid |
CMI_C10 |
K | MCMIP band 10 (7.3 µm, lower-level water vapor) brightness temperature on the 2 km grid |
CMI_C11 |
K | MCMIP band 11 (8.4 µm, cloud-top phase infrared) brightness temperature on the 2 km grid |
CMI_C12 |
K | MCMIP band 12 (9.6 µm, ozone infrared) brightness temperature on the 2 km grid |
CMI_C13 |
K | MCMIP band 13 (10.3 µm, clean longwave window) brightness temperature on the 2 km grid |
CMI_C14 |
K | MCMIP band 14 (11.2 µm, longwave window) brightness temperature on the 2 km grid |
CMI_C15 |
K | MCMIP band 15 (12.3 µm, dirty longwave window) brightness temperature on the 2 km grid |
CMI_C16 |
K | MCMIP band 16 (13.3 µm, CO2 longwave infrared) brightness temperature on the 2 km grid |
DQF_C01 |
1 | MCMIP per-pixel data quality flags for CMI_C01 |
DQF_C02 |
1 | MCMIP per-pixel data quality flags for CMI_C02 |
DQF_C03 |
1 | MCMIP per-pixel data quality flags for CMI_C03 |
DQF_C04 |
1 | MCMIP per-pixel data quality flags for CMI_C04 |
DQF_C05 |
1 | MCMIP per-pixel data quality flags for CMI_C05 |
DQF_C06 |
1 | MCMIP per-pixel data quality flags for CMI_C06 |
DQF_C07 |
1 | MCMIP per-pixel data quality flags for CMI_C07 |
DQF_C08 |
1 | MCMIP per-pixel data quality flags for CMI_C08 |
DQF_C09 |
1 | MCMIP per-pixel data quality flags for CMI_C09 |
DQF_C10 |
1 | MCMIP per-pixel data quality flags for CMI_C10 |
DQF_C11 |
1 | MCMIP per-pixel data quality flags for CMI_C11 |
DQF_C12 |
1 | MCMIP per-pixel data quality flags for CMI_C12 |
DQF_C13 |
1 | MCMIP per-pixel data quality flags for CMI_C13 |
DQF_C14 |
1 | MCMIP per-pixel data quality flags for CMI_C14 |
DQF_C15 |
1 | MCMIP per-pixel data quality flags for CMI_C15 |
DQF_C16 |
1 | MCMIP per-pixel data quality flags for CMI_C16 |
HT |
m | ACHA cloud-top height |
TEMP |
K | ACHT cloud-top temperature |
PRES |
hPa | CTP cloud-top pressure |
Phase |
1 | ACTP cloud-top phase: clear sky, liquid water, supercooled liquid water, mixed phase, ice, or unknown |
Catalog facts
- Availability: since 0.8
- Domain: Weather satellites
- Spatial resolution: Imagery 0.5 km to 2 km at nadir by band, MCMIP bands on the 2 km grid; cloud-top products 2 km to 10 km at nadir
- Temporal resolution: CONUS every 5 minutes; full disk every 10 minutes in Mode 6 (15 in Mode 3, 5 in Mode 4); two mesoscale sectors every 60 seconds or one every 30 seconds
- Updates: New data is added as soon as it's available
- Longest query window: 7 days
- 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: 2017-02-28 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.goes:GoesAbi