今天来分享一下R语言提取气候数据。希望能对大家有所帮助,如果有错误请大家给我指出来,谢谢啦~
工具:Rstudio,包:ncdf4,terra,raster
数据来源:国家地球系统科学数据中心,数据格式为nc。
大致过程:样地经纬度设置-数据转换-根据样点位置提取所需数据。
library(terra)
library(raster)
library(ncdf4)
样点坐标设置
site <- c("A","B","C","D","E" )
lon <- c(100.00,105.00,110.00,115.00,120.00)
lat <- c(20.00,25.00,30.00,35.00,40.00)
#将样点信息合并为一个数据框
samples <- data.frame(site, lon, lat, row.names="site")
接下来是下载的气候数据处理(做了什么处理我其实也不太懂,大概是坐标系转换之类的,最后会给参考资料,感兴趣的同学可以去看看)
#pre_2019 <- terra::rast("pre_2019.nc")
#projection(pre_2019) = CRS(+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0)
# raster::writeRaster(pre_2019, filename = paste0("./Pre2019/", pre_2019@ptr$names, ".tif"), format="GTiff",bylayer=T)
# pre_2019$pre_1
数据格式转化nc到tiff
petbr <- brick("tmp_2019.nc")
writeRaster(petbr, filename =petbr@data@names, bylayer=T, format="GTiff")
尝试提取一月份的数据
jan<-raster( "X1.tif")
plot(jan)
pre1<- raster::extract(jan, samples) #根据样地坐标信息提取数据
提取数据(1到12月)
for (i in paste0("X",1:12)) {
a=raster(paste0(i,".tif"))
p=raster::extract(a, samples)
print(p)
}
参考资料:
PS:学习R是个持续的事情,应该每天都摸一下,最近忙于野外工作,太久没有碰过R了,深刻反思。
对森林生态学感兴趣的同学,可以关注我的公众号哟~“森林生态小小圈”