Sto provando a tracciare un raster spaziale usando ggplot2
.mappa raster e ggplot che non si allinea in R
require(raster)
require(ggplot2)
dati download, carico come un raster usando il pacchetto raster
. Maggiori dettagli su questo prodotto di dati possono essere trovati here. Quindi converti il raster in punti in modo che giochi bene con ggplot
.
system('wget https://www.dropbox.com/s/7jsdqgc9wjcdznv/NADP_wet_deposition_nh4_0.5x0.5_grid_annual_R1.txt')
layer<- raster("path/to/raster/NADP_wet_deposition_nh4_0.5x0.5_grid_annual_R1.txt") #you need to specify your own path here, wherever the downloaded file is saved.
raster.points <- rasterToPoints(layer)
raster.points <- data.frame(raster.points)
colnames(raster.points) <-c('x','y','layer')
Ora usare ggplot2
per fare una mappa, e porre sopra il raster.
mp <- NULL
#grab US map and choose colors
map.US <- borders("usa", colour='white',fill='black', lwd=0.4)
mp <- ggplot(data=raster.points, aes(y=y, x=x))
mp <- mp + map.US
mp <- mp + geom_raster(aes(fill=layer))
mp <- mp + theme(axis.text.y=element_blank(),
axis.text.x=element_blank(),
axis.title.y=element_blank(),
axis.title.x=element_blank(),
axis.ticks=element_blank(),
panel.background = element_rect(fill='black'),
plot.background = element_rect(fill='black'),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank())
mp
L'output è simile al seguente:
Come si può vedere, le cose quasi line up, ma non del tutto. tutto è spostato leggermente a destra. Che cosa potrebbe causare questo e come posso risolverlo?
FYI, vedo lo stesso offset nella grafica di base se faccio 'library (mappe); Mappa ('usa'); trama (livello, aggiungi = VERO) '. – eipi10
Sembra che il confine sia allineato con gli angoli inferiori sinistro della griglia. Se si desidera ottenere le posizioni x e y del contorno del bordo allineate con i punti medi, spostare le posizioni x su un intervallo di griglia di mezza x intervallo e su un intervallo di griglia di mezza a y. –
In seguito a quanto detto da @ 42, i metadati del sito Web ORNL mostrano intervalli di estensione spaziale da -124,0 a -66,5 gradi lon e da 25,0 a 49,0 lat, mentre suppongo che l'impostazione predefinita per i raster ggplot2 sia quella di tracciare il relativo numero al suo punto medio. –