pub const DEFAULT_AZ: f64 = -37.5;
pub const DEFAULT_EL: f64 = 30.0;
pub fn project_ortho(x: &[f64], y: &[f64], z: &[f64]) -> (Vec<f64>, Vec<f64>) {
let az = DEFAULT_AZ.to_radians();
let el = DEFAULT_EL.to_radians();
let (sin_az, cos_az) = (az.sin(), az.cos());
let (sin_el, cos_el) = (el.sin(), el.cos());
let px: Vec<f64> = x
.iter()
.zip(y.iter())
.map(|(&xi, &yi)| -xi * sin_az + yi * cos_az)
.collect();
let py: Vec<f64> = x
.iter()
.zip(y.iter())
.zip(z.iter())
.map(|((&xi, &yi), &zi)| xi * cos_az * sin_el + yi * sin_az * sin_el + zi * cos_el)
.collect();
(px, py)
}