raster
package를 사용 하여 WorldClim 데이터를 다운로드 ?getdata
하고 해상도, 변수 및 좌표에 대해 알 수 있습니다 .
예를 들어 :
library(raster)
library(sp)
r <- getData("worldclim",var="bio",res=10)
Bio 1과 Bio12 는 평균 기온과 연간 강수량입니다.
r <- r[[c(1,12)]]
names(r) <- c("Temp","Prec")
예를 들어 임의의 점을 만듭니다 SpatialPoint
. 귀하의 경우 좌표를 사용하여 객체 를 만듭니다 .
points <- spsample(as(r@extent, 'SpatialPolygons'),n=100, type="random")
마지막으로을 사용하십시오 extract
. 로 cbind.data.frame
와 coordinates
당신은 욕망 data.frame을 얻을 것이다.
values <- extract(r,points)
df <- cbind.data.frame(coordinates(points),values)
나는 임의의 포인트를 사용했기 때문에 많은 것을 얻었습니다 NA
. 예상됩니다.
head(df)
x y Temp Prec
1 112.95985 52.092650 -37 388
2 163.54612 85.281643 NA NA
3 30.95257 5.932434 270 950
4 64.66979 40.912583 150 150
5 -169.40479 -58.889104 NA NA
6 51.46045 54.813600 36 549
plot(r[[1]])
plot(points,add=T)
WorldClim 데이터의 스케일 팩터는 10이므로 Temp = -37
-3.7ºC입니다.
좌표 예 :
library(raster)
library(sp)
r <- getData("worldclim",var="bio",res=10)
r <- r[[c(1,12)]]
names(r) <- c("Temp","Prec")
lats <- c(9.093028 , 9.396111, 9.161417)
lons <- c(-11.7235, -11.72975, -11.709417)
coords <- data.frame(x=lons,y=lats)
points <- SpatialPoints(coords, proj4string = r@crs)
values <- extract(r,points)
df <- cbind.data.frame(coordinates(points),values)
df
x y Temp Prec
1 -11.72350 9.093028 257 2752
2 -11.72975 9.396111 257 2377
3 -11.70942 9.161417 257 2752