气候学文档

气候学函数给出一个变量的典型值,因为它在全年中都在变化。该函数的输出包括总体平均值(而季节函数的输出不包括)。

参见:季节deseasonsinefitsineval,sinefit_bootstrap

回到气候数据工具内容

内容

语法

[Ac,tc] =气候学(A,t) [Ac,tc] =气候学(…,'daily') [Ac,tc] =气候学(…,'monthly') [Ac,tc] =气候学(…,' dettrend ',DetrendOption) [Ac,tc] =气候学(…,'dim',dimension) Ac =气候学(…,'full')

描述

[Ac,tc] = climatology(A,t)给出了变量A全年变化的典型值。“Times”“t”为datenum或datetime格式。如果t为日,输出tc为1到366,Ac将包含每年366天中的每一天的平均值。如果输入是每月的,则tc为1:12,Ac将包含一年中每个月的平均值。

[Ac,tc] = climatology(…,'daily')直接指定输入为日分辨率。气候学函数通常会自动计算出这一点,但如果你的数据中有很大的空白,你可能希望通过指定每天来确保正确的结果。

[Ac,tc] = climatology(…,'monthly'),但强制按月求解。

[Ac,tc] = climatology(…,' dettrend ',DetrendOption)指定确定季节异常的相对基线。选项有“线性”、“二次”或“无”。默认情况下,异常是在去除线性最小二乘趋势后计算的,但如果,例如,变暖是强烈的非线性,你可能更喜欢“二次”选项。默认值是线性的。

[Ac,tc] = climatology(…,'dim',dimension)指定一个用来评估季节的维度。默认情况下,如果A为1D,则沿非单维度返回季节周期;如果A为2D,则气候学沿维1进行(时间沿行行进);如果A为3D,则气候学沿维度3进行。

Ac = climatology(…,'full')返回整个时间序列a的Ac,这是单独查看长时间序列的组成部分的方便选项。

例1:每日海冰范围

这是一些海冰数据主要是日报。在1988年之前,只有每隔一天的数据,但没关系气候学函数会算出来。首先加载并绘制数据。还添加了最小二乘趋势线与polyplot

负载seaice_extent情节(t, extent_N)盒子ylabel海冰范围(\times10^6 km^2)持有extent_N polyplot (t)

当时的气候学是:

extent_N_clim =气候(extent_N,t,“全部”);情节(t, extent_N_clim)

在上面的图中,你会注意到气候学与原始海冰范围时间序列具有相同的平均值,但它没有任何随时间变化的趋势。它唯一的变化是随着季节的变化。

从原始信号中去除气候学会产生与去除平均值和季节周期相同的结果——唯一剩下的部分将是长期趋势、年际变化和噪声。

例2:网格化数据

对于本例,加载pacific_sst示例数据集,该数据集包含802个月的网格化海洋表面温度数据。使用这66.8年的数据来了解sst在全年中是如何变化的,就像这样:

负载pacific_sstSst_c =气候学(sst,t);

现在,sst_c是一个60x55x12的海洋表面温度网格。第三个维度表示典型年份中每个月的海面温度。动画他们,并使一个gif像这样,从绘制第一帧开始:

图h = imagescn(lon,lat,sst_c(:,:,1));Cb = colorbar;ylabel(cb,'海面温度(\circC)') cmocean thermal %设置颜色映射标题(datestr(datenum(0,1,1),'mmmm')) %将"1"转换为"January" caxis([2 29]))
添加一个愚蠢的地球图像:hold on he =地球图像;uistack(he,'bottom') %将地球图像放在SST数据下面
%写入第一帧:gif('pacific_sst_climatology.gif','frame',gcf,'delaytime',1/12,'nodither')
h.CData = sst_c(:,:,k);%更新每月值title(datestr(datenum(0,k,1),'mmmm')) %更新标题GIF %将此帧添加到GIF端

...这就产生了这个漂亮的动画:

季节与气候学

CDT有一个函数叫做气候学另一个函数叫做季节.唯一的区别是的输出气候学包括变量的均值,而的输出季节均值总是0。因此,deseason函数在保留总体平均值和趋势的同时,去掉了可变性的季节成分。

一般来说,CDT假设以次年分辨率采样的一个变量的多年记录可以描述为

Y = y_0 + y_tr + y_season + y_var + y_noise

在哪里

在这个模型中,

Y_climatology = y_0 + y_season

其他定义季节性的方法

还有另一种定义季节性的方法,见sinefitsineval,sinefit_bootstrap

作者信息

这个函数是气候数据工具箱Matlab.该功能和辅助文档由德克萨斯大学奥斯金宝app汀分校的Chad A. Greene编写。