1 个不稳定版本
0.1.0 | 2024 年 7 月 31 日 |
---|
#899 在 解析器实现
每月 128 次下载
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 支持
- 更多测试
- 基准测试
参考
许可证
依赖项
~1–2MB
~44K SLoC