【问题标题】:Plotting time series of image slices绘制图像切片的时间序列
【发布时间】:2015-03-14 22:42:14
【问题描述】:

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

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

任何人都可以建议在 IDL 中执行此操作的方法吗? 如果您需要更多详细信息,请告诉我。

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    c = CONTOUR(数据、时间、ylocation)

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

    希望这会有所帮助! -克里斯

    【讨论】:

      【解决方案2】:

      如果不知道您的数据是如何存储的,就很难编写,但是假设您的图像是这样的:

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

      然后您可以绘制任意像素 x、y 的值的时间序列:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2017-09-13
        • 2017-09-28
        • 2018-10-22
        相关资源
        最近更新 更多