R / GIS: Наложить данные GADM на данные из других источников? - PullRequest
1 голос
/ 09 февраля 2012

У меня есть данные административных границ из базы данных Global Administrative Areas .Построение подразделений с этими данными очень просто.Например, если я хочу перенести геокодированные данные, содержащиеся в файле mydata, на округа во Флориде, я загружаю «уровень 2» для США, а затем использую этот код:

load("/home/anindya/Desktop/DELETE/USA_adm2.RData")
temp = as.data.frame(gadm) *Code for eyeballing structure of data
florida = gadm[344:410,]
plot(florida); points(mydata$longitude, mydata$latitude)

Но какВы перекрываете другую информацию по этому вопросу, например, по топографии и водным путям?Меня особенно интересуют данные из Natural Earth и Global Lakes and Wetlands Database .

ПОСЛЕДУЮЩАЯ РЕДАКТИРОВКА: Большое спасибо Павлу за решение проблемы,Я поместил вариант этого вопроса на здесь, на gis.stackexchange , где Р.К. дал отличный ответ.Читайте также об этом.

1 Ответ

3 голосов
/ 10 февраля 2012

Если я вас правильно понимаю, вы спрашиваете, как наложить разные географические слои, как если бы вы использовали ГИС с графическим интерфейсом.

Это просто, если данные находятся в объекте Spatial* (например, SpatialPoints, SpatialLines, SpatialPolygons и т. Д. Из пакета sp) или в виде объекта Raster* из пакета raster. Методы plot() в обоих этих пакетах могут обрабатывать это наложение, если задан параметр add=TRUE.

Для переноса ваших векторных географических данных в объекты Spatial* вы можете использовать функции из пакета maptools (например, readShapePoly() читает шейп-файлы полигонов ESRI). Растры из различных спецификаций файлов могут быть загружены с помощью raster(), и дополнительные форматы доступны, если установлен пакет rgdal.

Вот пример наложения географических типов данных с использованием сфабрикованных географических данных. Сначала создайте пример данных в сетке UTM:

library(sp)
library(raster)

## Create a RasterLayer object and fill with random values
baseRaster <- raster(nrow=100, ncol=100, 
    xmn=0, xmx=100, ymn=0, ymx=100,
    crs= "+proj=utm")
baseRaster[] <- runif(ncell(baseRaster))

## Create a second raster to superimpose
## It should contain NA values where it is transparent
supRaster <- baseRaster
supRaster[] <- NA
supRaster[cellFromCol(supRaster, 48:52)] <- 1


## Create SpatialPoints object to superimpose on these
loc <- SpatialPoints(cbind(seq(10, 90, by=10), seq(10, 90, by=10)))

Теперь сделайте графики:

## Plot base raster
plot(baseRaster)

## Superimpose second raster in a different colour
## Turn off legend
plot(supRaster, add=TRUE, col="blue", legend=FALSE)

## Superimpose points and make them big and colourful
plot(loc, add=TRUE, pch=20, cex=3, col="red")

Вот результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...