CPC ENSO indices
Available since v0.33 as noaa:enso-indices. The Climate Prediction Center
publishes its seasonal El Niño-Southern Oscillation indices as plain-text
tables, each holding the whole record from DJF 1950. Access is anonymous
HTTPS, and one query fetches one table:
uv run usdata fetch noaa:enso-indices --dry-run # RONI, the default
uv run usdata fetch noaa:enso-indices -p index=oni --dry-run
Which index
index |
File | Columns | What it is |
|---|---|---|---|
roni (default) |
RONI.ascii.txt |
SEAS YR ANOM |
Relative Oceanic Niño Index, NOAA's official ENSO index since 1 February 2026 |
oni |
oni.ascii.txt |
SEAS YR TOTAL ANOM |
Oceanic Niño Index, the traditional index |
Both are three-month running means of the Niño 3.4 region's sea surface
temperature anomaly, 5°N to 5°S and 170°W to 120°W, computed from ERSST v6
(noaa:ersst). They differ in what the anomaly is measured
against:
- ONI uses 30-year base periods centred on each era and updated every five
years.
TOTALis the season's mean temperature, andANOMits anomaly. - RONI uses the 1991-2020 base, subtracts the mean anomaly of the whole tropics (20°N to 20°S) from the Niño 3.4 anomaly, and rescales the difference to the traditional index's variance, as NWS Public Information Statement 26-05 sets out.
An El Niño is five or more consecutive overlapping seasons at +0.5 °C or above; a La Niña, at −0.5 °C or below. When the tropics as a whole are warm, the two indices part: JJA 2026 is ONI +1.80 and RONI +1.36 (checked 2026-09-28).
Rows and seasons
Each row is one overlapping season named by its three initials. YR is the
year of the middle month, so DJF 1950 is December 1949 to February 1950 and
NDJ 1950 is November 1950 to January 1951. The first row is DJF 1950, and the
asset's time starts on 1 December 1949 and is open-ended.
The table is the whole record, so there is nothing to select on the server: a
window, a box, variables, and text are refused, and only index is accepted.
Every capability is false. Listing makes no request and reports no size; each
file is under 25 kB.
Reading a table
There is no bundled reader: the files are whitespace-delimited text, not CSV,
and open() refuses them. pandas reads them in one line:
Revisions
CPC rewrites both files in place each month, by the fifth, when it adds the newest season. Its RONI page adds that "RONI values may change up to two months after the initial 'real time' value is posted", because of the filtering in ERSST v6, and ONI's base periods move every five years. A lockfile pins the table as it was. The next month's rewrite shows as a changed entry, and a restore then needs the cached copy or the mirror.
Upstream revisions
Agencies revise files in place. A locked restore downloads each pinned URL
and fails with a checksum mismatch when the bytes have changed; accept the
new bytes for chosen entries with pull --update, or re-resolve the whole
manifest with pull --force. A lockfile detects changed data; it does not
archive it. Keep the cache with the manifest and lockfile. See
provenance and drift.
Legacy tables computed from ERSST v5 are still on the same server,
RONI.v5.ascii.txt and ersst5.nino.mth.91-20.ascii, but this dataset does
not serve them.
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.
- Definitions, resolution, and update cadence: CPC's RONI page ("updated by the 5th of each month") and ONI page, and NWS Public Information Statement 26-05.
- Variables: the header rows of the two files.
- Terms: CPC's pages link the NWS disclaimer. CPC publishes no citation form, so the entry uses the agency, product, and access form.
- Latency is empty: CPC gives a publication day, not a lag. The JJA 2026 season was in both files on 2026-09-03.
Reference
noaa:enso-indices · Released · Included since usdata 0.33. CPC ENSO Indices (RONI and ONI).
At a glance
- Files: whitespace-delimited text (no reader)
- Selection: One whole index table, every season from DJF 1950; select seasons locally
- Required inputs: Optional index (roni or oni); no dates or geographic filters
- Open locally: Local files; no bundled reader for this format
- On usdata.dev: Seasonal El Niño indices, the official RONI and the traditional ONI, with a walkthrough
- Studies: How have strong El Niño winters changed U.S. snowfall, and what does that suggest for 2026–27?
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 |
|---|---|
index |
Index table: roni (default, the Relative Oceanic Niño Index NOAA uses officially) or oni (the traditional Oceanic Niño Index). |
Variables
| Variable | Units | Meaning |
|---|---|---|
SEAS |
— | Three-month season, such as DJF |
YR |
— | Year of the season's middle month |
ANOM |
degree_C | Index value: the season's anomaly |
TOTAL |
degree_C | Niño 3.4 mean temperature; ONI table only |
Catalog facts
- Availability: since 0.33
- Domain: Climate
- Spatial resolution: One value for the Niño 3.4 region, 5N-5S and 170W-120W
- Temporal resolution: Overlapping three-month seasons, one per month
- Updates: Monthly, by the 5th
- Terms of use: https://www.weather.gov/disclaimer
- Citation: NOAA Climate Prediction Center, Relative Oceanic Niño Index and Oceanic Niño Index, accessed via usdata
- Geographic bounds (WGS84): west -170°, south -5°, east -120°, north 5°
- Catalog date range: 1949-12-01 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:
http - Adapter:
usdata.providers.noaa.enso:EnsoIndices