绘制图像切片的时间序列

时间:2015-03-14 22:42:15

标签: plot time-series idl-programming-language

我有一段时间内拍摄的2D灰度图像(50 x 50像素)的数据集。作为分析这些图像的一种方法,我想拍摄切片 - 每个图像的中心像素列 - 并将这些作为时间序列“绘制”。因此,我最终得到了x轴上的时间,以及与其垂直位于其上方的时间对应的像素列。 (我很欣赏这可能不完全清楚,所以如果有任何需要澄清,请告诉我。)

我不确定如何在IDL中实现这一目标。我可以轻松地从每个图像中挑选出中心切片,然后将它们组合成一个新的阵列,然后用TVSCL显示。这是我所追求的事情,但由于数据不是以规则的时间间隔拍摄的,因此将它们全部聚合成一个新图像并不能正确表示数据。我真的需要一种将数据显示为缩放时间序列的方法。

有人可以建议在IDL中这样做吗? 如果您需要更多详细信息,请告诉我们。

由于

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找类似于Hovmoller图(http://en.wikipedia.org/wiki/Hovm%C3%B6ller_diagram)的东西。

您最好的选择可能是使用等高线图,您可以在其中指定X和Y位置。类似的东西:

c = CONTOUR(数据,时间,位置)

其中data是您的2D切片数组,time是具有时间值的向量(可以是不规则间隔的),而ylocation是具有y位置的另一个向量。在CONTOUR上有很多属性来控制填充/未填充,轮廓级别,标签等。

希望这有帮助! -Chris

答案 1 :(得分:0)

在不知道您的数据存储方式的情况下编写很难,但是假设您的图像类似于:

images = fltarr(xsize, ysize, ntimes)
times = fltarr(ntimes)

然后你可以在任意像素x,y处绘制值的时间序列:

plot, times, images[x, y, *]