Ich versuche ein räumliches Raster mit ggplot2
zu zeichnen.
Laden Sie Daten herunter, laden Sie sie als Raster mit dem Paket raster
. Weitere Details zu diesem Datenprodukt finden Sie hier . Konvertiere dann das Raster in Punkte, damit es gut mit ggplot
funktioniert.
Verwenden Sie jetzt ggplot2
, um eine Karte zu erstellen und über das Raster zu legen.
Die Ausgabe sieht folgendermaßen aus:
Wie Sie sehen können, stehen die Dinge fast aneinander, aber nicht ganz. alles ist leicht nach rechts verschoben. Was kann das verursachen und wie kann ich es beheben?
Nach der ORNL-Dokumentation ist die Grenze des Ndep-Plots tatsächlich mit den unteren linken Ecken des Rasters ausgerichtet. Um x- und y-Positionen mit den mittleren Punkten auszurichten (Standard in ggplot
), müssen Sie die x-Positionen um ein Gitterintervall verschieben. Da das Gitterintervall in diesem Fall 0,5 Grad beträgt, subtrahierte ich einen halben Grad von meinem x-Koordinatenvektor.
Die Lösung für dieses Problem wurde von @ 42 in den Kommentaren vorgeschlagen.
Laden Sie die Daten wie zuvor herunter:
%Vor%Und subtrahieren Sie unbedingt einen halben Grad vom x-Vektor der Koordinaten.
%Vor%Nun, mach weiter und plotte:
%Vor%Basierend auf dem, was 42 und colin sagen, liefert das ORNL eine Datei, die falsch ist. Und Sie sollten ihnen wahrscheinlich davon erzählen. Die Datei hat:
%Vor%Wo es anscheinend sein sollte:
%Vor%Wenn ja, bedeutet dies, dass die Datei derzeit die x-Koordinaten als Zellkanten und die y-Koordinaten als Zellzentren angibt. Das ist in keinster Weise gut. Es gibt Formate, in denen Sie sowohl x als auch y Zellkanten anstelle von Zellzentren darstellen können, aber nicht eine der beiden; und so oder so, im verwendeten Dateiformat (arc-ascii) ist dies nicht erlaubt.
Eine gute Möglichkeit, um diesen Fehler zu korrigieren, ist die Verwendung von shift
nach der Erstellung von RasterLayer
:
und dann fortfahren. Dies ist eine allgemeinere Lösung, da die Rasterdaten für andere Zwecke als ggplotting korrekt verwendet werden können.