R - spatstat:计算新点的密度
R - spatstat: Calculate density for a new point
是否可以使用 spatstat
估计给定 ppp
对象的强度函数并考虑新点计算其值?例如,我可以在 new_point
:
评估 D
# packages
library(spatstat)
# define a random point within Window(swedishpines)
new_point <- ppp(x = 45, y = 45, window = Window(swedishpines))
# estimate density
(D <- density(swedishpines))
#> real-valued pixel image
#> 128 x 128 pixel array (ny, nx)
#> enclosing rectangle: [0, 96] x [0, 100] units (one unit = 0.1 metres)
由 reprex package (v1.0.0)
于 2021-03-30 创建
我在想也许我可以 superimpose()
两个 ppp
对象(即 swedishpines
和 new_point
)然后 运行 density
设置 at = "points"
和 weights = c(rep(1, points(swedishpines)), 0)
但我不确定这是否是建议的方法(我不确定在估计过程中附加点是否被忽略)。
我知道这听起来像是一个微不足道的问题,但我阅读了一些文档但没有找到答案或解决方案。
有两种方法可以做到这一点。
首先是简单地获取强度的像素图像,并使用[
提取所需位置的像素值:
D <- density(swedishpines)
v <- D[new_points]
查看 density.ppp
和 [.im
的帮助。
另一种方法是使用densityfun
:
f <- densityfun(swedishpines)
v <- f(new_points)
查看 densityfun.ppp
的帮助
第一种方式更高效,第二种方式更准确。
技术问题:如果某些 new_points
可能位于 swedishpines
的 window 之外,则这些点的值为 (数学上)未定义。上面描述的两种方法都会简单地忽略这些点,并且生成的向量 v
将比新点的数量短。如果您需要处理这种连续性,最简单的方法是使用 D[new_points, drop=FALSE]
which returns NA
values for such locations.
是否可以使用 spatstat
估计给定 ppp
对象的强度函数并考虑新点计算其值?例如,我可以在 new_point
:
D
# packages
library(spatstat)
# define a random point within Window(swedishpines)
new_point <- ppp(x = 45, y = 45, window = Window(swedishpines))
# estimate density
(D <- density(swedishpines))
#> real-valued pixel image
#> 128 x 128 pixel array (ny, nx)
#> enclosing rectangle: [0, 96] x [0, 100] units (one unit = 0.1 metres)
由 reprex package (v1.0.0)
于 2021-03-30 创建我在想也许我可以 superimpose()
两个 ppp
对象(即 swedishpines
和 new_point
)然后 运行 density
设置 at = "points"
和 weights = c(rep(1, points(swedishpines)), 0)
但我不确定这是否是建议的方法(我不确定在估计过程中附加点是否被忽略)。
我知道这听起来像是一个微不足道的问题,但我阅读了一些文档但没有找到答案或解决方案。
有两种方法可以做到这一点。
首先是简单地获取强度的像素图像,并使用[
提取所需位置的像素值:
D <- density(swedishpines)
v <- D[new_points]
查看 density.ppp
和 [.im
的帮助。
另一种方法是使用densityfun
:
f <- densityfun(swedishpines)
v <- f(new_points)
查看 densityfun.ppp
第一种方式更高效,第二种方式更准确。
技术问题:如果某些 new_points
可能位于 swedishpines
的 window 之外,则这些点的值为 (数学上)未定义。上面描述的两种方法都会简单地忽略这些点,并且生成的向量 v
将比新点的数量短。如果您需要处理这种连续性,最简单的方法是使用 D[new_points, drop=FALSE]
which returns NA
values for such locations.