Saya sedang membangun peta untuk USA bagian timur laut. Latar belakang peta harus berupa peta ketinggian atau peta suhu tahunan rata-rata. Saya memiliki dua raster dari Worldclim.org yang memberikan saya variabel-variabel ini, tetapi saya perlu mengklipnya sampai sejauh mana saya tertarik. Ada saran tentang bagaimana melakukan ini. Inilah yang saya miliki sejauh ini:
#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")
Ketinggian dan benda-benda yang dimaksudkan adalah benda-benda yang perlu dijepitkan dengan luas area objek sarang. Masukan apa pun akan membantu
Jawaban:
Saya akan turun menggunakan
maps
paket dan menemukan keadaan negara. Kemudian muat ke dalam R menggunakanrgdal
, dan kemudian lakukan pekerjaan overlay poligon.Bagaimana dengan itu? Shapefile gadm cukup detail, Anda mungkin ingin mencari yang lebih umum.
sumber
Berikut ini adalah pendekatan menggunakan
extract()
dariraster
paket. Saya mengujinya dengan data ketinggian dan suhu rata - rata dari situs web WorldClim (saya membatasi contoh ini untuk ketinggian, suhu berfungsi serupa), dan bentuk yang sesuai dari AS yang berisi perbatasan negara dapat ditemukan di sini . Cukup unduh data .zip dan dekompres ke direktori kerja Anda.Anda perlu memuat
rgdal
danraster
perpustakaan untuk melanjutkan.Mari mengimpor AS shapefile sekarang menggunakan
readOGR()
. Setelah mengatur CRS shapefile, saya membuat subset yang berisi status yang diinginkan. Perhatikan penggunaan huruf kapital dan huruf awal kecil!Selanjutnya, impor data raster menggunakan
raster()
dan potong dengan tingkat bagian negara yang dihasilkan sebelumnya.Sebagai langkah terakhir, Anda perlu mengidentifikasi piksel-piksel dari raster elevasi Anda yang terletak di dalam batas-batas poligon keadaan yang diberikan. Gunakan fungsi 'topeng' untuk itu.
Berikut adalah plot hasil yang sangat sederhana:
Tepuk tangan,
Florian
sumber