#地震学 #miniseed #文件 #读取 #编码 #记录 #mini-seed

无 std mseedio

用于读取和写入 miniSEED 文件的库

1 个不稳定版本

0.1.0 2024 年 7 月 31 日

#899解析器实现

Download history 125/week @ 2024-07-28 3/week @ 2024-08-04

每月 128 次下载

MIT 许可证

110KB
2K SLoC

mseedio

一个可以读取/写入用 Rust 编写的 miniseed 文件的 lib。支持 no_std。

目前只支持 minimaleed3。如果你想在 Rust 中使用 miniseed2,可以使用 libmseed 的 Rust 绑定。

支持 minimaleed3 的所有编码,除了 steim3。

用法

  • 读取

使用 MS3Volume 读取 miniseed3 文件,并使用 iter 获取每个记录的摘要。

let ms3 = mseedio::MS3Volume::from_file("path/to/your/file.mseed3").unwrap();
for rcd in ms3 {
    println!("{}", rcd.summary());
}

from_file 需要 std 功能,在 no_std 环境中可以轻松将其替换为 from_bytes

  • 写入
let payload: [i32; 500] = [/*...*/];
let rcd = MS3RecordBuilder::new()
        .data_payload_encoding(DataEncoding::Steim1)
        .data(DecodedData::I32(payload.to_vec()))
        .sample_rate(1.0)
        // "2022-06-05T20:32:38.123456789Z"
        .start_time(MS3Time::from_parts(2022, 6, 5, 20, 32, 38, 123456789)) 
        .flag(FieldFlag::ClockLocked)
        .data_public_version(1)
        .sid("FDSN:XX_TEST__L_H_Z")
        .unwrap()
        .build()
        .unwrap();

待办

  • 优化 steim 解码
  • 将编码和解码作为可选功能
  • 添加 miniseed2 支持
  • 更多测试
  • 基准测试

参考

许可证

MIT

依赖项

~1–2MB
~44K SLoC