Frage

Ich versuche, wrld_simpl aus dem maptools-Paket zu verwenden, um ein Stück Weltkarte mit einem Längen- / Breitengradraster zu zeichnen.

Zum Beispiel habe ich eine NetCDF-Datei mit Längen- und Breitengrad. Ich erstelle eine Matrix mit allen Punkten, die ich im Raster haben kann:

lat <- get.var.ncdf(nc,"lat")
long <- get.var.ncdf(nc,"lon")
pts <- SpatialPoints(expand.grid(long,lat), CRS(proj4string(wrld_simpl)))

Jetzt möchte ich die Länder zeichnen, deren Koordinaten in meinem Raster liegen.

Ich weiß nicht, wie ich mit wrld_simpl Attributen umgehen soll!

War es hilfreich?

Lösung

Hast du dir angesehen maps mapproject pakete ?Sie können jede Küstenlinie sehr schnell mit der gewünschten Auflösung zeichnen und sie wird mit Projektionen und Raster geliefert.Sie können Projektionen auf eines Ihrer Objekte anwenden (expand.grid(long,lat)).Beispiel in der Antarktis:

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)

Wenn Sie die NCDF-Matrix bereits gezeichnet haben, können Sie einfach hinzufügen map(add=TRUE).Es liest die x- und y-Grenzen und zeichnet die Grenzen in diesem Bereich.

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top