0

我正在尝试从 R 中的 eumetsat 打开多传感器降水数据。我只能使用 GZIP 压缩方法获取这些数据,数据格式类型为 GRIB。当我下载数据时,我得到 tar 文件。如何在 R 中打开这些数据?我尝试使用代码

> untar("1098496-1of1")

但收到错误消息

Error in gzfile(path.expand(tarfile), "rb") : cannot open the connection
In addition: Warning message:
In gzfile(path.expand(tarfile), "rb") :
  cannot open compressed file '1098496-1of1', probable reason 'No such file or directory'

但是当我使用下一个代码时:

> dir.create("rainfalldataeumetstatR") 
> getwd() 
[1] "C:/Users/st/Documents" 
> untar("1098496-1of1.tar")
> untar("1098496-1of1.tar", files="rainfalldataeumetstatR")
> list.files("rainfalldataeumetstatR")

我的目录中没有一些文件并得到答案:

character(0)

可能是因为 tar zip 中的文件是 gz 档案而出现该错误?

4

3 回答 3

0

我也曾努力在 R 中打开 GRIB 文件。您有几个问题,可以一一解决。

对于 untar 和 gzip 问题,从命令行工作。我不知道 tar 包是如何从 Eumetsat 构建/打包的;它会创建一个目录并将所有数据文件放在该目录中吗?在这种情况下,将 tarball 放在顶级数据目录中,然后

tar xvf tar_file_name cd(到刚刚创建的目录) gunzip *.gz 记下您要打开以供以后使用的文件的完整路径名。

文件在 GRIB1 还是 GRIB2 中?如果在 GRIB1 中,则需要安装 wgrib。如果在 GRIB2 中,则需要安装 wgrib2。两者都可从 NCEP 获得。

您可以从以下网址下载它们: http ://www.cpc.ncep.noaa.gov/products/wesley/

在 R 3.1 及更高版本中,您安装 rNOMADS 包 2.0.1 及更高版本。NOAA 国家业务模型存档和分发系统 (NOMADS) 以 GRIB 格式(目前为 GRIB2)分发全球网格数据。

rNOMADS 通过调用 wgrib 或 wgrib2 来解码二进制 GRIB 数据并将其通过管道(以 csv 格式)以供 R 读取,从而帮助您在 R 中打开 GRIB1 和 GRIB2 数据。

打开 R,加载 rNOMADS,然后使用“data_file_name”中数据文件的完整路径名调用 ReadGrib 例程。这不是 rNOMADS 文档中描述的方式,但它有效。

安装 wgrib 和 wgrib2 是唯一困难的部分,甚至可能没有那么难,具体取决于您的系统。我正在编写有关如何安装 wgrib、wgrib2 以及将 rNOMADS 与本地数据文件一起使用的教程。当我完成后,它们将发布在这里:

http://rda.ucar.edu/datasets/ds083.2/#!software

现在有一些坏消息:您需要按顺序打开每个文件。但是,您可以提取并保存所需的子字段,然后读入下一个数据文件,覆盖您读取前一个文件的大型数据结构。如果这太过分了 PITA,您是否考虑过使用 GRADS 工具来显示 GRIB 数据?

于 2014-08-26T19:58:46.727 回答
0

There is no native way to read grib files into R. Use wgrib or wgrib2 depending on whether your file is in grib or grib2 format. I am the package manager for rNOMADS - and trust me, we tried to figure out a simple R way, and ended up dropping it. Maybe the folks at NCEP will do it someday, but it's out of our skill range.

于 2014-08-30T21:59:54.210 回答
0

就我个人而言,我使用 cygwin 解压我的文件也是因为 cygwin 中的 wgrib 包将允许您获取库存文件,以便您可以告诉 R 每一层中包含哪些数据。假设数据是 grib1 r 可以直接读取它。Grib2 需要在您的机器上安装 wgrib2,RNomads 正在应对这一挑战。

好吧,我最近发现了一个很棒的网站,它展示了如何安装 wgrib,以便它可以在 R 中与 rNOMADS 一起运行。

https://bovineaerospace.wordpress.com/2015/04/26/how-to-install-rnomads-with-grib-file-support-on-windows/#comments

于 2014-05-16T13:15:17.697 回答