Digital Geography

25. Juni 2012

Shapefiles mit R: lesen und bearbeiten

Bei der Arbeit mit Shapefiles nutzte ich normalerweise Excel oder Open Office um meine csv-Datei zu erstellen und anschließend mit einem bestehenden Shapfile zu verknüpfen. Aber zum Glück gibt es die packages sp und rgdal für R: Hiermit kann man Shapefiles in R einlesen und bearbeiten:




install.packages("sp","rgdal")
library("sp","rgdal")

Ein schönes Beispiel könnten Länderdaten sein. Einen kleinen Datensatz findet man hier:
thematicmapping.org.
Nachdem das Archiv entpackt wurde, kann man es in R importieren:

ogrListLayers("TM_WORLD_BORDERS_SIMPL-0.3.shp") #will show you available layers for the above dataset
shape=readOGR("TM_WORLD_BORDERS_SIMPL-0.3.shp", layer="TM_WORLD_BORDERS_SIMPL-0.3") #will load the shapefile to your dataset.
plot(shape) #to get an overview

und natürlich auswerten:

shape$AREA[shape$NAME=="Germany"]

Das erstellen neuer Felder ist ebenso recht einfach zu bewerkstelligen und zusammen mit dem „match“ Befehl lassen sich spezielle Polygone in ihrem Datensatz bearbeiten:

shape$members = 1:nrow(shape) #adds the attribute members
shape$members[match(c("Austria","Germany","China","United Kingdom", "Switzerland", "Canada", "Ireland", "India","Poland","South Africa", "France","New Zealand", "Italy"), shape$NAME)]=c(3,6,1,2,24,1,2,2,1,1,2,1,2) #will make new values at given countries
plot(shape, col=gray(1-shape$members/max(shape$members))) #adjust the colorramp
writeOGR(shape, "/home/rikl/wd_r/", "Rmetric_participants", driver="ESRI Shapefile") #save it on your drive.

Viel Spaß in R!

Teilnehmer der Rmetrics Konferenz in Meielisalp 2012