Ground shape
Slopes and height range across 50 km.
Terraluna · how the release is checked
Each release gate with its status, scope, result and consequence, as recorded in the bundle's validation.json. A status is always shown as its literal text, and a missing field is labelled Unavailable.
Globe: ShadowAstra Atlas 0.5° land grid drawn as evenly tinted dots, decoration only (no score layer).
{"notes": {"command": "python -m terraluna_pipeline.polarimetry record-g1 --junit /tmp/terraluna-g1-t5/junit.xml --out fixtures/polarimetry/g1-record.json --pytest-command 'TERRALUNA_UAVSAR_SCENE=<local UAVSAR scene dir> uv run pytest --junitxml=/tmp/terraluna-g1-t5/junit.xml -q -p no:cacheprovider pipeline/tests/test_polarimetry_covariance.py pipeline/tests/test_polarimetry_decode.py pipeline/tests/test_polarimetry_derive.py pipeline/tests/test_polarimetry_mchi.py pipeline/tests/test_polarimetry_oracle.py pipeline/tests/test_polarimetry_stokes.py'", "pytest_command": "TERRALUNA_UAVSAR_SCENE=<local UAVSAR scene dir> uv run pytest --junitxml=/tmp/terraluna-g1-t5/junit.xml -q -p no:cacheprovider pipeline/tests/test_polarimetry_covariance.py pipeline/tests/test_polarimetry_decode.py pipeline/tests/test_polarimetry_derive.py pipeline/tests/test_polarimetry_mchi.py pipeline/tests/test_polarimetry_oracle.py pipeline/tests/test_polarimetry_stokes.py", "commit": "723b1447cf83543e5017255f09689a0a92171a61", "uncommitted_changes": []}, "junit_sha256": "bee9491127d4b47669c5997a456ae21c4cc4c9f2f73caac9b3507ee1526036b1", "junit_timestamps": ["2026-11-15T03:45:33.175637+01:00"], "required_tests": "fixtures/polarimetry/g1_required_tests.json", "required_tests_sha256": "dd7ca958a38ae84ac439ba5af37de5dc1e67489e0178f05bac758197b92bbfc0", "fixtures": {"F1": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "F2": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "F3": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "F4": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "F5": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "F6": {"tests": 7, "passed": 7, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 14}, "F7": {"tests": 6, "passed": 6, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 9}, "F8": {"tests": 2, "passed": 2, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 2}, "F9": {"tests": 1, "passed": 1, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 1}, "F10": {"tests": 1, "passed": 1, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 1}}, "conventions": {"T2-01": {"tests": 3, "passed": 3, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 3}, "T2-02": {"tests": 4, "passed": 4, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 4}, "T2-03": {"tests": 8, "passed": 8, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 10}}, "invalid_data": {"T2-01": {"tests": 54, "passed": 54, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 295}, "T2-02": {"tests": 56, "passed": 56, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 94}, "T2-03": {"tests": 39, "passed": 39, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 109}}, "other": {"T2-01": {"tests": 18, "passed": 18, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 28}, "T2-02": {"tests": 10, "passed": 10, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 17}, "T2-03": {"tests": 14, "passed": 14, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 20}}, "real_scene_check": {"tests": 1, "passed": 1, "failed": 0, "skipped": 0, "incomplete": 0, "absent": 0, "cases": 1}, "failed": [], "skipped": [], "incomplete": [], "absent": [], "absent_cases": [], "other_failed": []}Every displayed or exported quantity carries one of these labels.
Everything below is ShadowAstra Atlas's own methods page, copied with permission. It explains the factor scores shown on /find and /explore, which come from their model and their 0.5° Earth grid. Its tests, ranks and counts are ShadowAstra's validation, not Terraluna results; Terraluna's own gates are the validation board above.
Every dot is one of the 80,206 land areas we measured with NASA data. The brighter it glows, the more it is like the Moon or Mars.
The same measurements, at the same 50 km scale, on Earth, the Moon and Mars. Every number below is real.
Slopes and height range across 50 km.
Volcanic ground, impact craters and bare rock. (Rock type is shown in reports and used by the learned model, not scored here.)
Night cold, the day and night swing, and how high the Sun climbs.
Rain and plants: how much loose soil and rock is exposed to drive on and dig. For ice jobs, ice is scored under Cold & light.
Coldest night ground temperature, for all 80,206 land areas.
Little rain and few plants, so rock and soil show, like regolith.
Slopes and height range next to Jezero crater on Mars.
Looking for signs of life? Rocks and dryness count most.
A model learned from 38 places NASA, ESA and others use.
60% model, 40% factors. 300 km apart. Known sites left out.
From the Austrian Space Forum, ISRO, Europlanet, NASA teams and Apollo training. Each dot is one site; the white line is the typical rank.
The learned model finds them best. On these new sites the mission factors alone do about as well as a simple rule: their job is to explain why a place matches and to tune it to your target and job. Note that Rocks & craters partly uses the volcano and crater lists, so volcanic and impact sites get some help by design.
We let the 38 known sites speak, then only checked the new ones. More model finds hidden sites better. But the model knows nothing about your target or job, and at that share your choices would hardly change the list, so we keep 60%. You can change it in step 3 of Find new sites.
Each line is a site, scored for the jobs it was really used for and for all the other jobs.
Take one factor out and see how the known sites move. Many famous analog sites are volcanoes and craters in green land, so bare ground pulls them down. We keep it, because bare ground matters for driving and digging, and you can turn it off.
The three test sites it ranks lowest, each chosen for something a 55 km average cannot see: a rock type, an ice margin or a small feature in a green landscape.
A rule we keep: new data only changes the score if it ranks the known sites better. Otherwise we show it as a fact and say so here.
On two Kaggle T4 GPUs we trained a vision transformer (DINO, self-supervised) on 50 km height maps from Earth, the Moon and Mars, with an extra part that discourages it from simply telling the worlds apart (70% of its nearest neighbours still come from the same world, against 33% by chance).
For ground shape alone it ranks the known and the new test sites higher than our formula, and ties on the pairs experts chose. It now powers the AI twin finder.
Try AI twins for Jezero craterEMIT, a spectrometer on the space station, maps the minerals of Earth's dry, bare land. We grouped them the way Mars scientists do: clays, sulfates, carbonates and iron oxides, the minerals water leaves behind.
A good sign: the strongest gypsum EMIT sees is the Qaidam basin and the strongest hematite the Pilbara, both well-known Mars analogs. We tested minerals twice, as an input to the learned model and as part of Rocks & craters for the Mars targets where orbiters found these minerals.
Every place report now shows its EMIT minerals next to the target's.
Reports used to say "water ice: likely nearby". Now they show NASA measurements for the target itself, for all 18 targets. We read only the ground around each target from Diviner's large tables (605 MB at the pole, 156 MB per band elsewhere), straight from NASA's Planetary Data System.
Diviner shows where ice could survive. Two more instruments on NASA's Lunar Reconnaissance Orbiter, both in the 2026 challenge resources, look for the ice itself. We read them straight from the Planetary Data System, only the ground near each target.
LEND counts neutrons. Hydrogen, for example in water ice, slows neutrons down, so ground with more hydrogen sends fewer of them up to the orbiter. Near the equator the kind of rock moves the count by a few percent (dark mare lava sends more neutrons than bright highland rock), so those three numbers say little about water.
Mini-RF is a radar. Radar roughness (CPR): smooth, dusty ground gives low values; rough, blocky rock and thick, clean ice can both give values above 1. So a high value inside a dark crater is a hint of ice, not proof: rough, rocky ground looks the same to the radar.
LEND sees a blurry patch: its map cells are 15 km wide near the pole and 30 km elsewhere, and scientists still debate how sharp its view is, so the number describes the neighbourhood, not one landing spot. PDS publishes LEND counts, not a water map, so we do not turn the dip into an amount of water. Both are shown as measured facts on Compare and in the printable site report.
A place on this site is about 55 km across; a field team works in a few kilometres. So every place report now marks the 10 km piece whose slopes are most like the target's, measured on the same 1.2 km grid as everything else. Height range is shown, not scored, because it grows with the size of the piece.
NASA published the challenge's own resources on 13 November. Earthdata, Worldview, the Planetary Data System, LRO and Diviner were already part of Atlas, and LRO's LEND neutron map and Mini-RF radar are now in too, as facts at every Moon target. Every place report links to the same spot in NASA Worldview and Earthdata Search, so you can check it there.
The Python pipeline in pipeline/ rebuilds every number from these public sources.
All 80,206 places, every target score, the AI twins and every test are open on Hugging Face under CC BY 4.0, ready for anyone to check or reuse.
3D is off in this browser · still image