callistos 0.0.1

Callisto celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CallistoZone {
    ValhallaBasin,
    AsgardRegion,
    CrateredPlains,
    DarkTerrain,
    BrightPatch,
}

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SurfaceZone {
    pub zone: CallistoZone,
    pub mean_albedo: f64,
    pub regolith_depth_m: f64,
}

pub fn zone_from_lat_lon(latitude_deg: f64, longitude_deg: f64) -> SurfaceZone {
    if (5.0..=25.0).contains(&latitude_deg) && (-20.0..=20.0).contains(&longitude_deg) {
        SurfaceZone {
            zone: CallistoZone::ValhallaBasin,
            mean_albedo: 0.25,
            regolith_depth_m: 10.0,
        }
    } else if (-35.0..=-15.0).contains(&latitude_deg) && (120.0..=160.0).contains(&longitude_deg) {
        SurfaceZone {
            zone: CallistoZone::AsgardRegion,
            mean_albedo: 0.24,
            regolith_depth_m: 9.0,
        }
    } else if longitude_deg.abs() > 90.0 {
        SurfaceZone {
            zone: CallistoZone::DarkTerrain,
            mean_albedo: 0.17,
            regolith_depth_m: 18.0,
        }
    } else if latitude_deg.abs() > 60.0 {
        SurfaceZone {
            zone: CallistoZone::BrightPatch,
            mean_albedo: 0.28,
            regolith_depth_m: 7.0,
        }
    } else {
        SurfaceZone {
            zone: CallistoZone::CrateredPlains,
            mean_albedo: 0.20,
            regolith_depth_m: 14.0,
        }
    }
}