为什么网络上有大尺寸的点模式 - spatstat

why large size of point pattern on network - spatstat

我正在尝试从 Baddeley 等人的书中学习在 R 中使用 spatstat 包。我已经将我的 shapefile 转换为一个 psp 对象( 这里它说丢弃了 6 列数据 )然后我使用 as.linnet 将其转换为适合 spatstat 的线性网络. (这里说网络未连接

然后我想使用 rpoislpp 在这个网络上创建一个点模式,我使用的泊松强度为 2。

> abc<-rpoislpp(2,final_roads)
> head(abc)
Point pattern on linear network
3 points
Linear network with 4296 vertices and 4475 lines
Enclosing window: rectangle = [30093.5, 278045.11] x [308520.5, 606556.7] units
> abc
Point pattern on linear network
10190733 points
Linear network with 4296 vertices and 4475 lines
Enclosing window: rectangle = [30093.5, 278045.11] x [308520.5, 606556.7] units

这创建了一个 1GB 的巨大文件。我不明白如何。我从书中的理解是泊松强度是每线性网络总长度的点数。我的网络大约有5000公里(一个省的路网),所以我只要求全网2个点。

我的问题是

  1. 我不明白怎么会是1000万积分。我只是想 在整个网络中创建 2 个点并绘制它们。
  2. 如何绘制这些点并得到它们的 x,y

我是不是做错了什么?任何建议都会很棒。谢谢

我无权访问您的数据,因此我将使用内置数据集 chicago 作为示例:

abc <- unmark(chicago)
plot(abc) # Plot the network and the points on the network
X <- as.ppp(abc) # Convert to planar point pattern without network
plot(X) # Plot the points in the plane
co <- coords(X) # Extract the Cartesian coordinates

这是您要找的吗?也可以直接使用coords(abc),得到网络中的直角坐标和局部坐标。

Q1: 在泊松过程中,强度 lambda 是预期的点数 每单位长度 。如果网络的总长度为 L,则强度为 lambda 的泊松过程将包含大约 L * lambda 个点。在您的示例中,打印输出表明坐标以米为单位,因此您有 L = 5 000 000 ,如果 lambda = 2,您将获得大约 1000 万个点。

要获得固定数量的随机点,请使用 runiflpp 而不是 rpoislpp。 所以 runiflpp(2, final_roads) 会在你的道路网络上放置 2 个随机点。

最佳做法:使用 unitname 指定长度单位,并考虑使用 rescale.

将坐标从米重新调整为公里

Q2:如果X是线性网络上的点模式,那么要绘制线上的点,只需使用plot(X)。要仅提取点位置,请使用 Y <- as.ppp(X),然后仅绘制点位置,plot(Y)。要提取 x,y 坐标,请使用 xy <- coords(Y)xy <- coords(X, local=FALSE)

有关详细信息,请参阅 the spatstat book 的第 17 章。