Crates.io | libisg |
lib.rs | libisg |
version | 0.2.5 |
source | src |
created_at | 2024-07-26 12:33:57.016698 |
updated_at | 2024-08-16 15:45:34.393402 |
description | Libraly reading/writing ISG 2.0 format |
homepage | |
repository | https://github.com/paqira/libisg |
max_upload_size | |
id | 1316087 |
size | 128,946 |
Library reading/writing the ISG 2.0-format.
use std::fs;
use libisg;
use libisg::{Data, DataBounds, ISG};
let s = fs::read_to_string("Example 1.isg").unwrap();
let isg = libisg::from_str(&s).unwrap();
let (a_max, b_max, delta_a, delta_b) = match isg.header.data_bounds {
DataBounds::GridGeodetic { lat_max, lon_max, delta_lat, delta_lon, .. } => {
(lat_max, lon_max, delta_lat, delta_lon)
},
_ => unimplemented!("`Example 1.isg` is grid geodetic"),
};
match &isg.data {
Data::Grid(data) => {
for (nrow, row) in data.iter().enumerate() {
for (ncol, value) in row.iter().enumerate() {
let a = a_max - delta_a * nrow;
let b = b_max - delta_b * ncol;
// do something
}
}
}
Data::Sparse(data) => {
for row in data {
let (a, b, value) = row;
// do something
}
}
}
Features:
serde
(feature serde
required)MIT or Apache-2.0
Specification: https://www.isgeoid.polimi.it/Geoid/format_specs.html