detrend3文档

detrend3执行线性最小二乘法消除趋势在第三维度的矩阵。

参见:趋势

回到气候数据工具的内容

内容

语法

广告= detrend3 (A)广告= detrend3 (t),广告= detrend3 (…,“omitnan”)

描述

广告= detrend3 (A)删除从第三维的线性趋势一个假设片一个在恒定的时间间隔采样。

广告= detrend3 (t)指定时间t每片a倍有关t不需要定期发生。

广告= detrend3 (…,“omitnan”)即使在网格细胞包含适用于消除趋势值。如果许多网格细胞包含伪nan,你可能会发现,这个选项是低于默认值。

示例1:3 d网格数据集

这个示例数据集的趋势为3.2户/步伐无处不在:

t = 50:50:1000;y = 3.2 * 0.1 t + * randn(大小(t));%的趋势是3.2 * t(加上一些随机噪声)%创建5 x5网格w /趋势由y:Z = expand3 ((5), y);

这是通过证明趋势趋势函数:

趋势(Z, t)
ans = 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000 3.2000

现在让我们去趋势:

Z_detrend = detrend3 (Z, t);

现在的趋势是什么?

趋势(Z_detrend t)
ans e-14 = 1.0 * -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212 -0.2212

只是数值噪声(注意,这是0到1.0 e-14)的水平。

示例2:海洋表面温度

这个例子从网格计算一个area-averaged海表温度异常时间序列,然后去趋势网格的sst系列和情节去趋势异常时间系列。

首先加载示例pacific_sst。垫月太平洋的数据集。使用cdtarea每个网格单元的区域,然后使用当地的一维时间序列的面积加权太平洋所有海洋网格细胞。

%加载示例数据:负载pacific_sst%将纬度,经度数组为网格:(经度、纬度)= meshgrid(经度、纬度);%的区域(m ^ 2)每个网格单元:一个= cdtarea(纬度、经度);%的每个网格单元(m ^ 2)%的面具只有有限的数据(有效地忽略土地)掩码=所有(isfinite (sst), 3);%得到面积加权sst的一维时间序列:sst_1 =当地(sst,面具,“重量”,);

现在情节面积加权海温异常使用异常函数。背景,情节线性趋势polyplot:

图异常(t, sst_1-mean (sst_1))轴datetick (“x”,“keeplimits”)ntitle (的海面温度异常(不去趋势))举行polyplot (t, sst_1-mean (sst_1), 1,“k”,“线宽”3)

现在去趋势整个3 d sst数据集和情节area-averaged时间序列相同,但这一次使用去趋势数据:

%去趋势的完整三维时间序列:sst_dt = detrend3 (sst);%得到area-averaged去趋势SST时间序列:sst_dt_1 =当地(sst_dt,面具,“重量”,);图异常(t, sst_dt_1-mean (sst_dt_1))轴datetick (“x”,“keeplimits”)ntitle (“去趋势海表温度异常”)举行polyplot (t, sst_dt_1-mean (sst_dt_1), 1,“k”,“线宽”3)

示例3:“omitnan”选项

在某些情况下,你的网格数据集可能有虚假nan。海温数据集的情况下我们在上面的例子中分析。看,802个月的海温资料,看看有多少价值有限:

图imagescn(经度、纬度、总和(isfinite (sst), 3)) cb = colorbar;ylabel (cb、有限的数据值的数量)caxis(802年[700])%设置颜色轴的限制

在上图中,看一看在加拿大哈德逊湾。你会发现并不是所有的802个月有有效数据。多达100个月的数据丢失,因为它很难得到一个好的SST阅读在冬季冰螺丝的测量。不过,您可能需要删除数据的长期趋势。

这是一个比较消除趋势对海温数据集没有对的“omitnan”选择。首先使用趋势函数,简单地评估趋势的大小:

图次要情节(1、2、1)imagescn(经度、纬度、趋势(风场,12))cb = colorbar (“位置”,“southoutside”);包含(cb、“海温趋势\ circC /年”)标题“没有omitnan趋势”caxis ([-0.04 - 0.04]) cmocean (“平衡”次要情节(1、2、2)imagescn(经度、纬度、趋势(sst 12“omitnan”)cb = colorbar (“位置”,“southoutside”);包含(cb、“海温趋势\ circC /年”)标题“与omitnan趋势”caxis ([-0.04 - 0.04]) cmocean (“平衡”)

在上图中,注意区别在哈德逊湾,加拿大。

现在消除趋势相同的方式工作。我们将去趋势每个数据集,然后情节去趋势的趋势数据集正如上图:

sst_dt = detrend3 (sst);sst_dt_o = detrend3 (sst,“omitnan”);图次要情节(1、2、1)imagescn(经度、纬度、趋势(sst_dt 12)) cb = colorbar (“位置”,“southoutside”);包含(cb、“海温趋势\ circC /年”)caxis ([-0.000000000000001 - 0.000000000000001]) cmocean (“平衡”)标题“去趋势趋势没有omitnan”次要情节(1、2、2)imagescn(经度、纬度、趋势(sst_dt_o 12“omitnan”)cb = colorbar (“位置”,“southoutside”);包含(cb、“海温趋势\ circC /年”)caxis ([-0.000000000000001 - 0.000000000000001]) cmocean (“平衡”)标题“去趋势趋势与omitnan”

现在,剩下的只有“趋势”的去趋势数据集数值噪声(注意颜色的x10 ^ -15限制规模)。

作者信息

这个函数的一部分气候数据为Matlab工具箱。的功能和支持文档是乍得a·格林写的金宝app。