从 XY 数据集创建空间点

在地理数据方面,R 表明它是数据处理,分析和可视化的强大工具。

通常,空间数据可作为表格形式的 XY 坐标数据集。此示例将说明如何从 XY 数据集创建空间数据集。

rgdalsp 提供强大的功能。R 中的空间数据可以存储为 Spatial*DataFrame(其中*可以是 PointsLinesPolygons)。

此示例使用可在 OpenGeocode 下载的数据

首先,必须将工作目录设置为下载的 CSV 数据集的文件夹。此外,必须加载 rgdal 包。

setwd("D:/GeocodeExample/")
library(rgdal)

之后,存储城市及其地理坐标的 CSV 文件将作为 data.frame 加载到 R 中

xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)

通常,了解数据及其结构(例如列名,数据类型等)非常有用。

head(xy)
str(xy)

这表明纬度和经度列被解释为字符值,因为它们保存类似“-33.532”的条目。然而,后来使用的创建空间数据集的函数 SpatialPointsDataFrame() 要求坐标值为数据类型 numeric。因此必须转换两列。

xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)

很少有值无法转换为数字数据,因此创建了 NA 值。他们必须被删除。

xy <- xy[!is.na(xy$longitude),]

最后,XY 数据集可以转换为空间数据集。这需要坐标和坐标存储的协调参考系统(CRS)的规范。

xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)

基本绘图功能可以很容易地用于潜行峰值产生的空间点。

plot(xySPoints, pch = ".")

StackOverflow 文档