0

我想得到的是矢量文件中这些点对应的像素数据。并将 8 窗口中像素周围的最大值作为新值添加到坐标中。我是 IDL 的新手,我该如何解决问题?先感谢您!

4

2 回答 2

0

我不太确定您指的是什么像素数据,所以我假设它是另一个数组,您可以使用 shapefile 坐标对其进行索引。也许这篇文章将帮助您提取多边形的顶点(看起来您将不得不为他使用的例程支付一些现金)。如果您想获得每个像素周围的最大值,在您获得每个xy向量以索引到数据(pixel如下)之后,您将不得不做一些维度杂耍。像下面这样的东西可能会起作用,但我还没有测试过(你可能不得不使用计算最大值的维度):

n = n_elements(x)
; pixel = findgen(np, np)

; Make a copy of "pixel" so we can eliminate the center element
; from consideration of the maximum
new_pixel = pixel
new_pixel[x, y] = new_pixel[x + 1, y + 1]

x = rebin(reform(x, n, 1), n, 9)
y = rebin(reform(y, n, 1), n, 9)

x += rebin(reform([-1, 0, 1], 1, 3), n, 9)
y += rebin(reform(rebin(reform([-1, 0, 1], 3, 1), 3, 3), 1, 9), n, 9)

; Get surrounding elements
new_pixel = new_pixel[x, y]
; Get maximum
max_pixel = max(new_pixel, dimension=2)
于 2013-12-18T15:34:44.270 回答
0

我强烈建议在将矩阵索引导入 IDL 之前使用 QGIS 进行 shapefile 操作。然后你可以执行一个简单的计算:

输出 = 输入 [where(index eq shp_value)]

为了对齐像素,我会在 QGIS 中创建索引栅格时将 shapefile 值写入现有栅格。我相信你想要光栅化工具。有关更多信息,请阅读我关于区域统计的回复。

干杯,

亚当

于 2015-08-19T22:18:36.323 回答