问题标签 [grib-api]

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 回答
31 浏览

r - 问题下载 gribr 包

我一直在尝试下载 R 包 gribr 以使用 R 中的 grib 数据文件,但我在下载时遇到了一些问题。任何有关如何实现这一目标的帮助或指导都将受到高度赞赏。

0 投票
1 回答
57 浏览

c++ - ecCodes(grib 阅读库)不会释放内存

我在我的项目中使用ecCodes 库,我遇到了一个问题,即在读取文件之间没有释放内存。

代表问题的最小示例是这样的(并且基本上是这两个库 API 使用示例 [ 1 ](https://confluence.ecmwf.int/display/ECC/grib_get_keys[2]的组合:

在示例中,程序读取 4 个相同的 ERA5 文件,每个文件大小为 1.5GB。在打开新文件之前,使用codes_handle_delete() 和fclose() 关闭前一个文件。因此,预期的行为是内存使用量保持在 1.5GB 左右。然而,实际上内存使用量稳步增加到大约 6.5GB,并在程序关闭时被释放(见下面的截图)。

显示内存使用情况的屏幕截图

这个特定的示例已经使用 CMake(发布配置)在 CLion 上运行,但问题发生在所有其他配置以及我的其他使用 FFI 调用 ecCodes 的 Rust 项目中。

该库似乎经过良好测试和支持,因此它似乎不太可能是库错误。因此,这是预期的行为还是我的代码错误?如果是后者,我该如何纠正?

我正在使用安装了 apt 的 Ubuntu 21.04 和 ecCodes 2.20.0