st_distance - 如何可视化大型空间数据集中不同变量之间的距离
st_distance -How to visualise the distance between different variables in a large spatial data set
我对 R 中的空间分析还很陌生,一直在尽可能多地学习,但遇到了障碍。
目标:
- 在空间上可视化 15000 个站点(整个英格兰)数据集 - 完成
- 测量数据集中不同变量之间的距离 [站点 A、站点 B、站点 C] - 使用 st_distance
完成
- 要在空间上可视化站点之间的距离 - 丢失?
我的数据按列排列:
NGR_10_FIG | TYPE | CODE | Grid | X | Y | Lat | Long
我应该使用不同的方法来可视化距离吗?
我是不是想把它复杂化,我应该换一种方式吗?
谢谢。欢迎任何评论。
以下代码可用于可视化 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 创建
我不知道如何同时可视化所有距离。
我对 R 中的空间分析还很陌生,一直在尽可能多地学习,但遇到了障碍。
目标:
- 在空间上可视化 15000 个站点(整个英格兰)数据集 - 完成
- 测量数据集中不同变量之间的距离 [站点 A、站点 B、站点 C] - 使用 st_distance 完成
- 要在空间上可视化站点之间的距离 - 丢失?
我的数据按列排列:
NGR_10_FIG | TYPE | CODE | Grid | X | Y | Lat | Long
我应该使用不同的方法来可视化距离吗? 我是不是想把它复杂化,我应该换一种方式吗?
谢谢。欢迎任何评论。
以下代码可用于可视化 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 创建我不知道如何同时可视化所有距离。