Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Southern Oscillation

Marcin Wojdyr edited this page · 5 revisions

From Wikipedia:

El Niño/La Niña-Southern Oscillation, or ENSO, is a quasiperiodic climate pattern that occurs across the tropical Pacific Ocean with on average five year intervals. [...] The two variations are coupled: the warm oceanic phase, El Niño, accompanies high air surface pressure in the western Pacific, while the cold phase, La Niña, accompanies low air surface pressure in the western Pacific. Mechanisms that cause the oscillation remain under study.

The strength of the Southern Oscillation is measured by the Southern Oscillation Index (SOI): the difference in atmospheric pressure between Tahiti (Easter Island) and Darwin, Australia.

In chapter 11.9 of Numerical Methods and Software by Kahaner, Moler and Nash (1989) the SOI data from years 1962-1975 (1 point = 1 month) are fitted, as an exercise, using various models.

By the way, there are a few different methods of how to calculate the SOI, I do not know what method was used in this book (anyone knows? all other sources that I found in the Internet show different numbers than here).

This dataset is quite popular because it is included in the Statistical Reference Datasets (StRD) from NIST as ENSO.dat and many programs use it as a test or example of nonlinear fitting.

Let's fit this dataset using the model proposed in the StRD:

define Enso(b1, b2, b3, b4, b5, b6, b7, b8, b9) = b1 + b2*cos(t/12) + b3*sin(t/12) + b5*cos(t/b4) + b6*sin(t/b4) + b8*cos(t/b7) + b9*sin(t/b7) where t=2*pi*x
F = Enso(~11.0, ~3.0, ~0.5, ~40.0, ~-0.7, ~-1.3, ~25.0, ~-0.3, ~1.4)

We get the same results as in the StRD.

img/fityk-1.0.0-gtk-enso.png

We can construct the same model in a different way:

define Cycle(period, a, b) = a*cos(2*pi*x/period) + b*sin(2*pi*x/period)
F = Constant(~11) + Cycle(12, ~3.0, ~0.5) + Cycle(~40.0, ~-0.7, ~-1.3) + Cycle(~25.0, ~-0.3, ~1.4)

This allows us to see four components (three cycles and constant) separately.

img/fityk-1.0.0-gtk-enso2.png
Something went wrong with that request. Please try again.