Wie kartiere ich (Fundstellen, Gräber usw.)?
Ganz einfach. Das wichtigste sind konsistente Koordinaten Deiner Fundpunkte (d.h. Fundstellen, Siedlungen, Gräber o.ä.). Konsistent soll heißen, daß es zunächst keine Rolle spielt, ob die Koordinaten einer gängigen Kartenprojektion entsprechen (z.B. geographische Länge und Breite), wichtig ist allein, daß für alle Punkte das gleiche System verwendet wurde. Möglich sind z.B. Hoch- und Rechtswerte in Zentimetern, etwa einem Meßtischblatt oder einer Publikation entnommen.
Hinweise zur Koordinatenaufnahme findest Du hier
Der Darstellung liegt die Publikation Franzhausen I (Neugebauer & Neugebauer 1997) zugrunde. Sie wurde mit folgendem Code erzeugt:
daten <- read.table(file="datei.txt",header=TRUE,dec=",",sep="\t")
plot(x=daten$XCoord,y=daten$YCoord,asp=1)
Die Daten werden aus “datei.txt” geladen, die wie folgt aufgebaut ist:
Bestattungsweise Kopf XCoord YCoord Gr0001 einzel unbest 10,85490036 7,73029995 Gr0002 einzel unbest 10,48490047 8,270000458 Gr0003 ? N 9,551199913 8,235799789 ...
Es genügt also die einfache, universelle plot()
-Anweisung, der mittels x=daten$XCoord
usw. erklärt wird, in welcher Spalte sich die Koordinaten befinden. Wichtig ist v.a. beim Kartieren der Parameter asp=1
, der das Verhältnis (=”aspect ratio”) von X- und Y-Achse normalisiert, andernfalls würde die Darstellung womöglich verzerrt, da R meistens versucht, Diagrammen eine kompakte-quadratische Form zu geben.
Mit Kartengrundlage
Die Darstellung geographisch größerer Räume ruft förmlich nach mehr Informationen auf der Karte, an denen man sich orientieren kann. Neben den Punkten sollen also auch noch Landmarken, Flüsse, Küstenlinien o.ä. dargestellt werden – und das geht mit R recht einfach.
Dazu sind zwei Pakete erforderlich, die die Küstenlinien der ganzen Welt und ein – leider nur grobes – Layer mit Binnengewässern enthalten:
library("maps")
library("mapdata")
Dann muß nur noch der passende Kartenausschnitt gewählt werden:
kartrandX<-c(min(x$R.Wert)-5,max(x$R.Wert)+5)
kartrandY<-c(min(x$H.Wert)-5,max(x$H.Wert)+10)
In diesem Falle also werden die am weitesten außen liegenden Punkte ermittelt (min, max
) und der Kartenrand um fünf bzw. zehn Einheiten über diese Extremwerte hinaus verschoben. Andernfalls lägen die am weitesten im Norden, Osten usw. liegenden Punkte genau auf dem Kartenrand – und das sähe weniger schick aus.
Nun also die Karte:
map("worldHires", xlim = kartrandX, ylim = kartrandY,interior=F)
Die Parameter xlim
und ylim
erhalten die eben berechneten Randwerte, mit interior
können Ländergrenzen an und ausgeschaltet werden (TRUE, FALSE).
Falls gewünscht, können auf die gleiche Weise noch Flüsse hinzugefügt werden:
map("rivers", add=T,col="blue",xlim = kartrandX, ylim = kartrandY)
Aber Vorsicht! Die Daten sind sehr grob und schon in Osteuropa werden statt reißender Ströme z.T. nur unterbrochene Rinnsale dargestellt.
Weiterhin sollte auch ein Auge auf die Küstenlinien geworfen werden, da bei bestimmten Kartenausschnitten auch hier Fehler auftreten können. Offensichtlich ist der Algorithmus noch nicht optimiert… aber hier hilft oft ein leichtes Verschieben der Kartenränder.
Abschließend kann noch ein Rahmen hinzugefügt werden:
box()