Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ The thermal and ice criteria are both fed by the **Diviner Polar Resource Produc

The PSR mask used by the ice criterion is still derived from the Mazarico illumination raster (`illumination < 0.001`); the PRP is a thermal-stability calculation, not an ice-existence map, so PSR proximity adds an orthogonal signal.

Default weights from [`config/weights_default.yaml`](config/weights_default.yaml): illumination 0.18, ice 0.18, coupling 0.18, los_to_earth 0.15, slope 0.13, thermal 0.08, hazard 0.07, seismic 0.03. **The 0.15 LOS weight was chosen *before* the v1.1.0 validation rerun on physics-and-operations grounds**, not after seeing the result: LOS is a real physical criterion NASA prioritises in mission planning (above thermal and hazard for crewed-comms-critical sites), but is not as high-leverage as illumination/ice/coupling because it is a more binary-ish constraint (works/doesn't work given a horizon) than a continuous optimisation target. 0.15 places it between hazard (mostly redundant with slope at the south pole) and slope (a hard buildability constraint). Older weight vectors are preserved: [`config/weights_legacy.yaml`](config/weights_legacy.yaml) for the 5-criterion baseline (no coupling, no LOS); [`config/weights_legacy_v6.yaml`](config/weights_legacy_v6.yaml) for the v1.0.0 6-criterion vector (no LOS).
Default weights from [`config/weights_default.yaml`](config/weights_default.yaml) (v1.8 — eighth criterion live): illumination 0.17, ice 0.17, coupling 0.17, los_to_earth 0.14, slope 0.12, thermal 0.07, hazard 0.06, seismic 0.10. **The 0.10 seismic weight reflects that scarp distance is one of multiple safety factors and is most relevant on long habitat-occupation timescales**; the other seven weights are scaled by 0.928 from the v1.5 vector so the simplex sums to 1.00 without changing relative ratios. **The 0.15 LOS weight (now 0.14 after seismic activation) was chosen *before* the v1.1.0 validation rerun on physics-and-operations grounds**: LOS is a real physical criterion NASA prioritises in mission planning, but more binary-ish than continuous, so weighted slightly less than illumination/ice/coupling. Older weight vectors are preserved: [`config/weights_legacy.yaml`](config/weights_legacy.yaml) (5-criterion baseline, no coupling/LOS), [`config/weights_legacy_v6.yaml`](config/weights_legacy_v6.yaml) (v1.0.0 6-criterion, no LOS).

### Mapping to NASA's Figures of Merit framework

Expand All @@ -171,10 +171,24 @@ NASA's Artemis site-selection process ([Lawrence 2025](https://ntrs.nasa.gov/cit
| Hazard (crater density) | Site Availability | Robbins 2019 catalog (consistent) | not public |
| Coupling (PSR ↔ ridge) | Mission Availability + Science Objectives | derived (Mazarico + slope) | not public |
| LOS-to-Earth | Mission Availability | derived (LOLA + libration) | published threshold (HLS) |
| Seismic (Watters scarps) | Site Availability | catalog TODO (planned) | not public |
| Seismic (Watters scarps) | Site Availability | Mishra & Kumar 2022 + Watters 2015 (consistent; bundled in-repo since v1.8) | not public |

selene-base implements *physics-driven analogs* of NASA's FOM categories using public data and operations-driven thresholds, not direct implementations of NASA's actual weighting (which is not public). The HLS hard-constraint thresholds (slope, slope-buffer, illumination, DTE visibility) are published and are matched verbatim. The soft-criterion weights are physics-and-operations-driven defaults set before any validation rerun, not tuned to match a NASA reference. This positions selene-base honestly: a complete public-data implementation of the conceptual framework documented by Lawrence 2025, calibrated to physics-driven defaults rather than fitted to undisclosed NASA-internal weights.

### Seismic criterion (v1.8)

[Civilini et al. (2023)](https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2019GL083580) re-located several Apollo-era shallow moonquakes and showed several of them cluster within tens of kilometres of mapped lunar lobate scarps — the same fault-scarp landforms catalogued globally by Watters et al. (2015) and extended for the south polar region by Mishra & Kumar (2022). v1.8 activates the eighth criterion as **distance-to-nearest-scarp**, with a logistic mapping centred on Civilini's documented moonquake-to-scarp clustering distance:

- cells within **5 km** of a mapped scarp score ~0.08 (high seismic risk),
- cells at **25 km** score 0.50 (transition; matches typical Apollo-era epicentral-uncertainty scale),
- cells beyond **50 km** score ~0.96 (effectively safe under the Civilini regime).

The default weight is 0.10 (slightly below slope, reflecting that scarp distance is one of multiple safety factors most relevant on long habitat-occupation timescales). The logistic shape is preferred over a hard linear ramp because Civilini's moonquake-to-scarp distance estimates are themselves probabilistic with epicentral uncertainty of order 10 km.

The primary data source is **[Mishra & Kumar (2022)](https://doi.org/10.1029/2022GL098505)** (*Geophysical Research Letters*, [doi:10.5281/zenodo.6624114](https://doi.org/10.5281/zenodo.6624114), CC-BY 4.0): 704 south-polar lobate-scarp line segments combining Watters' published mapping with 75 new scarps from independent LROC NAC analysis. The 704 segments cover all 9 USGS Artemis IV candidate regions plus the 100 km horizon-march buffer. The original LROC SOC `POLAR_SCARP_LOCATIONS` shapefile (citing Watters et al. 2015 verbatim, NASA-hosted) is bundled alongside as an attribution anchor and sanity reference at [`src/selene_base/criteria/data/scarps_watters_2015_polar/`](src/selene_base/criteria/data/scarps_watters_2015_polar/).

**Result against Wueller 2026 with all eight criteria active (20 m per-region tiled run on the v1.5-cached preprocessing):** 56 / 69 selene sites (81.2 %) match within 5 km of an in-scope Wueller site (identical to v1.5's 7-criterion result); 46 / 73 (63.0 %) of in-scope Wueller sites match a selene site within 5 km (**up from 44 / 73 in v1.5**, +2.7 pp); median matched-pair distance **1.69 km vs 1.76 km in v1.5** (-0.07 km, tightens). Same 69-site catalog by site count and same top-3 sites in every region; 13 sites in HW/MMP/N1/N2 reshuffle ranks 4–10 within their polygons because the seismic component lifts the aggregate of slightly-further-from-scarp cells just enough to flip a few interior orderings.

### Aggregator: weighted_sum vs TOPSIS (v1.7)

The default aggregator (v1.4+) is a weighted linear sum:
Expand Down Expand Up @@ -640,6 +654,8 @@ The dependency graph is one-way: `data/` is the foundation; `criteria/` reads lo
- **v1.5.1 — Artemis IV mission designation update + NASA Figures-of-Merit framework citation.** ✅ Docs-only patch release. NASA restructured the Artemis program in February 2026: the first crewed lunar landing at the south pole was reassigned from Artemis III to Artemis IV (target early 2028), Artemis III became an Earth-orbit test mission, and Lunar Gateway was canceled in March 2026. v1.5.1 reframes the project's forward-looking copy from "Artemis III" to "Artemis IV (formerly Artemis III)" across the README, the v1.5 catalog report, and user-facing CLI / module docstrings, while leaving citation titles, the USGS dataset name, NASA's October 2024 announcement URL, the Wueller 2026 paper's own framing, and the historical roadmap entries unchanged. Adds [Lawrence 2025](https://ntrs.nasa.gov/citations/20250008952) (NASA NTRS 20250008952) as a reference and a new "Mapping to NASA's Figures of Merit framework" subsection in the Methodology section that maps selene's seven criteria to NASA's published FOM categories. **The methodology, data, validation, and 69-site catalog are identical to v1.5; the headline numbers (56/69 = 81.2 % within 5 km, median 1.76 km) are unchanged.**
- **v1.7 — TOPSIS aggregator as opt-in alternative to weighted_sum.** ✅ Adds [`scoring/aggregate.topsis`](src/selene_base/scoring/aggregate.py) (Hwang & Yoon 1981) as a sibling of `weighted_sum`, with `selene score --method topsis` and `selene rank-per-region --method topsis` exposing it. Same input contract (per-criterion [0, 1] score grids + weights), same renormalise-on-missing-criteria semantics, same NaN propagation. Default stays `weighted_sum` — v1.5's 81.2 % / 1.76 km headline is unchanged. **TOPSIS result on the v1.5 20 m catalog: same 69 sites (HLS filters identical), same top-5 by score, 55 / 69 (79.7 %) matched within 5 km of an in-scope Wueller site (vs 56 at weighted_sum), median matched-pair distance 1.84 km vs 1.76 km globally** — but **three of seven active regions tighten significantly** (Haworth -0.51 km, Mons Mouton Plateau -0.40 km, Nobile Rim 1 -0.43 km) and **max pair distance improves -0.22 km**. Both aggregators agree on which cells are top-tier; they disagree at the 1.5–4 km margin. TOPSIS outputs land under `data/outputs/topsis/` so the two catalogs sit side-by-side. See "Aggregator: weighted_sum vs TOPSIS" in Methodology for the full table.

- **v1.8 — Activate seismic criterion (eight of eight criteria live).** ✅ Adds distance-to-nearest-scarp as the eighth criterion via a logistic of distance to the nearest mapped lunar lobate scarp (midpoint 25 km, steepness 8 km — tuned to Civilini et al. 2023's documented shallow-moonquake-to-scarp clustering distance). Bundles the **Mishra & Kumar (2022)** south-polar scarp catalog ([GRL doi:10.1029/2022GL098505](https://doi.org/10.1029/2022GL098505), Zenodo [doi:10.5281/zenodo.6624114](https://doi.org/10.5281/zenodo.6624114), CC-BY 4.0) — 704 line segments combining Watters et al. (2015) global mapping with 75 new south-polar scarps Mishra & Kumar mapped from independent LROC NAC analysis — at `src/selene_base/criteria/data/scarps_mishra_kumar_2022/`, with the original LROC SOC `POLAR_SCARP_LOCATIONS` shapefile (citing Watters 2015 verbatim) bundled alongside as an attribution anchor at `scarps_watters_2015_polar/`. Default seismic weight 0.10, with the other seven weights scaled by 0.928 so the simplex still sums to 1.00. Methodology fully realised — eight of eight planned criteria contribute to the aggregate score. **Result: 56 / 69 selene sites (81.2 %) match within 5 km of an in-scope Wueller site — identical to v1.5's headline; 46 / 73 (63.0 %) Wueller-side match (up from 44 / 73 in v1.5, +2.7 pp); median matched-pair distance 1.69 km vs 1.76 km in v1.5 (-0.07 km).** Same site count, same top-3 in every region; 13 sites in HW/MMP/N1/N2 reshuffle within ranks 4-10. The criterion is most active where the Mishra/Kumar catalog has dense south-polar coverage and least active for cells far from any mapped scarp (most of the polar grid). See "Seismic criterion (v1.8)" in Methodology for the logistic scoring details and per-region table.

### Where this goes next

**TOPSIS aggregator behind `--method topsis`.** Still open as a methodological alternative to weighted-sum aggregation. Lower priority now that the per-region framing produces a NASA-aligned catalog under the existing aggregator; TOPSIS would change *which* HLS-compliant cells rank highest within each polygon, not whether they're inside.
Expand All @@ -663,7 +679,9 @@ The dependency graph is one-way: `data/` is the foundation; `criteria/` reads lo
- Diviner Polar Resource Product (PRP), south pole, version 1.0. PDS Geosciences Node Diviner derived bundle: [`dlre_prp_south.tab`](https://pds-geosciences.wustl.edu/lro/urn-nasa-pds-lro_diviner_derived1/data_derived_prp/dlre_prp_south.tab).
- Mitrofanov, I. G., et al. (2010). *Hydrogen mapping of the lunar south pole using the LRO Neutron Detector Experiment LEND.* Science, 330(6003), 483–486.
- Watters, T. R., Robinson, M. S., Banks, M. E., Tran, T., & Denevi, B. W. (2015). *Global thrust faulting on the Moon and the influence of tidal stresses.* Geology, 43(10), 851–854. [doi:10.1130/G37120.1](https://doi.org/10.1130/G37120.1)
- Civilini, F., Weber, R. C., Jiang, Z., Phillips, D., & Pan, W. (2023). *Constraints on the seismic hazard of young thrust faults on the Moon from re-located shallow moonquakes.* (Used as motivation for the seismic exclusion criterion.)
- Civilini, F., Weber, R. C., Jiang, Z., Phillips, D., & Pan, W. (2023). *Constraints on the seismic hazard of young thrust faults on the Moon from re-located shallow moonquakes.* (Used as physical motivation + the order-10–50 km clustering-distance scale for v1.8's seismic-criterion logistic.)
- Mishra, A., & Kumar, P. S. (2022). *Spatial and Temporal Distribution of Lobate Scarps in the Lunar South Polar Region: Evidence for Latitudinal Variation of Scarp Geometry, Kinematics and Formation Ages, Neo-Tectonic Activity and Sources of Potential Seismic Risks at the Artemis Candidate Landing Regions.* Geophysical Research Letters, 49, e2022GL098505. [doi:10.1029/2022GL098505](https://doi.org/10.1029/2022GL098505). Data deposit: [doi:10.5281/zenodo.6624114](https://doi.org/10.5281/zenodo.6624114) (CC-BY 4.0). The 704 south-polar scarp line segments ship in-repo at [`src/selene_base/criteria/data/scarps_mishra_kumar_2022/`](src/selene_base/criteria/data/scarps_mishra_kumar_2022/) and are the primary data source for v1.8's seismic criterion.
- Lobate-scarp catalog also distributed by the LROC Science Operations Center (NASA PDS LROLRC_2001 EXTRAS) as `POLAR_SCARP_LOCATIONS` — citing Watters et al. 2015 verbatim. The 48-named-scarp polar shapefile ships in-repo at [`src/selene_base/criteria/data/scarps_watters_2015_polar/`](src/selene_base/criteria/data/scarps_watters_2015_polar/) as an attribution anchor.
- NASA (October 2024). *Artemis III candidate landing regions.* [https://www.nasa.gov/feature/artemis-iii](https://www.nasa.gov/feature/artemis-iii)
- McClernan, M.T. (2024). *Down Selected Artemis III Candidate Landing Site Navigational Grids.* U.S. Geological Survey data release. [https://doi.org/10.5066/P1MEQ6UK](https://doi.org/10.5066/P1MEQ6UK). The simplified region envelopes from this release ship in-repo at [`src/selene_base/validation/data/nasa_regions_polygons_usgs.geojson`](src/selene_base/validation/data/nasa_regions_polygons_usgs.geojson) and are the authoritative validation reference from v1.2.0 onwards.
- Gracy, S., & Lee, P. (2024). *Update on the Artemis III Reference Mission and Candidate Landing Region Selection.* 55th Lunar and Planetary Science Conference, Abstract #1695. (Source for the four published HLS hard-constraint thresholds used by v1.3.0's `rank-per-region` — slope, slope-buffer, illumination, DTE visibility.)
Expand Down
57 changes: 33 additions & 24 deletions config/weights_default.yaml
Original file line number Diff line number Diff line change
@@ -1,29 +1,38 @@
# selene-base default weights (week 9+).
# selene-base default weights (v1.8 — eighth criterion live).
#
# Adds the los_to_earth criterion (Earth line-of-sight visibility
# fraction over the libration cycle) as the seventh criterion.
# Eight criteria contribute to the aggregate score:
# illumination, ice, coupling, los_to_earth, slope, thermal, hazard, seismic.
#
# Why 0.15 for los_to_earth:
# - It is a real physical criterion NASA prioritises in actual mission
# planning (above thermal and hazard for crewed-comms-critical sites).
# - It is not as high-leverage as illumination/ice/coupling because it
# is a more binary-ish constraint (works/doesn't work given a horizon)
# than a continuous optimisation target.
# - 0.15 places it between hazard (mostly redundant with slope at the
# south pole) and slope (a hard buildability constraint).
# v1.8 activates the seismic criterion (distance-to-nearest-scarp via
# Mishra & Kumar 2022's south-polar lobate-scarp catalog) and bumps its
# weight from 0.03 (placeholder while the criterion was inactive) to
# 0.10 — slightly below slope's weight, reflecting that scarp distance
# is one of several safety factors and is most relevant on long
# habitat-occupation timescales (Civilini et al. 2023's relocated
# moonquake-to-scarp clustering distance is order 10-50 km, with
# epicentral uncertainty of order 10 km, so the criterion influences
# multi-km site selection without dominating it). The other seven
# weights are scaled by 0.90/0.97 ≈ 0.928 so the simplex still sums
# to 1.00 without changing the relative ratios within the previous
# seven-criterion vector.
#
# This weight was chosen BEFORE the week-9 validation rerun on
# physics-and-operations grounds, not after seeing the result.
# Why 0.15 for los_to_earth (unchanged ratio from v1.1.0):
# - Real physical criterion NASA prioritises in actual mission planning.
# - More binary-ish than continuous, so weighted slightly less than
# illumination/ice/coupling.
#
# Other criteria renormalised so the simplex sums to 1.00. The week 7-8
# (six-criterion, no LOS) weight vector is preserved as
# config/weights_legacy_v6.yaml.
# This vector was chosen on physics-and-operations grounds, not by
# fitting to validation data. Older vectors are preserved:
# config/weights_legacy.yaml — five criteria (no coupling, no LOS).
# config/weights_legacy_v6.yaml — six criteria (no LOS).
# The seven-criterion v1.5 vector is the v1.8 vector minus seismic with
# the remaining seven renormalised back to 1.00.

illumination: 0.18
ice: 0.18
coupling: 0.18
los_to_earth: 0.15
slope: 0.13
thermal: 0.08
hazard: 0.07
seismic: 0.03
illumination: 0.17
ice: 0.17
coupling: 0.17
los_to_earth: 0.14
slope: 0.12
thermal: 0.07
hazard: 0.06
seismic: 0.10
Loading
Loading