moons 0.0.1

Moon celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum LunarZone {
    NearSideMaria,
    FarSideHighlands,
    SouthPolarShadow,
    NorthPolarRim,
    BasinRing,
}

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

pub fn zone_from_lat_lon(latitude_deg: f64, longitude_deg: f64) -> SurfaceZone {
    if latitude_deg < -75.0 {
        SurfaceZone {
            zone: LunarZone::SouthPolarShadow,
            mean_albedo: 0.16,
            regolith_depth_m: 8.0,
        }
    } else if latitude_deg > 75.0 {
        SurfaceZone {
            zone: LunarZone::NorthPolarRim,
            mean_albedo: 0.18,
            regolith_depth_m: 6.0,
        }
    } else if longitude_deg.abs() < 90.0 {
        SurfaceZone {
            zone: LunarZone::NearSideMaria,
            mean_albedo: 0.09,
            regolith_depth_m: 4.0,
        }
    } else {
        SurfaceZone {
            zone: LunarZone::FarSideHighlands,
            mean_albedo: 0.18,
            regolith_depth_m: 10.0,
        }
    }
}