pub struct AncientBasin {
pub name: &'static str,
pub center_lat_deg: f64,
pub center_lon_deg: f64,
pub diameter_km: f64,
pub floor_depth_m: f64,
}
pub fn major_basins() -> Vec<AncientBasin> {
vec![
AncientBasin {
name: "Hellas Planitia",
center_lat_deg: -42.7,
center_lon_deg: 70.0,
diameter_km: 2_300.0,
floor_depth_m: -7_152.0,
},
AncientBasin {
name: "Argyre Planitia",
center_lat_deg: -49.7,
center_lon_deg: -43.0,
diameter_km: 1_800.0,
floor_depth_m: -5_200.0,
},
AncientBasin {
name: "Isidis Planitia",
center_lat_deg: 12.9,
center_lon_deg: 87.0,
diameter_km: 1_500.0,
floor_depth_m: -3_800.0,
},
AncientBasin {
name: "Utopia Planitia",
center_lat_deg: 49.7,
center_lon_deg: 118.0,
diameter_km: 3_300.0,
floor_depth_m: -5_000.0,
},
]
}
pub fn subsurface_ice_depth_m(lat_deg: f64) -> f64 {
let abs_lat = lat_deg.abs();
if abs_lat > 60.0 {
0.5
} else if abs_lat > 30.0 {
5.0 + (60.0 - abs_lat) * 0.5
} else {
20.0 + (30.0 - abs_lat) * 2.0
}
}
pub fn arabia_shoreline_elevation_m() -> f64 {
-2_540.0
}
pub fn deuteronilus_shoreline_elevation_m() -> f64 {
-3_800.0
}