gnomon

1 m height maps of 26 lunar south-polar landing sites, solved from LRO photos lit from thirty directions. This repository holds the network weights, the scores, and the site list. The maps themselves (GeoTIFFs, 1 m) are in a separate dataset repository.

700 m of the IM-2 landing site, sun 3° above the horizon and circling. Left, NASA's 10 m map. Right, ours.

The polar sun circles the horizon, so a shadow cast from thirty directions is a thirty-way constraint on the ground. A differentiable renderer casts shadows from a height map; a self-supervised UNet is trained with that renderer as its only loss, no labels, no NASA elevation products. The only external height input is the LOLA 10 m laser grid, which anchors the low frequencies.

A photo the network never saw. LOLA rendered under that sun. Ours rendered under that sun.

Files

path contents
weights/<site>/unet/<run>/net.pt UNet state dict, PyTorch. 198 checkpoints: 7 to 8 seeds per 6 km site (unet1 …), 3 per 16 km site, one long run, 20 MB each
weights/<site>/unet/<run>/params.json the per-sun-bin exposure and floor fitted with that network
weights/<site>/split.json the frozen train/test split of sun bins for that site
weights/<site>/sun_fit.csv sun direction per bin, nominal and refined
results/<site>.csv held-out scores for every map at that site, plain column names
sites.csv every site: place, mission, coordinates, box size, status

The weights are site-specific. The network input is the stack of that site's training sun bins plus the LOLA base, so the channel count differs between sites and a checkpoint cannot be applied to another site. Each one reproduces its site's map from the public inputs; it is not a general lunar terrain model.

Scores

Every fifth sun direction was hidden before fitting. Sixteen 300 m blocks of laser heights were removed from the fit. One site has an independent stereo DTM.

LOLA 10 m NASA 5 m SfS ours 1 m
correlation with hidden photos, NASA's 16 km tile 0.68 0.81 0.90
shadow overlap (IoU), same tile 0.82 0.82 0.86
relative brightness error, same tile (lower is better) 0.277 0.203 0.205
RMSE against the stereo DTM, IM-2 0.50 m 0.40 m
sites beating LOLA on hidden photos 26 of 26, median gain 0.23

Left: two hidden suns from opposite sides of the sky. Right: height error against the stereo DTM, and a 4 m crater LOLA draws as a flat line.

Using a checkpoint

Reproduce a site's map from the public inputs with the pipeline in the code repository:

export MOONDEM_DATA=data/sites/haworth MOONDEM_BOX=haworth
python pipeline/step1_cut_photos.py && python pipeline/step2_get_laser_heights.py && python pipeline/step3_check_sun_angles.py
cp weights/haworth/split.json $MOONDEM_DATA/
python pipeline/step5_fit_terrain_network.py --infer-only weights/haworth/unet/unet1/net.pt --tag from_checkpoint

The architecture is a five-level UNet (widths 32, 64, 128, 256, 256) that takes 2·N+1 channels (N training bins, their valid masks, the LOLA base) and outputs a height residual scaled by 5 m. Input stacks, LOLA windows and the solver are in the code repository.

Not proven

  • Only one site has independent truth, a 4 m-post stereo DTM at IM-2 that is band-limited near 20 m.
  • Hidden suns have trained neighbours about 15° away. The two-sun shadow test is what rules out appearance interpolation.
  • The correlation metric is close to what the network optimises. NASA's 5 m map keeps lower brightness error at one site and is closer at the LOLA points it was fit to.
  • The sun-bin filter was applied before the split, so it touched the test bins.
  • Fine relief is in the right places but about a third too strong: the renderer has no albedo term. Slopes at baselines under 20 m are an upper bound until an albedo refit.
  • Permanently shadowed floors produce no map.
  • Multi-image shape-from-shading is an established method, run at 1 to 2 m on some sites by NASA Ames. What is new here is scale and cost (26 sites, one night, about $150), the held-out validation, the self-supervised network, and full release.

Training data

LROC controlled NAC south-polar mosaics (PDS type BDRNPL), 1 m per pixel, one mosaic per 10° of sub-solar longitude, 23 to 36 per tile. LOLA 10 m south-polar DEM from PGDA. Evaluation only: LROC NAC stereo DTM NOBILE03 and NASA PGDA 5 m shape-from-shading DEM of the Leibnitz Beta plateau.

Citation

@misc{gnomon2026, title={gnomon: 1 m height maps of lunar south-polar landing sites from multi-sun photos}, year={2026}, howpublished={Hugging Face}}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support