Page 03 · Build plan

Aleph for the Moon

Tav ת

A tool that takes a point on the Moon and downloads everything known about it, so an agent can look at the place. A first version works: open the Tav map.

01

What Tav is

one place in, one folder out
What a run would look like
$ tav --lat 14.09 --lon -56.77 --radius 5km --out marius-pit/

marius-pit/
  manifest.json        every file: what it shows, resolution, date, sun angle
  nac/                 every high-resolution frame of the spot, one per sun angle
  wac.png              low-resolution context
  elevation.tif        heights in metres
  thermal_night.tif    night-time surface temperature
  gravity.tif          gravity anomaly
  radar/               sounder tracks and radar images that cross the box
  pits.geojson         known pits inside the box
  sheet.png            all layers side by side, for a quick look

The coordinates are those of the Marius Hills pit. manifest.json is the file the agent reads first.

02

Layers

Earth layer · lunar equivalent
Extra layers · not in Aleph Earth, useful for caves
03

Samples on disk

downloaded 6 Nov 2026 · test point: Marius Hills pit

We downloaded a sample of every layer above into data/tav/ (not in git). Rule: a source under 1 GB is taken whole, a bigger one gives one product over the Marius Hills pit, 14.09° N, 303.23° E. Every number below was measured on the downloaded files.

