R Language
пространственный анализ
Поиск…
Создание пространственных точек из набора данных XY
Когда дело доходит до географических данных, R показывает, что это мощный инструмент для обработки, анализа и визуализации данных.
Часто пространственные данные доступны как координатные данные XY, установленные в табличной форме. В этом примере будет показано, как создать набор пространственных данных из набора данных XY.
Пакеты rgdal
и sp
предоставляют мощные функции. Пространственные данные в R могут храниться как Spatial*DataFrame
(где *
могут быть Points
, Lines
или Polygons
).
В этом примере используются данные, которые можно загрузить в OpenGeocode .
Сначала рабочий каталог должен быть установлен в папку загруженного набора данных CSV. Кроме того, необходимо rgdal
пакет rgdal
.
setwd("D:/GeocodeExample/")
library(rgdal)
Впоследствии файл CSV, хранящий города и их географические координаты, загружается в R как data.frame
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 = ".")
Импорт файла формы (.shp)
rgdal
Файлы формы ESRI можно легко импортировать в R, используя функцию readOGR()
из пакета rgdal
.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
Важно знать, что dsn
не должен заканчиваться на /
и layer
не позволяет завершить файл (например, .shp
)
растр
Другой возможный способ импорта шейп-файлов - через библиотеку raster
и функцию shapefile
:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Обратите внимание, что определение пути отличается от оператора импорта rgdal.
TMAP
Пакет tmap
обеспечивает хорошую оболочку для функции rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")