#[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,
}
}
}