On disk5.8 GB · 906 files
Sources sampled19 of 20
NAC frames over the pit57
Marius Hills pit seen from above: a round hole with a sunlit floor and a crescent shadow
LROC NAC · 232 m across · 0.48 m per pixel
Kaguya Terrain Camera image of a sinuous rille with the pit as a small dark dot
Kaguya TC ortho · 3.6 km across
Kaguya elevation of the same area, the rille shows as a dark band
Kaguya TC elevation · 3.6 km across
NAC stereo elevation model, the pit is a small dark dot in the rille floor
NAC stereo DTM · 1.9 km across
Wide Angle Camera mosaic of the Marius Hills region
LROC WAC · 176 km across
LOLA elevation map of western Oceanus Procellarum
LOLA elevation · 30° across
SLDEM elevation with rilles running across the plain
SLDEM elevation · 28 km across
GRAIL gravity anomaly map, light and dark patches
GRAIL gravity · 30° across
Curve of surface temperature over a lunar day: about 100 K at night, close to 390 K at noon
Diviner · temperature in K by local hour
Radar sounder profile: a bright surface line with faint echoes below
Kaguya radar sounder · depth profile
Mini-RF radar image with bright crater rims; the strip ends at the right edge
Mini-RF radar · 7.1 km across
M3 spectrometer image at 750 nm with rilles and craters
M³ at 750 nm · 42 km across
Kaguya Multiband Imager false-colour image, fresh craters in blue-green
Kaguya MI false colour · 7.1 km across
Map drawn from the catalogues: crater outlines in blue, pits in pink, IAU names in white
Craters, pits, names · 121 km across
NAC crop of the Apollo 11 landing area from the Xenarch dataset
Xenarch crop · Apollo 11 site
Astronaut James Irwin salutes the flag next to the lunar module and rover, Apollo 15
Surface photo · Apollo 15 · NASA
Format and statistics · one row per source
LayerFormatSample on diskWhat the numbers say
LROC NACPDS3 .IMG, label inside the file. 16-bit integers, brightness = value × 3.05e-5. Not map-projected1 frame of 57, M122584310LC · 5,064 × 52,224 px · 529 MB0.48 m per pixel, sun 25° from vertical. The 57 frames span sun angles from 12° to 160°; 13 were taken at night. A frame has no coordinates per pixel: we found the pit by its shadow, at line 30,792
LROC WACPDS3 .IMG, 32-bit float, plus a GeoTIFF copyWhole Moon at 948 m per pixel · 5,760 × 11,520 px · 321 MBThe 100 m mosaic is 8 tiles of 2.9 GB each, so we took the 32 pixel-per-degree version. Mean brightness 0.046, at the pit 0.019: dark mare lava
Kaguya TCPDS3 .img + .lbl, 16-bit big-endian1 tile of 3° × 3°, image and elevation · 12,288 × 12,288 px · 577 MB7.4 m per pixel. Tile heights from −2,218 to −598 m. The pit shows as a 28 m dip (real depth 40 m)
XenarchPNG crops 2,048 × 2,048, 8-bit, with CSV and COCO JSON catalogues123 of 11,593 files · 280 MB of 4.0 GB4,633 catalogued frames (4,133 Moon, 500 Mars) over 100 hardware sites. Moon median 0.98 m per pixel. Needs a Hugging Face login
Chandrayaan-2 OHRCPNG tiles 1,024 × 1,024, 8-bit, with a CSV giving latitude and longitude per tileAll 300 tiles in Xenarch · 139 MBThree scenes at 62–74° S, 0.23–0.26 m per pixel: the sharpest images we hold. Each tile is a dot in the Tav map. The full archive at ISRO PRADAN needs an account
LOLAPDS3 .img + .lbl, 16-bit, height = value × 0.5 m. JPEG 2000 copyWhole Moon at 4, 16 and 64 pixels per degree · up to 11,520 × 23,040 px · 789 MB474 m per pixel at best. Lowest point −8,982 m at 70.3° S 187.5° E, highest +10,686 m at 5.4° N 201.3° E. Pit rim at −1,566 m
SLDEMJPEG 2000, signed 16-bit, height = value × 0.5 m1 tile of 32, 0–30° N 270–315° E · 23,040 × 15,360 px · 177 MB59 m per pixel. Gives −1,569 m at the pit, 3 m from LOLA. The scaling is not in the label: we inferred it from LOLA. The float version of the tile is 1.6 GB
NAC stereo DTMGeoTIFF, 32-bit float, metresMARIUSPIT01 elevation, shaded relief and 4 m orthophotos · 3,331 × 12,529 px · 519 MB4 m per pixel, 67% of the grid has data. Heights from −1,780 to −1,276 m. The pit shows as an 18 m dip: stereo cannot see the shadowed floor
Surface photosJPEG scans of film, 4,000–5,400 px wide8 Apollo photos, missions 11 to 17 · 28 MBThe image links in the Apollo Lunar Surface Journal are broken, so these come from the NASA Image Library. Chang’e data needs an account: not downloaded
GazetteerShapefile, points, 19 fieldsComplete · 9,087 names · 46 MB7,064 satellite craters, 1,615 craters, 112 rilles. Nearest name to the pit: Galilaei M, 25 km away
Crater databaseShapefile, points, 19 fieldsComplete · 1,296,796 craters of 1 km or more · 746 MBMedian diameter 1.6 km; 83,061 craters over 5 km. 4 craters within 10 km of the pit, 30 within 50 km
Pit AtlasWeb table, saved as CSV with 13 columns, plus the atlas PDFComplete · 278 pits · 145 MBMedian depth 9 m, deepest 105 m. Marius Hills pit: 55 × 49 m opening, 40 m deep. 2 pits within 100 km of it
Geologic mapShapefiles and geodatabase in metres, plus rasterComplete · 12,247 polygons, 49 units · 606 MBThe pit sits in unit EIp, the Eratosthenian-Imbrian plateau unit
DivinerText table, 11 columns: position, local hour, 8 temperatures1 band of 18, latitudes 10–20° N · 1,382,400 rows · 161 MBCells of 0.5°, about 15 km, in 96 time steps. At the pit: 392 K just after noon, 97 K before dawn, 105 K night average. The 240 m maps are 6.5 GB each
GRAILPDS3 .img + .lbl, 32-bit float, milligals. GeoTIFF copy2 global maps of 35: free-air and Bouguer · 2,880 × 5,760 px · 145 MB1.9 km per pixel. Free-air gravity from −1,330 to +1,782 mGal over the Moon, +16 mGal at the pit, Bouguer +194 mGal
Kaguya radar sounderPDS3 .img + .lbl, 8-bit, each column starts with a 55-byte header1 track, 22 Dec 2007, 34° S to 78° N · 44,636 × 1,000 px · 50 MBThe track passes 59 km east of the pit. The ODE location search does not work for this instrument: tracks must be picked by their start and stop longitude
Mini-RFPDS3 .img + .lbl, 32-bit float1 strip, two products, and the global mosaic at 32 pixels per degree · 419 MBStrip at 14.8 m per pixel, 1,116 px wide; the pit lies at its edge. Polarisation ratio 0.47 in the strip, 0.53 over the Moon. The mosaic covers 64% of the surface
M³ENVI cube + .HDR, 32-bit float, 85 bands from 461 to 2,976 nm300 lines of 27,795, cut over the pit with partial downloads · 31 MB of 2.7 GB140 m per pixel. Reflectance at the pit rises from 0.028 at 750 nm to 0.059 at 2,000 nm. The server sends any byte range, so Tav can cut a box without the full file
Kaguya MIPDS3 .img + .lbl, 9 bands, 16-bit big-endian, reflectance = value × 2e-51 tile of 1° × 1° · 2,048 × 2,048 px · 97 MB14.8 m per pixel, bands from 414 to 1,548 nm. Median reflectance at 749 nm: 0.047
Load and merge test · one grid, 1° × 1° around the pit, 15 m per pixel
Sources that load18 of 18
Sources that merge on the map14 of 18
Layers in the merged file15
Fifteen layers resampled to the same grid and shown side by side, each with a pink mark on the pit. Black areas are where a layer has no data
All 15 layers on the same grid · pink mark = the pit · black = no data in that layer
GroupSourcesHow it loadsDoes it merge?
Map rasters · 9WAC, Kaguya TC, LOLA, SLDEM, NAC stereo DTM, GRAIL, Mini-RF, Kaguya MI, geologic map rasterGDAL opens every file directly and reads size, projection and scale from the label. No custom codeYes. One reprojection call per layer. Only SLDEM needed a fix: its longitudes run 0–360°
Rasters without a map · 2Diviner, M³Diviner is a text table, M³ an ENVI cube with pixel positions in a separate fileYes, with about 15 lines of code each to place the values on a grid first
Vector · 3Gazetteer, crater database, Pit Atlas (and the geologic map polygons)Any shapefile or CSV readerYes, as points and outlines drawn on top. Longitudes come as 0–360°, ±180° or metres
Not on the map · 4NAC raw frame, Kaguya radar sounder, Xenarch crops, surface photosAll open (PDS3, PNG, JPEG)Not as they are. A NAC frame needs the spacecraft geometry (SPICE, ISIS) to be projected. A sounder track is a depth profile along a line. Crops and photos carry only a site position

