需要处理的变量格式很多,在python中当时读取hdf文件一直不成功,所以又只能问度娘,看看网上的大佬们都是怎么做,然后对于hdf数据,有相关博客用R语言提供了一些方法,于是乎转战R语言处理hdf数据;
主要参考以下代码:
全球陆表特征参量数据产品GLASS数据批量下载、裁剪、格式转换
修改自己的参数后代码如下:
# library(foreach)
# library(doParallel)
library(terra)
# cl = makeCluster(8) #指定核心数
# registerDoParallel(cl)
###hdf/nc文件都可以,根据自己的需求来
gllist = list.files(path = "F:/soil moisture/SMCI_1km_2000-2020_10cm", pattern = ".nc") #读取HDF列表
gldir = paste0("F:/soil moisture/SMCI_1km_2000-2020_10cm/", gllist)
###裁剪矢量
cmr = vect("F:/region/studyarea.shp")
###逐幅导出
for (i in 1:length(gldir)){
gll<-rast(gldir[i])
crs(gll) <- "epsg:4326"###指定坐标系
gilname<-as.character(time(gll))
glcmr <- trim(mask(gll, cmr))
writeRaster(glcmr, filename=paste0("F:/soil_moisture_tif/", gilname, ".tif"))
print(paste0(as.character(i)," is ok"))
}
遇到的问题:原本也想参照博主的来一个多核运行,但是老出错,也没有深究为什么出错,转而还是用for循环了~~~