Estoy construyendo un mapa para el noreste de EE. UU. El fondo del mapa debe ser un mapa de altitud o un mapa de temperatura media anual. Tengo dos rásteres de Worldclim.org que me dan estas variables, pero necesito recortarlas en la medida de los estados en los que estoy interesado. Cualquier sugerencia sobre cómo hacer esto. Esto es lo que tengo hasta ahora:
#load libraries
library (sp)
library (rgdal)
library (raster)
library (maps)
library (mapproj)
#load data
state<- data (stateMapEnv)
elevation<-raster("alt.bil")
meantemp<-raster ("bio_1.asc")
#build the raw map
nestates<- c("maine", "vermont", "massachusetts", "new hampshire" ,"connecticut",
"rhode island","new york","pennsylvania", "new jersey",
"maryland", "delaware", "virginia", "west virginia")
map(database="state", regions = nestates, interior=T, lwd=2)
map.axes()
#add site localities
sites<-read.csv("sites.csv", header=T)
lat<-sites$Latitude
lon<-sites$Longitude
map(database="state", regions = nestates, interior=T, lwd=2)
points (x=lon, y=lat, pch=17, cex=1.5, col="black")
map.axes()
library(maps) #Add axes to main map
map.scale(x=-73,y=38, relwidth=0.15, metric=T, ratio=F)
#create an inset map
# Next, we create a new graphics space in the lower-right hand corner. The numbers are proportional distances within the graphics window (xmin,xmax,ymin,ymax) on a scale of 0 to 1.
# "plt" is the key parameter to adjust
par(plt = c(0.1, 0.53, 0.57, 0.90), new = TRUE)
# I think this is the key command from http://www.stat.auckland.ac.nz/~paul/RGraphics/examples-map.R
plot.window(xlim=c(-127, -66),ylim=c(23,53))
# fill the box with white
polygon(c(0,360,360,0),c(0,0,90,90),col="white")
# draw the map
map(database="state", interior=T, add=TRUE, fill=FALSE)
map(database="state", regions=nestates, interior=TRUE, add=TRUE, fill=TRUE, col="grey")
Los objetos de elevación y meantemp son los que deben recortarse en la extensión del área del objeto nestates. Cualquier entrada ayudaría
Respuestas:
Me gustaría usar el
maps
paquete y encontrar un archivo de forma de estado. Luego cargue eso en R usandorgdal
, y luego haga un trabajo de superposición de polígonos.¿Como es que? El archivo de forma de gadm es bastante detallado, es posible que desee encontrar uno más generalizado.
fuente
Aquí hay un acercamiento usando
extract()
delraster
paquete. Probé con la altitud y de la temperatura media de datos de la WorldClim sitio web (I limitar este ejemplo a la altitud, la temperatura funciona de forma similar), y un archivo de forma apropiada de las que contienen las fronteras estatales de Estados Unidos se encuentra aquí . Simplemente descargue los datos .zip y descomprímalos en su directorio de trabajo.Necesita cargar
rgdal
yraster
bibliotecas para continuar.Importemos el archivo de forma estadounidense ahora usando
readOGR()
. Después de configurar el CRS del shapefile, creo un subconjunto que contiene los estados deseados. ¡Presta atención al uso de mayúsculas y minúsculas!A continuación, importe los datos ráster con
raster()
y recórtelos con la extensión del subconjunto de estados generados previamente.Como paso final, debe identificar los píxeles de su ráster de elevación que se encuentran dentro de los bordes de los polígonos de estado dados. Use la función 'máscara' para eso.
Aquí hay una gráfica muy simple de los resultados:
Saludos,
Florian
fuente