分析栅格图层的像素分布

问题描述 投票:0回答:1

我真的真的需要一些建议。我有一个包含许多像素的光栅。每个像素都有一个值。现在我想对这些像素进行空间分析。我想看看哪个区域的像素最多,而哪个区域的像素最少。听起来很简单,但事实并非如此。

我有一个想法用核密度来做到这一点,但它不适用于光栅层。它也不适用于 ppp,因为您无法将栅格转换为这种数据类型。我真的迷路了。我不知道什么可以起作用。因此,如果我能得到一些帮助,我将非常感激。

我的像素看起来像这样:

必须有一种方法来显示像素最多的区域等等。但我不知道该怎么做。

r raster kernel-density spatstat r-ppp
1个回答
0
投票

简短回答:将光栅对象转换为

im
包中
spatstat
类的像素图像。然后使用
Smooth.im
。示例:

library(spatstat)
Z <- as.im(my_raster_data)
S <- Smooth(Z)
plot(S)

长答案:您在非标准意义上使用术语“像素”。像素是构成图像的小方块。您的插图显示了一个像素图像,其中大多数像素的值为 0(以白色表示),但大量单个像素的值大于 0(范围从 0 到 0.3)。

如果我理解正确,您希望生成彩色图像或热图,在更多像素具有正值的地方具有更亮/更暖的颜色。

最简单的方法是对图像中的像素值使用高斯平滑。这将计算附近像素(包括零像素)值的空间变化平均值。为此,请将栅格转换为

im
包中
spatstat
类的像素图像

Z <- as.im(my_raster_object)

然后申请

Smooth.im

S <- Smooth(Z)
plot(S)

查看

Smooth.im
的帮助,了解控制平滑程度的选项。

如果您想忽略输入数据中的实际颜色(像素值),您可以在平滑之前将它们转换为二进制值:

B <- (Z > 0)
SB <- Smooth(B)
plot(SB)
© www.soinside.com 2019 - 2024. All rights reserved.