【问题标题】:st_distance -How to visualise the distance between different variables in a large spatial data setst_distance - 如何可视化大型空间数据集中不同变量之间的距离
【发布时间】:2021-10-26 17:29:01
【问题描述】:

我对 R 中的空间分析非常陌生,一直在尽可能多地学习,但遇到了障碍。

目标:

  1. 在空间上可视化 15000 个站点(横跨英格兰)数据集 - 完成
  2. 测量数据集中不同变量之间的距离 [站点 A、站点 B、站点 C] - 使用 st_distance 完成
  3. 在空间上可视化站点之间的距离 - 迷路了?

我的数据按列排列:

NGR_10_FIG |类型 |代码 |网格 | X |是 |纬度 |长

我应该使用不同的方法来可视化距离吗? 我是不是想把事情复杂化,我应该做不同的事情吗?

谢谢。欢迎任何cmets。

【问题讨论】:

  • 我会在英格兰铺设一个网格,并计算每个网格单元的站点。进行站点到站点的距离将意味着 15000^2 距离对;这是很多......
  • 是的,我认为试图将 15000^2 值 空间 可视化过于复杂(而且非常困难)。例如,根据您的任务,您可以在直方图上可视化这些值,这将向您显示站点之间最常见的距离。如果您不熟悉 R 中的空间数据,请查看本书geocompr.robinlovelace.net
  • 下面的例子很合理,但你没问题,我试图查看我的问题的错误分析。

标签: r geospatial distance sf


【解决方案1】:

以下代码可用于可视化nc 数据中的第一个多边形(因为我没有您提到的数据)与nc 中的所有其他多边形之间的距离。

# packages
suppressPackageStartupMessages({
  library(sf)
  library(tmap)
})

# data
nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)

# compute distances from first region
nc$dists <- st_distance(nc, nc[1, ])

# plot
tm_shape(nc) + 
  tm_polygons(col = "dists") + 
tm_shape(nc[1, ]) + 
  tm_polygons(col = "grey85", lwd = 1.75)

reprex package (v2.0.1) 于 2021 年 10 月 27 日创建

这很简单,但可能已经足够好了。相同的代码也适用于更大的区域(前提是您一次只考虑一个多边形):

# packages
library(sf)
#> Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1

# data
bounding_box <- st_sfc(st_polygon(list(rbind(c(0, 0), c(1, 0), c(1, 1), c(0, 1), c(0, 0)))))
regions <- st_make_grid(bounding_box, n = c(100, 100))
length(regions)
#> [1] 10000

# compute distances from region 5250 (which is more or less in the middle)
dists <- st_distance(regions, regions[5250])

# plot
cols <- terrain.colors(15)[cut(dists, 15)]
par(mar = rep(0, 4))
plot(regions, col = cols)

reprex package (v2.0.1) 于 2021 年 10 月 27 日创建

我不知道如何同时可视化所有距离。

【讨论】:

  • 太棒了,谢谢,最后这很有用。
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 2018-09-01
相关资源
最近更新 更多