从 XY 数据集创建空间点
在地理数据方面,R 表明它是数据处理,分析和可视化的强大工具。
通常,空间数据可作为表格形式的 XY 坐标数据集。此示例将说明如何从 XY 数据集创建空间数据集。
包 rgdal
和 sp
提供强大的功能。R 中的空间数据可以存储为 Spatial*DataFrame
(其中*
可以是 Points
,Lines
或 Polygons
)。
此示例使用可在 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 = ".")