我实际上是在尝试检测由许多较小的子区域组成的非常大的区域的时间序列的特征(在我的例子中是像素)。我对此并不了解,所以我能想出的唯一方法是整个地区的平均时间序列,虽然我知道这肯定会通过平均隐藏许多功能。
我只是想知道是否有任何广泛使用的技术能够检测出一系列时间序列的共同特征?像模式识别或时间序列分类?
非常感谢任何想法/建议!
谢谢!
一些额外的解释:我正在处理几年的遥感图像,时间步长为7天。因此,对于每个像素,存在关联的时间序列,在不同日期从该像素提取值。因此,如果我定义由许多像素组成的区域,是否有一种方法来检测或提取表征全部或大部分像素的一些共同特征。这个区域内的像素时间序列?比如时间序列的形状,或者值的明显增加的日期?
答案 0 :(得分:0)
您可以计算像素的相关矩阵。这只是:
corr = np.zeros((npix,npix))
for i in range(npix):
for j in range(npix):
corr(i,j) = sum(data(i,:)*data(j,:))/sqrt(sum(data(i,:)**2)*sum(data(j,:)**2))
如果您想了解更多信息,可以将其计算为时间的函数,即将时间序列分成块(比如分钟)并计算每个时间序列的相关性。然后你可以看到相关性如何随时间变化。
如果相关性发生很大变化,您可能对像素的跨功率谱更感兴趣。这被定义为
cpow(i,j,:) = (fft(data(i,:))*conj(fft(data(j,:)))
这将告诉您在不同时间尺度上,像素i
和j
往往会有多少变化。例如,它们可以在一秒钟(1赫兹)的时间尺度内一致地移动,但也可以在例如10秒的时间尺度上发生变化,这些变化彼此不相关。
这完全取决于你需要什么。