Repository navigation
feat(criteria): multi-class volatile access (v2.1) - #10
Merged
Merged
Conversation
Replaces v1.x single ``ice`` criterion (Diviner PRP ice-depth + PSR-proximity bonus) with three-class volatile access inside the same 2 km EVA disc: H₂O cold trap (temp_max < 110 K), CO₂/NH₃ cold trap (temp_max < 66 K), and ultra-cold (temp_max < 60 K). Mirrors NASA's documented volatile-diversity priority (Lawrence 2025 FOM names "volatile diversity" as a first-class FOM category) and Wueller 2026's per-class treatment in the peer-reviewed reference. Cold-class thresholds come from Paige et al. 2010, Hayne et al. 2015, and the Hayne et al. 2020 micro-cold-trap classification. Equal sub-weights (1/3 each) by default — agnostic on NASA's preference ordering between volatile classes; ``sub_weights=`` exposed for downstream sensitivity. Combined-score implementation reuses v2.0's ``scipy.ndimage.convolve`` circular-kernel pattern; ``compute_components`` returns the three sub-scores plus the combined for diagnostic visibility. Per-class component COGs persist alongside the combined score so the catalog surfaces *which* sites access multiple volatile classes vs single without rerunning preprocess+score. Weight slot unchanged at 0.17 (same as v1.x ``ice``) so the v2.0 → v2.1 comparison is methodology-only. 20 m headline (default-weights, eight active criteria with multi_volatile): 69 sites (was 69 at v2.0); 54 / 69 = 78.3 % within 5 km of an in-scope Wueller site (was 79.7 %); median matched-pair distance 1.84 km (unchanged). Of 69 v2.1 20 m sites: 30 within 10 m of a v2.0 site (identical re-pick); 24 reranked < 1 km, 15 reranked 1-5 km, 0 reranked > 5 km — methodology swap is broader than v2.0's coupling → eva swap (which had 59 of 69 identical) but keeps every site inside its polygon. Per-region site counts unchanged from v2.0. 240 m baseline (full 240 m run, 70-site catalog): 52 / 70 = 74.3 % within 5 km, median 1.87 km, 42 / 73 = 57.5 % Wueller-side. Per-class breakdown — substantive new content of v2.1: of 69 sites, 0 access all three thermal classes within 2 km EVA disc, 1 accesses two classes (H₂O + CO₂/NH₃), 5 access H₂O only, 63 have no cold-class neighbour within 2 km. The ISRU-volatile-rich subset is concentrated in Nobile Rim 2 (4 of 5 H₂O+ sites, including the only two-class site). The 0 / 69 all-three-classes count isn't a bug — it's the real finding that selene's HLS-compliant catalog is a habitable rim-band catalog, spatially separate from the deepest-cold-trap floors (1-10 km away). Surfaces a gap the v1.x ``ice`` criterion couldn't expose. Per-launch-year HLS cross-check (20 m, matched sites): 23 / 54 pass HLS for 2028 (Artemis IV); 52 / 54 pass HLS in at least one launch year 2025-2032; per-year pass counts: 43 / 23 / 25 / 23 / 31 / 29 / 20 / 42 across 2025-2032. Continuous-lit illumination metric and rock-abundance safety filter remain deferred indefinitely (data-blocked: PGDA hourly cube not distributed; all public Diviner rock-abundance products clip at ±60-70°). NASA-priority sub-weights remain a candidate follow-on if quantitative weighting becomes public. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces v1.x single
icecriterion (Diviner PRP ice-depth + PSR-proximity bonus) with three-class volatile access inside the same 2 km EVA disc: H₂O cold trap (temp_max < 110 K), CO₂/NH₃ cold trap (temp_max < 66 K), and ultra-cold (temp_max < 60 K). Mirrors NASA's documented volatile-diversity priority (Lawrence 2025 FOM names "volatile diversity" as a first-class FOM category) and Wueller 2026's per-class treatment in the peer-reviewed reference. Cold-class thresholds come from Paige et al. 2010, Hayne et al. 2015, and the Hayne et al. 2020 micro-cold-trap classification.Equal sub-weights (1/3 each) by default — agnostic on NASA's preference ordering between volatile classes;
sub_weights=exposed for downstream sensitivity. Combined-score implementation reuses v2.0'sscipy.ndimage.convolvecircular-kernel pattern;compute_componentsreturns the three sub-scores plus the combined for diagnostic visibility. Per-class component COGs persist alongside the combined score so the catalog surfaces which sites access multiple volatile classes vs single without rerunning preprocess+score. Weight slot unchanged at 0.17 (same as v1.xice) so the v2.0 → v2.1 comparison is methodology-only.20 m headline (default-weights, eight active criteria with multi_volatile): 69 sites (was 69 at v2.0); 54 / 69 = 78.3 % within 5 km of an in-scope Wueller site (was 79.7 %); median matched-pair distance 1.84 km (unchanged). Of 69 v2.1 20 m sites: 30 within 10 m of a v2.0 site (identical re-pick); 24 reranked < 1 km, 15 reranked 1-5 km, 0 reranked > 5 km — methodology swap is broader than v2.0's coupling → eva swap (which had 59 of 69 identical) but keeps every site inside its polygon. Per-region site counts unchanged from v2.0.
240 m baseline (full 240 m run, 70-site catalog): 52 / 70 = 74.3 % within 5 km, median 1.87 km, 42 / 73 = 57.5 % Wueller-side.
Per-class breakdown — substantive new content of v2.1: of 69 sites, 0 access all three thermal classes within 2 km EVA disc, 1 accesses two classes (H₂O + CO₂/NH₃), 5 access H₂O only, 63 have no cold-class neighbour within 2 km. The ISRU-volatile-rich subset is concentrated in Nobile Rim 2 (4 of 5 H₂O+ sites, including the only two-class site). The 0 / 69 all-three-classes count isn't a bug — it's the real finding that selene's HLS-compliant catalog is a habitable rim-band catalog, spatially separate from the deepest-cold-trap floors (1-10 km away). Surfaces a gap the v1.x
icecriterion couldn't expose.Per-launch-year HLS cross-check (20 m, matched sites): 23 / 54 pass HLS for 2028 (Artemis IV); 52 / 54 pass HLS in at least one launch year 2025-2032; per-year pass counts: 43 / 23 / 25 / 23 / 31 / 29 / 20 / 42 across 2025-2032.
Continuous-lit illumination metric and rock-abundance safety filter remain deferred indefinitely (data-blocked: PGDA hourly cube not distributed; all public Diviner rock-abundance products clip at ±60-70°). NASA-priority sub-weights remain a candidate follow-on if quantitative weighting becomes public.
Summary
What this PR does, in 1–3 sentences.
Motivation
Why this change is worth making (link the issue if there is one).
Checklist
ruff check .passesruff format --check .passespytestpasses locally# noqareason if not)reflected in the README or the relevant module docstring
downloaded data (or are guarded with
pytest.mark.skipif)Scope notes
to expect in follow-ups).