Tracciare una mappa del mondo con una griglia specificata con r
-
26-12-2019 - |
Domanda
Sto cercando di usare WRLD_SIMPL dal pacchetto MapTools per tracciare un pezzo di mappa del mondo con una griglia di longitudine / latitudine.
Ad esempio, ho un file netcdf con longitudine e latitudine, creo una matrice con tutti i punti che posso avere sulla griglia:
lat <- get.var.ncdf(nc,"lat")
long <- get.var.ncdf(nc,"lon")
pts <- SpatialPoints(expand.grid(long,lat), CRS(proj4string(wrld_simpl)))
.
Ora voglio tracciare i paesi le cui coordinate sono sulla mia griglia.
Non so come fare con WRLD_SIMPL Attributi!
Soluzione
Hai guardato maps
mapproject
Packages?È possibile disegnare qualsiasi linea costiera molto rapidamente con la risoluzione desiderata e viene fornita con proiezioni e griglia.È possibile applicare proiezioni a uno dei tuoi oggetti (expand.grid(long,lat)
).Esempio in Antartica:
library("mapproj")
m <- map( "world", "Antarctica", plot=FALSE)
map("world", "Antarctica", proj="conic", param=-90, fill=TRUE, col="gray")
map.grid(m, nx=4, ny=6, col="black")
front.lim <- data.frame(x=seq(-180, 180, length.out=1000),
y=rep(-62, 1000))
front.lim <- mapproject(front.lim$x, front.lim$y, projection="conic", parameters=-90)
lines(front.lim$x, front.lim$y, col="red", lwd=2)
.
Se hai già tracciato la matrice NCDF, è sufficiente aggiungere map(add=TRUE)
.Leggerà i limiti X e Y e disegnerà i confini in quest'area.
plot(c(-10, 45), c(30, 60), type="n", xlab="", ylab="") # image(ncdf)
map(add=TRUE, fill=TRUE, col="gray")
abline(v=seq(-10, 45, 7.5), lty=2)
abline(h=seq(-30, 60, 7.5), lty=2)
.