GeoEco.DataProducts.NOAA.ClimateIndices.PSLClimateIndices.ClassifyONIEpisodesInTimeSeriesTable
- classmethod PSLClimateIndices.ClassifyONIEpisodesInTimeSeriesTable(table, dateField, oniField, episodeField, noDataValue=None)
Given a time series table of monthly Oceanic Niño Index (ONI) numerical values, classifies each month as part of a normal, El Niño (warm), or La Niña (cold) episode.
At the time of this writing (in 2024), the NOAA Climate Prediction Center (CPC) maintained a table of ONI values at https://www.cpc.ncep.noaa.gov/products/analysis_monitoring/ensostuff/ensoyears.shtml. A copy of these values were provided by the NOAA Physical Sciences Laboratory (PSL) at https://psl.noaa.gov/data/correlation/oni.data. The CPC provided the following definition of ONI and ONI episodes:
“Warm and cold episodes based on a threshold of +/- 0.5 deg C for the Oceanic Niño Index (ONI) [3 month running mean of ERSST.v5 SST anomalies in the Niño 3.4 region (5N-5S, 120-170W)], based on centered 30-year base periods updated every 5 years. For historical purposes cold and warm episodes are defined when the threshold is met for a minimum of 5 consecutive overlapping seasons.”
This tool accepts as input a table of monthly ONI values and classifies each month as a normal, El Niño (warm), or La Niña (cold) episode, according to CPC’s definition. To reproduce CPC’s table using data from PSL with this tool, you can:
Use the Create Table from PSL Climate Index Time Series at URL tool to create a table from https://psl.noaa.gov/data/correlation/oni.data.
Add a field called
ONIEpisodeto the table, with an integer data type.Use this tool to populate that field. The episodes will be coded for each month as normal (0), La Niña (-1), or El Niño (1).
- Parameters:
table (
Table) – Time series table of monthly ONI values. The table must have three fields: a date field, a field that holds the numerical ONI value, and field that will receive the episode code. Please see documentation for the following parameters for more information.dateField (
str) – Field that contains the date of the ONI value. The field must have a datetime data type. The records in the table must form a sequence of months, with the dates for the first day of the month (e.g. 1-Jan-2000, 1-Feb-2000, 1-Mar-2000, …). The date represents the middle month of the 3-month ONI averaging “season”. For example, for the year 2000, the December-January-February (DJF) season must have the date 1-Jan-2000, while the January-February-March (JFM) season must have the date 1-Feb-2000. A given date must only appear once. Minimum length꞉ 1.oniField (
str) – Field that contains the ONI value. The field must have a floating point data type. If an ONI value is not available for a month, this field should have the value NULL (if supported by the database) or -9.9 (if NULL is not supported). Minimum length꞉ 1.episodeField (
str) –Field to receive the ONI episode code. The field must have an integer data type. It will be calculated as described in the introductory documentation for this tool and set to one of these values:
-1- this month is a La Niña (cold) episode.0- this month is a normal episode.1- this month is an El Niño (warm) episode.The value provided for the noDataValue parameter - the ONI episode could not be calculated for this month.
Minimum length꞉ 1.
noDataValue (
int, optional) – Value to store in the ONI episode field when the ONI episode cannot be calculated.