Use open Earth, Moon and Mars data to find and describe new places on Earth, like deserts, polar regions, volcanic ground or caves, that resemble future lunar or Martian base sites.
Landsat surface reflectance resampled to match Sentinel-2 on a common 30 m grid, so fields can be tracked every few days. The Sentinel-2 half is HLSS30; both come as Cloud Optimized GeoTIFFs.
CMR short name HLSL30, concept ID C2021957657-LPCLOUD, GIBS layer HLS_L30_Nadir_BRDF_Adjusted_Reflectance
About 30 m elevation for land between 60N and 56S from the Shuttle Radar Topography Mission. Useful for finding terrain (craters, lava fields, canyons) that resembles lunar or Martian sites.
CMR short name SRTMGL1, concept ID C2763266360-LPCLOUD
South polar tile layers from LRO: WAC percentage-based illumination (WAC_POLE_ILL_PCT_SOUTH_100M) and LOLA average Earth visibility (AVGVISIB_85S_060M_201608_EARTH_SP). Together they show where a lander gets sunlight for power and line of sight to Earth for communication.
Mars basemaps as WMTS tiles with open CORS, including the global 5 m CTX mosaic (CTX_beta01_uncontrolled_5m_Caltech) and MOLA color hillshade (Mars_MGS_MOLA_ClrShade_merge_global_463m). Stack them to plan a route and read terrain.
NASA PDS Geosciences Node (Washington University in St. Louis)
No loginWorks in browser
A REST API for finding PDS products by mission, instrument and product type; for example LOLA gridded elevation (GDRDEM) of the Moon. Returns product lists with download links to the PDS archive.
import earthaccess
# 30 m HLS Landsat scenes over a single farm area, low cloud only
results = earthaccess.search_data(
short_name="HLSL30",
bounding_box=(-93.7, 41.9, -93.5, 42.1), # near Ames, Iowa
temporal=("2026-05-01", "2026-09-30"),
cloud_cover=(0, 20),
count=5,
)
print(len(results), "scenes")
for g in results:
print(g["umm"]["GranuleUR"])
# Each scene has one Cloud Optimized GeoTIFF per band.
# earthaccess.login()
# earthaccess.download(results[:1], "./hls")
Fetch a south pole illumination tileJavaScript
// Read the WMTS capabilities for the lunar south pole illumination layer,
// then fetch one tile. Moon Trek tiles send CORS headers.
const base = "https://trek.nasa.gov/tiles/Moon/SP/WAC_POLE_ILL_PCT_SOUTH_100M/1.0.0";
const xml = await fetch(`${base}/WMTSCapabilities.xml`).then((r) => r.text());
const template = xml.match(/template="([^"]+)"/)[1];
const matrixSet = xml.match(/<TileMatrixSet>([^<]+)<\/TileMatrixSet>/)[1];
console.log("tile template:", template);
const tileUrl = template
.replace("{Style}", "default").replace("{TileMatrixSet}", matrixSet)
.replace("{TileMatrix}", "0").replace("{TileRow}", "0").replace("{TileCol}", "0");
const tile = await fetch(tileUrl);
console.log(tile.status, tile.headers.get("content-type"), tileUrl);
// Earth visibility layer: swap the path to AVGVISIB_85S_060M_201608_EARTH_SP
Try a live search
Ask NASA's Common Metadata Repository for the five newest files in Harmonized Landsat Sentinel-2 (HLS) Landsat 30 m (HLSL30) v2.0. This runs in your browser and needs no login.