A Rust interface for reading and writing SAC (Seismic Analysis Code) files
Add this to your Cargo.toml
:
toml
[dependencies]
sacio = "0.1.0"
```rust use sacio::Sac; use sacio::SacString;
let mut s = Sac::from_file("tests/file.sac")?;
asserteq!(s.meanamp(), -0.09854721); asserteq!(s.minamp(), -1.56928); asserteq!(s.maxamp(), 1.52064);
s.y.itermut().foreach(|v| *v *= 2.0);
s.extrema_amp();
asserteq!(s.meanamp(), -0.09854721 * 2.0); asserteq!(s.minamp(), -1.56928 * 2.0); asserteq!(s.maxamp(), 1.52064 * 2.0);
s.setstring(SacString::Network, "CI"); s.setstring(SacString::Station, "PAS"); s.setstring(SacString::Location, "10"); s.setstring(SacString::T1, "PKIKP"); s.set_string(SacString::T1, "SKJKS");
asserteq!(s.distdeg(), 3.3574646);
s.to_file("tests/main.sac")?;
```
This version is released under the MIT/X11 License