1 个不稳定版本
0.1.0 | 2021年11月27日 |
---|
#347 在 模板引擎
40KB
890 行
g2r
g2r是NCEP的g2c库对Rust的简单(且未完成)的"安全"和"Rust式"绑定。它的目标是使库在Rust程序中更容易使用。它为GRIB2数据格式标准中使用的模板提供了包装结构体,并希望有一天能够完全封装标准的大部分或全部。
对于提供的测试GRIB2文件以及g2c库本身的所有权归NOAA的国家环境预测中心所有。g2c存储库可以在以下位置找到: https://github.com/NOAA-EMC/NCEPLIBS-g2c
g2r能做什么?
目前,g2r的功能足以读取NCEP的GFS确定性模型使用的全球网格。目前它只能可靠地解包一个网格模板。未来的版本将允许解包更复杂的网格,例如用于高分辨率模型家族的网格。
构建g2r
构建g2r非常简单。构建脚本处理下载g2c并为它生成绑定。只需将其作为项目依赖项添加即可
[dependencies]
g2r = "0.1.0"
现在你可以开始使用这个crate了。
测试
要测试,从NOMADS这里下载一个GRIB2文件:https://nomads.ncep.noaa.gov/ 将此文件命名为test.grib2,并将其移动到您克隆此存储库的位置,然后运行cargo test。
示例
在您的应用程序中使用g2r非常简单。只需在您的Grib2实例上调用read_all() fn,消息即可可用。
fn main() {
let g2r = Grib2::new(String::from("some_data.grib2"));
g2r.read_all();
for message in g2r.messages() {
for field in message.fields() {
println!("Found Field: {}", field);
}
}
}
码表
这些用于与该存储库中的CSV文件一起使用: https://github.com/wmo-im/GRIB2 此模块用于反序列化码值,并使输出更易于阅读。
依赖项
~3–6MB
~78K SLoC