reshapetimeseries文档

reshapetimeseries功能重塑一个向量的timeseries数据网格上的x年,占混乱与飞跃天或unevenly-spaced相关数据。

回到气候数据工具的内容

内容

语法

[xg,年]= reshapetimeseries (t, x) [xg,年]= reshapetimeseries (t, x,“本”,nbin) [xg,年]= reshapetimeseries (t, x,“本”,“日期”)[xg,年]= reshapetimeseries (t, x,“本”,“月”)[xg,年]= reshapetimeseries (t, x,“函数”,@func) [xg,年]= reshapetimeseries (t, x, yrlim, yrlim) [xg,年]= reshapetimeseries (t, x, pivotdate,(我的天))

描述

[xg,年]= reshapetimeseries (t, x)timeseries转型过程中xgydF4y2Ba定义的时间t到一个date-of-year网格。如果原始timeseries高于日常决议,值平均为每个日期;日期没有包括原timeseries数据,使用nan。生成的网格xg将365 x n网格,其中n是独特的数量由原来的timeseries年跨越;是一个向量持有这些值。

[xg,年]= reshapetimeseries (t, x,“本”,nbin)重塑timeseries使用nbin即使时间每年垃圾箱。每一本将持有价值365 / nbin天的数据平年和闰年价值366 / nbin天的数据。

[xg,年]= reshapetimeseries (t, x,“本”,“日期”)[xg,年]= reshapetimeseries (t, x,“本”,“月”)这两个“本”属性的特殊选项允许垃圾箱结合日历的日期,而不是每年均匀划分。“日期”选项(默认选项时没有指定“本”值)箱数据从2月28 - 29日在一起,导致每年365箱结合日历日期,即使在闰年。“月”箱数据日历月,导致每年12箱。

[xg,年]= reshapetimeseries (t, x,“函数”,@func)应用函数处理@func数据在一个垃圾箱。@func应该接受一个向量的值,并返回一个标量。默认的是平均数据(例如@nanmean)。

[xg,年]= reshapetimeseries (t, x, yrlim, yrlim)返回一个重塑网格生成的数据限制在1 x 2向量yrlim。这可以用来创建一个输出数据集,或多或少年比输入。

[xg,年]= reshapetimeseries (t, x, pivotdate,(我的天))设置数据集的主日期从一年到下一个包裹。在默认情况下这是[1],这表明每个输出的新列xg在1月1日开始相应的年向量

[xg,年,tmid] =…返回额外的输出,tmid日期时间对应的行xg。在这个向量将第一个non-leap年输入数据集;每年的这个选择相对随意。这个输出主要是为了实现策划目的,具体可以由用户根据需要进行调整。

例子

当处理timeseries数据时,一个经常要分析或情节的事情。例如,让我们看一下海冰范围的例子:

负载seaice_extent;情节(t, extent_N);

我们可以使用机灵把这个数据day-of-year轴而不是日期时间:

班;机灵的阴谋((t) extent_N);

但是啊,包装从一年到下一个阻止任何快速和简单的策划。和我们可以计算统计数据跨年使用splitapplyaccumarray:

[g, tdoy] = findgroups(地板机灵((t)));iceavg = splitapply (@nanmean, extent_N, g);持有;情节(tdoy iceavg,“线宽”2);

但语法变得很笨拙的,当你想做更深入的分析。这两个任务将会简单得多,如果我们可以重塑数据矩阵。这个问题,当然,那些讨厌的跳跃的日子,总是导致不均匀的点在不同年,抛弃试图重塑。的reshapetimeseries函数清理混乱:

[冰,年,tmid] = reshapetimeseries (t, extent_N);班;情节(tmid冰,“b”)举行

默认情况下,它使用日期垃圾箱,确保保持日程表日期一致从一年到下一个,和平均在闰年2月28 - 29日数据。月度装箱也可以通过设置输入适当的“本”。(注意,这个数据集开始的第一年10月中旬,导致每月平均outlier-like点)。

[icem,年,tmidm] = reshapetimeseries (t extent_N“本”,“月”);情节(tmidm icem,“r”)

而1月1通常是一个好地方同比包装,有时你的数据集可能要求一个不同的位置。例如,我们可以把包装timeries低点附近,在9月中旬。在这个例子中,我们选择52个等间隔每年垃圾箱,这是大约每周平均:

[冰,年,tmid] = reshapetimeseries (t extent_N“pivotdate”15 [9],“本”52);cla情节(tmid冰,“b”)举行

有一件事需要注意的是,它将使用此函数添加一个南任何箱子,没有数据的占位符中存在原始timeseries。大多数时候这将timeseries对应较大的差距,例如一开始或结束如果timeseries没有开始和结束在同一日历天。然而,这也可能发生,如果你选择一个装箱的时间间隔在一个更好的规模比你的原始数据。例如,早在这个数据集,数据采样每2天。如果我们试着面元每天,我们最终得到的稀疏数据,交错每隔一年:

isearly = t < datetime(1988年,1,1);[冰,年,tmid] = reshapetimeseries (t (isearly) extent_N (isearly));机灵tlbl = (tmid“decimalyear”)年(tmid (1));图;显示亮度图像(年,tlbl,冰);阴影;cmocean (“冰”);包含(“年”);ylabel (“今年分数”);

在这种情况下,我们要确保我们选择一个更大的间隔时做任何真正的分析:

[冰,年,tmid] = reshapetimeseries (t (isearly) extent_N (isearly),“本”、地板(365/2));图;显示亮度图像(年,tlbl,冰);阴影;cmocean (“冰”);包含(“年”);ylabel (“今年分数”);

作者信息

reshapetimeseries函数及其支持documenatio金宝appn写的凯利a卡尼华盛顿大学的。的reshapetimeseries函数是气候数据为Matlab工具箱的一部分。