DUST数据下载及分析1:批量下载NASA Merra2的nc数据并提取所需指标层转为TIFF

1.MERRA-2数据下载

网址:https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/

第一步,打开网站

第二步:点击Data Access-MDISC进入数据集选择

 第三步:登录个人账号,输入想搜索数据集版本号(后边有版本号对应数据及数据解释的链接),或者根据自己需求在左边选择。

如果不知道版本号可以查看《README Document for MERRA-2 Data Products》手册

第四步:数据批量下载,需使用插件Down Them All插件(下载地址:https://www.downthemall.net/,该插件目前只支持Firefox、Chrome、Opera三个浏览器,建议使用谷歌浏览器),不建议使用weget下载,对网络要求高,并且cmd有时候会进不去服务器

选中需要下载的数据(建议如果研究时间长按照年选择,如果研究时间段按月选择),右键使用点击用DownThemAll保存选中项

点击所有文件后选择下载,就开始下载了,下载位置为浏览器默认下载位置,可以更改!

2.提取所需指标并转为TIFF(RStudio)

代码如下

library(terra)
library(tidyverse)
library(sf)
rast("D:/data/merra2_dust original data/M2TMNXAER.5.12.4ːMERRA2_100.tavgM_2d_aer_Nx.198001.nc4") -> rst 
rst
# raster::raster("mydata/M2TMNXAER.5.12.4ːMERRA2_100.tavgM_2d_aer_Nx.198001.nc4", varname = "BCSCATAU") -> rsttemp 
# plot(rsttemp)
# 
# terra::ext(rst) <- terra::ext(rsttemp)
# terra::crs(rst) <- terra::crs(rsttemp) %>% st_crs() %>% .$proj4string
# rst
rst$DUSMASS %>% 
  writeRaster("temp.tif") 

# 循环所有的文件
# 使用 str_extract 可以提取月份:
str_extract("D:/data/merra2_dust original data//M2TMNXAER.5.12.4ːMERRA2_100.tavgM_2d_aer_Nx.198001.nc4", "\\d{6}") -> month

# 使用 fs::dir_ls() 可以索引所有的文件,假设所有的文件都在 mydata 文件夹里面
fs::dir_ls("D:/data/merra2_dust original data")
# 创建 rasterdata 文件夹保存结果
dir.create("rasterdata")
lapply(fs::dir_ls("D:/data/merra2_dust original data"), function(x){
  str_extract(x, "\\d{6}") -> month
  rast(x) -> rst 
  rst$DUSMASS %>% 
    writeRaster(paste0("rasterdata/", month, ".tif")) 
}) -> res

其中新版的 terra 包很奇怪,没法识别 nc 文件的坐标参考系

有两种办法解决,第一个是安装旧版本的 terra 包:install.packages("https://cran.r-project.org/src/contrib/Archive/terra/terra_1.5-17.tar.gz", repos = NULL, type = "source")

但是有可能会安装失败

另外一种办法是使用 raster 包读取,然后使用读取得到的 crs 和 extent 设置

 运行结果非常快速。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值