我正在尝试学习在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分。
我的问题是
我做错了吗?任何建议都会很棒。感谢
答案 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章。