【问题标题】:how to convert the .hdf file to dataset?如何将 .hdf 文件转换为数据集?
【发布时间】:2022-08-22 01:41:16
【问题描述】:

我在这里使用其中一个文件:http://orca.science.oregonstate.edu/1080.by.2160.monthly.hdf.vgpm.m.chl.m.sst.php:

untar(tarfile = \"http://orca.science.oregonstate.edu/data/1x2/monthly/vgpm.r2018.m.chl.m.sst/hdf/vgpm.m.2010.tar\", exdir = \"./foo\")

我收到错误:ar.exe:打开存档时出错:无法打开 \'http://orca.science.oregonstate.edu/data/1x2/monthly/vgpm.r2018.m.chl.m.sst/hdf/vgpm .m.2010.tar\'

所以我必须手动下载文件并将其解压缩(这就是为什么不能在这里提供可重现的示例)。里面有.hdf格式的文件:

我也无法阅读它们:

library(ncdf4)
ncin <- nc_open(\".\\\\vgpm.m.2010\\\\vgpm.2010001.hdf\")
 ncin
 

lon <- ncvar_get(ncin,\"fakeDim0\")
head(lon)


lat <- ncvar_get(ncin,\"fakeDim1\")
head(lat)

fillvalue <- ncatt_get(ncin,\"npp\",\"_FillValue\")

你能帮忙解释一下为什么我不能 utar 文件以及为什么 .hdf 文件没有填充值吗?

    标签: r ncdf4


    【解决方案1】:
    1. 下载该文件后,您应该能够untar 该文件。首先将文件下载到您的工作目录,然后从您的工作目录中解压缩:untar("vgpm.m.2002.tar", exdir = "mydir")。您的问题可能与连接有关。特定于您的计算机设置的原因可能有很多。您需要单独进行故障排除。

    2. 解压目录后,里面的内容就不是 .hdf 文件了。他们是压缩的.hdf 文件(因此它们的文件名以 .gz 结尾)。你需要解压:

      library(R.utils)
      gunzip("mydir/vgpm.2002335.hdf.gz", remove = FALSE)
      
      1. 一旦你真正拥有 .hdf 文件,你需要打开它然后阅读它。使用 ncdf4 是正确的,因为它可以容纳多种 .hdf 文件格式。一些较旧的格式需要不同的软件包或软件。

      2. 要打开并阅读它,您需要两个不同的函数,nc_open()ncvar_get()

      library(ncdf4)
      dat <- nc_open("mydir/vgpm.2002335.hdf", write = TRUE)
      ncvar_get(dat)
      

      请注意,如果您尚未完成文档中详细说明的先决条件设置,这些功能将不起作用。例如:

      netCDF 库和 HDF5 库都必须已安装在您的计算机上,该库的 R 接口才能工作。

    【讨论】:

      【解决方案2】:

      我还尝试对其进行光栅化:它也很好用:

      library(raster)
      x <- raster("~.\\vgpm.2010001.hdf")
      extent(x) <- extent(-180, 180, -90, 90)
      crs(x) <- "+proj=longlat +datum=WGS84"
      NAvalue(x) <- -9999
      #plot(x)
      
      f1<-  as.data.frame(x, xy=TRUE) 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-07
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多