问题标签 [cfgrib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
958 浏览

dataset - 使用 xarray 和 dask 处理大型 grib 文件

我正在使用 xarray 读取一些(显然)大型 grib 文件。我说“显然”是因为它们每个大约 100MB,这对我来说似乎并不太大。然而,运行

需要5-10分钟。更糟糕的是,读取其中一个占用了近 4GB 的 RAM——考虑到 xarray 应该做的延迟加载,这让我感到惊讶。尤其是这是原始文件大小的 40 倍!

这种阅读时间和 RAM 使用似乎过多,并且无法扩展到我必须阅读的 24 个文件。

我试过使用 dask 和xr.open_mfdataset,但是当单个文件很大时,这似乎没有帮助。有什么建议么?

附录:数据集打开后看起来像这样:

我通过一个接一个地读取 grib 文件并将它们作为 netcdf 写入磁盘暂时解决了这个问题。xarray 然后按预期处理 netcdf 文件。显然,不必这样做会很好,因为它需要很长时间 - 到目前为止我只做了 4 次。

0 投票
0 回答
189 浏览

python - 为什么内核在使用引擎cfgrib使用xarray读取grib2文件的命令后会死机

我正在使用jupyter notebook跑步Ubuntu18 OSPython3

执行命令后

内核死了。

我认为该问题与具有不同 typeOfLevel 的 grib 文件有关(请参阅此问题

0 投票
2 回答
1652 浏览

python - 使用 eccodes/grib 时如何解决此 AttributeError?

我在 macOS 上使用 cfgrib,当我尝试将隐蔽的 grib 文件用于 xarray 时出现以下错误:

这是我到目前为止的代码:

我已经下载了所有似乎需要的东西,包括 eccodes、pyeccodes、cfgrib。我该如何解决这个问题?

0 投票
0 回答
261 浏览

python - 使用 xarray 和 cfgrib 引擎导入文件时,Jupyter 内核死机

我正在尝试使用cfgribLinux 上的包和 ecCodes 从 lat/lons 打开和提取数据。

注意:此代码在 jupyter 外部运行时有效 - 但在其中崩溃。

我已经安装了 ecCodes 并使用它检查了它,python -m cfgrib selfcheck它给出了输出

然后,我按照此处的说明使用 anaconda 在虚拟环境中安装了 cfgrib 。

当我尝试在以虚拟环境为内核的 jupyter notebook 中使用相对较小的示例 grib 文件运行代码时,以下代码每次都会杀死内核。

ecCodes我已经更新到and的最新版本,cfgrib但我看不出出了什么问题。

这是我得到的错误:在此处输入图像描述

0 投票
1 回答
134 浏览

python - 使用 DASK + CFGrib 并行打开文件真的很慢

我一直在使用以下代码构建一个 GRIB 文件读取工具。我有异构文件,所以我不能使用 xarray.open_mfdatasets 或类似的东西。

在运行代码时,我注意到与完全并行处理相比,以线程并行运行的性能降低了 10 倍(每个 Dask 工作人员只有 1 个线程)。我猜这与 GIL 有关,我猜任何人都不会感到惊讶。DASK 文档确实强调这是一个优化机会。拥有这么多工人有一些缺点,因为他们现在的内存有限,并且启动所有工人需要额外的开销,更不用说更多的进程通信了。每个任务大约需要 10 秒,所以我不关心 Dask.delayed 的开销。

我有两个问题:

  1. 下层 CFGrib/Eccodes 包中有什么可以提高多线程性能的吗?根据我的模糊理解,numpy 等在底层编译代码中采取步骤来释放 GIL?
  2. 是否可以利用 DASK 中新的 asyncIO python 功能?(我并没有要求任何人立即开发它,我只是想知道这样的东西是否存在或正在开发中,是否是一个愚蠢的想法)

谢谢。

0 投票
1 回答
99 浏览

cfgrib - 如何按压力级别提取信息?

我是cfgrib的新手,所以请原谅可能是一个直截了当的问题..

我有一个异构 grib 文件,它表示网格上各点和大气压力水平的天气信息。

对于我的一生,我无法弄清楚如何以可用的方式提取我需要的信息。

例如,我想获取每个可用压力水平下网格中每个点的温度信息(数据变量 = t)。或者,如果不可能,请获取特定压力水平下每个纬度、经度的温度。

我的 grib 文件如下所示:

非常感谢任何帮助!

0 投票
2 回答
335 浏览

python - 读取grb2文件很慢

使用以下代码读取大约 100 兆字节的 grb2 文件需要 5 分钟:

有什么方法或库可以让我更快地阅读这些文件吗?

0 投票
1 回答
706 浏览

python-xarray - xarray 使用 cfgrib 在 s3 上读取远程 grib 文件

crgrib 引擎可以处理读取远程文件吗?根据马丁杜兰特的评论,它看起来不像(https://github.com/ecmwf/cfgrib/issues/198#issuecomment-772852412

在 s3 上托管了一个小的 grib 文件:https ://mf-nwp-models.s3.amazonaws.com/index.html#arpege-world/v2/2021-02-16/00/UGRD/10m/ (注意不要点击文件,因为它会下载)。

当我尝试阅读它时,sf3s我得到

0 投票
1 回答
701 浏览

python - 通过 pip 在 WSL2 上未正确安装 Cfgrib

我正在尝试安装cfgrib到我的 WSL2 Ubuntu,但是当我键入python3 -m cfgrib selfcheck它时会出现以下错误,如下所示。

我的 python 版本是Python 3.8.2. 是否可以通过 cfgrib 安装pip

0 投票
1 回答
145 浏览

python-xarray - 如何在 xarray 的后端添加 fsspec.open_local

遵循 Q here xarray 使用 cfgrib 读取 s3 上的远程 grib 文件

我将如何转换以下代码以在backend_kwargsxarray 的open_dataset.

但得到ERROR:cfgrib.messages:Can't create file 'simplecache::s3://mf-nwp-models/arpege-world/v2/2021-02-16/00/UGRD/10m/0h.grib2.90c91.idx'