需要处理的变量格式很多,在python中当时读取hdf文件一直不成功,所以又只能问度娘,看看网上的大佬们都是怎么做,然后对于hdf数据,有相关博客用R语言提供了一些方法,于是乎转战R语言处理hdf数据;

主要参考以下代码:

全球陆表特征参量数据产品GLASS数据批量下载、裁剪、格式转换

干货分享 | R语言栅格数据并行计算,HDF批量转TIFF

修改自己的参数后代码如下:

# 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循环了~~~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