use splat::{geo, radial::DemLookup, sdf::DemTileSet, udt}; fn main() { let mut base = DemTileSet::new(); base.load_dir("/home/cescobar/Laboratorio/splat-1.4.2-Charles/sdf").unwrap(); let fs = udt::load("/tmp/test-obstacle.udt").unwrap(); let wrapped = udt::DemWithUdt::new(&base, fs, 1200); let tx = (-1.023206, 79.458669); let rx = (-1.698611, 79.107222); let az_from_rx = geo::azimuth(rx.0, rx.1, tx.0, tx.1); let dist_mi = geo::distance(tx.0, tx.1, rx.0, rx.1); println!("dist {:.2} mi, az from rx {:.2}°", dist_mi, az_from_rx); // Sample 20 points along the path from RX to TX; print the elevation // via the UDT-wrapped DEM at each sample point. let mut prev_z = 0.0; for i in 0..=20 { let d_mi = (i as f64 / 20.0) * dist_mi; let (lat, lon) = geo::step_great_circle(rx.0, rx.1, az_from_rx, d_mi); let z = wrapped.elevation(lat, lon); let mark = if z > prev_z + 1000.0 { " ← UDT HIT" } else { "" }; println!( " d={:5.1} mi ({:.4}, {:.4}) z={:.0}m{}", d_mi, lat, lon, z, mark, ); prev_z = z; } }