【问题标题】:How to batch import netCDF files into R and create a RasterStack如何将 netCDF 文件批量导入 R 并创建 RasterStack
【发布时间】:2020-05-29 11:16:28
【问题描述】:

我的工作目录的“数据”文件夹中有 >1000 个 netCDF 文件。这些是显示每日积雪范围的栅格,文件名中包含日期 (yyyymmdd)。

nhtsd25e2_20120501_v01r01.nc
nhtsd25e2_20120502_v01r01.nc
nhtsd25e2_20120503_v01r01.nc
nhtsd25e2_20120504_v01r01.nc
nhtsd25e2_20120506_v01r01.nc
nhtsd25e2_20120507_v01r01.nc
nhtsd25e2_20120518_v01r01.nc
nhtsd25e2_20120520_v01r01.nc
nhtsd25e2_20120521_v01r01.nc
nhtsd25e2_20120522_v01r01.nc

打开单个文件时,发现数据字段的名称是'Merged.Snow.Cover.Extent'

library(raster)
snow <- raster("./data/nhtsd25e2_20120522_v01r01.nc")
view(snow)

我想做的(并且不知道从哪里开始)是从我的“数据”文件夹批量导入 netCDF 文件并创建一个 RasterStack。

需要注意的是,我只想在每年的 2 月 1 日至 7 月 1 日之间为积雪导入 netCDF 文件(因此月日 >= “0201”但

非常感谢任何帮助。

【问题讨论】:

    标签: r netcdf r-raster


    【解决方案1】:

    获取list.files的文件名

    ff <- list.files(pattern="\\.nc$")
    

    这里是你的示例文件

    ff <- c("nhtsd25e2_20120501_v01r01.nc", "nhtsd25e2_20120502_v01r01.nc", "nhtsd25e2_20120503_v01r01.nc", "nhtsd25e2_20120504_v01r01.nc", "nhtsd25e2_20120506_v01r01.nc", "nhtsd25e2_20120507_v01r01.nc", "nhtsd25e2_20120518_v01r01.nc", "nhtsd25e2_20120520_v01r01.nc", "nhtsd25e2_20120521_v01r01.nc", "nhtsd25e2_20120522_v01r01.nc")
    

    提取日期/月份

    dates <- substr(ff, 11, 18)
    months <- as.integer(substr(dates, 5, 6))
    

    2 月至 6 月的子集(如果需要,您可以将 7 月 1 日重新添加)

     f <- ff[months > 1 & months < 7]
    

    创建一个光栅栈

     x <- stack(f)
    

    或者

     x <- lapply(f, raster)
     x <- stack(f)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 2013-05-14
      • 1970-01-01
      • 2017-12-19
      相关资源
      最近更新 更多