raster und ggplot map stehen nicht ganz in R

8

Ich versuche ein räumliches Raster mit ggplot2 zu zeichnen.

%Vor%

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.

%Vor%

Verwenden Sie jetzt ggplot2 , um eine Karte zu erstellen und über das Raster zu legen.

%Vor%

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?

    
colin 18.03.2016, 19:15
quelle

2 Antworten

4

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%

alles aufgereiht!

    
colin 19.03.2016, 14:24
quelle
2

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 :

%Vor%

und dann fortfahren. Dies ist eine allgemeinere Lösung, da die Rasterdaten für andere Zwecke als ggplotting korrekt verwendet werden können.

    
RobertH 20.03.2016 04:59
quelle

Tags und Links