0

我正在尝试使用 R 进行一些 GIS 工作。具体来说,我有一个空间点数据框(称为“点”)和一个空间线数据框(称为“线”)。我想知道离每个点最近的线。我这样做:

# make a new field to hold the line ID
points@data$nearest_line <- as.character('')

# Loop through data. For each point, get ID of nearest line and store it
for (i in 1:nrow(points)){
  points@data[i,"nearest_line"] <-
    lines[which.min(gDistance(points[i,], lines, byid= TRUE)),]@data$line_id
}

这工作正常。我的问题是我的数据大小。我有 450 万个点和大约 100,000 行。到目前为止,它已经运行了大约一天,并且只完成了 450 万个点中的 200,000 个(尽管计算机功能相当强大)。

我可以做些什么来加快速度吗?例如,如果我在 PostGIS 中这样做,我会添加一个空间索引,但这似乎不是 R 中的一个选项。

或者,也许我正在接近这个完全错误的?

4

0 回答 0