Поиск…


Создание пространственных точек из набора данных 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")


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow