如何处理大型linnet对象

时间:2017-08-03 15:48:26

标签: spatstat

我正在尝试使用整个城市网络进行特定的分析,我知道这个分析非常庞大。我也把它设置为稀疏网络。

library(maptools)
library(rgdal)
StreetsUTM=readShapeSpatial("cityIN_UTM")

#plot(StreetsUTM)
library(spatstat)
SS_StreetsUTM =as.psp(StreetsUTM)
SS_linnetUTM = as.linnet(SS_StreetsUTM, sparse=TRUE)

> SS_linnetUTM
Linear network with 321631 vertices and 341610 lines
Enclosing window: rectangle = [422130.9, 456359.7] x [4610458, 
4652536] units
> SS_linnetUTM$sparse
[1] TRUE

我有以下问题:

  1. 构建psp对象
  2. 需要15-20分钟
  3. 构建linnet对象
  4. 花了将近5个小时
  5. 每次我想分析点模式或信封时,R崩溃
  6. 我知道我应该尝试减少网络规模,但是:

    1. 我想知道是否有一种聪明的方法来克服这个问题。会重新调整帮助吗?
    2. 我怎样才能让它具有更强的处理能力?
    3. 我也很想知道spatstat是否可以与parallel package
    4. 一起使用
    5. 最后,spatstat的网络大小有哪些限制。
    6. R崩溃

      当我使用Spatstat书中的说明时,R崩溃了:

      1. KN <- linearK(spiders, correction="none");在我的网络(linnet)当然

      2. envelope(spiders, linearK, correction="none", nsim=39);在我的网络上

      3. 我不认为RAM是问题,我在SSD机器上有16GB RAM和2.5GhZ双核i5处理器。

        请有人指导我。

2 个答案:

答案 0 :(得分:0)

请详细说明您使用的命令。

您是否使用linnetpsp对象构建了as.linnet.psp对象(在这种情况下,必须猜测网络的连接性,这可能需要很长时间),或者您是否有关于传递给linnet()命令的网络连接的信息?

究竟是什么命令来分析点模式或信封&#34;导致崩溃,什么样的崩溃?

spatstat中的线性网络代码是仍处于开发阶段的研究代码。更快的K函数算法将很快发布。

答案 1 :(得分:0)

我只能通过Simplify Geometries工具中的Douglas-Peucker算法在QGIS中简化我的网络来解决这个问题。因此,它对shapefile中线性网络的几何形状略有不同。