Trazar un mapa mundial con una cuadrícula especificada con R
-
26-12-2019 - |
Pregunta
Estoy intentando utilizar wrld_simpl del paquete maptools para trazar un trozo de mapa mundial con una cuadrícula de longitud/latitud.
Por ejemplo, tengo un archivo netCDF con longitud y latitud, creo una matriz con todos los puntos que puedo tener en la grilla:
lat <- get.var.ncdf(nc,"lat")
long <- get.var.ncdf(nc,"lon")
pts <- SpatialPoints(expand.grid(long,lat), CRS(proj4string(wrld_simpl)))
Ahora quiero trazar los países cuyas coordenadas están en mi cuadrícula.
¡No sé cómo hacerlo con los atributos wrld_simpl!
Solución
¿Miraste? maps
mapproject
paquetes?Puedes dibujar cualquier línea de costa muy rápidamente con la resolución deseada y viene con proyecciones y cuadrícula.Puede aplicar proyecciones a uno de sus objetos (expand.grid(long,lat)
).Ejemplo en la Antártida:
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)
Si ya ha trazado la matriz ncdf, simplemente puede agregar map(add=TRUE)
.Leerá los límites xey y dibujará los bordes en esta área.
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)