为什么网络上有大尺寸的点模式 - 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个点。
我的问题是
- 我不明白怎么会是1000万积分。我只是想
在整个网络中创建 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 章。
我正在尝试从 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个点。
我的问题是
- 我不明白怎么会是1000万积分。我只是想 在整个网络中创建 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 章。