为什么网络上的大型点模式 - spatstat

时间:2016-10-27 13:15:36

标签: spatstat

我正在尝试学习在Baddeley等人的书中使用sp中的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
  3. 我做错了吗?任何建议都会很棒。感谢

2 个答案:

答案 0 :(得分:0)

我无法访问您的数据,因此我将使用内置数据集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),然后获得笛卡尔坐标和网络中的本地坐标。

答案 1 :(得分:0)

Q1:在泊松过程中,强度λ是每单位长度的预期点数。如果网络的总长度为L,那么强度为λ的泊松过程将包含大约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章。