The result is data/tav/merged/marius_stack.tif: one GeoTIFF of 2,048 × 2,048 pixels with 15 named bands, 99 MB. The layers agree with each other: the NAC stereo DTM and SLDEM differ by 0.4 m on average (3.8 m spread), the hole in the NAC DTM falls 14 m from the Pit Atlas position, and the pit shadow in Kaguya TC 33 m from it. Kaguya TC elevation sits 14 m higher than SLDEM everywhere, so it needs a constant correction.

What does not merge · shown as points on the Moon

A photo or a crop cannot become a layer, but it has a place. Each dot is one item on disk: click it to see the picture. The violet line is the radar sounder track.

Map of the whole Moon with dots at the sites where we hold photos and crops
8 surface photos73 Xenarch cropsNAC raw frameRadar sounder track

The two that need more work
The whole NAC frame as a long thin strip of cratered mare, with the pit circled near the upper edge
NAC raw frame M122584310LC, whole · 25 km long, 2.4 km wide · pink circle = the pit

NAC raw frame. The camera has a single row of 5,064 pixels. The spacecraft flies forward and the row is read 52,224 times: the file is those rows stacked in time order, a strip 25 km long. Nothing in the file says where a pixel is on the Moon. The label gives only the four corners, good to about 300 m. To put it on the map you need the position and pointing of the spacecraft at each instant (the SPICE files) and software that uses them (ISIS, from USGS). Until then it is the sharpest picture we hold, 0.48 m per pixel, with a dot on the map.

Radar profile: a bright horizontal line for the surface, rough at both ends and flat in the middle, with fainter echoes below
Kaguya radar sounder, one track · 34° S to 78° N, 3,400 km · down = 25 km of echo delay

Radar sounder track. Not a picture from above: a vertical cut through the ground. The radar sends pulses straight down as the orbiter flies north. Each column is one position along the orbit; going down a column is the time the echo took to come back, 25 m per pixel. The bright line is the surface: flat over the mare in the middle, rough over the highlands at both ends. Echoes below it can be buried lava layers, or reflections from craters to the side. It merges with the map only as a line, the violet one above, and this track passes 59 km east of the pit.

Five different containers (PDS3, GeoTIFF, JPEG 2000, ENVI, shapefile) and three longitude conventions (0–360°, ±180°, metres). GDAL already reads all of them, so Tav does not need its own readers.