Get El Niño Southern Oscillation Index values

バージョン 1.2.0.0 (15.1 KB) 作成者: Chad Greene
Get SOI (or ENSO) values as a time series from the year 1866 to present.
ダウンロード: 857
更新 2012/10/17

ライセンスの表示

get_soi(start_date,end_date) retrieves monthly standardized values of the Southern Oscillation Index (SOI) computed by UCAR using the standardization approach outlined by Trenberth (1984) to maximize the signal. Note that SOI values prior to 1935 should be used with caution. There are questions regarding the consistency and quality of the Tahiti pressure values prior to 1935.

SOI or El Niño Southern Oscillation (ENSO) is a climatological pattern measured by pressure anomalies in the western Pacific Ocean. High positive values indicate a La Niña year, and low negative values indicate an El Niño year.

INPUT ARGUMENTS: (optional)
start_date = beginning date of range in Matlab's datenum format
(e.g. datenum(1936,4,1) for April 1, 1936). Valid for
Jan. 1866 or after, however values before 1935 are
questionable. start_date is an optional input and can be
used without declaring an end_date.

end_date = ending date of investigation period in Matlab's datenum
format. end_date is an optional input.

OUTPUTS:
soi_ind = Standardized southern oscillation index time series.
soi_dates = corresponding date vector in Matlab's datenum format.

VALID SYNTAX INCLUDES:
soi_ind = get_soi; % (indices only, full historical range)
[soi_ind,soi_dates] = get_soi; % (indices & dates, full historical range)
[soi_ind,soi_dates] = get_soi(datenum(1936,4,1)); % Apr. 1936 to present
[soi_ind,soi_dates] = get_soi(datenum(1936,4,1),datenum('March 28, 2010'));

EXAMPLE 1:
[soi_ind,soi_dates] = get_soi;
figure
plot([soi_dates(1) soi_dates(end)],[0 0],'k'); hold on
plot(soi_dates,soi_ind,'b')
datetick
xlim([soi_dates(1) soi_dates(end)])
box off
text(0,.9,' La Nina years','units','normalized')
text(0,.1,' El Nino years','units','normalized')
ylabel('Standardized Southern Oscillation Index')

EXAMPLE 2:
(This example requires Signal Processing Toolbox, but the get_soi function does not.)

[soi_ind,soi_dates] = get_soi(datenum(1936,4,1));
figure
subplot(2,1,1)
plot([soi_dates(1) soi_dates(end)],[0 0],'k'); hold on
plot(soi_dates,soi_ind,'b')
datetick
xlim([soi_dates(1) soi_dates(end)])
box off
text(0,.9,' La Nina years','units','normalized')
text(0,.1,' El Nino years','units','normalized')
ylabel('Standardized SOI')
xlabel('year')

[Px_soi,f_soi] = pwelch(soi_ind(isfinite(soi_ind)),2^9,2^8,[],12);
subplot(2,1,2)
semilogx(f_soi,10*log10(abs(Px_soi)))
xlim([f_soi(1) f_soi(end)])
set(gca,'xtick',1./[10 7 5 4 3 2 1],'xticklabel',[10 7 5 4 3 2 1])
xlabel('oscillation period (years)')
ylabel('power spectrum (dB)')
box off

References:
Trenberth (1984), "Signal versus Noise in the Southern Oscillation"
Monthly Weather Review 112:326-332.

UCAR website http://www.cgd.ucar.edu/cas/catalog/climind/soi.html

引用

Chad Greene (2024). Get El Niño Southern Oscillation Index values (https://www.mathworks.com/matlabcentral/fileexchange/38629-get-el-nino-southern-oscillation-index-values), MATLAB Central File Exchange. に取得済み.

MATLAB リリースの互換性
作成: R2010b
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersOceanography and Hydrology についてさらに検索
タグ タグを追加
謝辞

ヒントを得たファイル: Get Global Mean Sea Levels

ヒントを与えたファイル: Get Land Surface Temperatures

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

get_soi/

バージョン 公開済み リリース ノート
1.2.0.0

Fixed a glitch related to the declaration of date ranges.

1.1.0.0

Clarified script documentation.

1.0.0.0