Documentation
LunarTrace
Inspect lunar terrain without losing the evidence. Python computes; the workbench makes every threshold, source and limit visible.
LunarTrace is an experimental Python package and web workbench for event-conditioned lunar observation Studies. Version 0.2 puts the temporal method behind one call: name a site, an event interval and a product type, and get back a Study that can be checked, saved and replayed.
import lunartrace as lt
study = lt.temporal.study(site=(-69.3741, 32.32), event="2023-08-23T12:33Z/12:35Z", products="LRO/LROC/CDRNAC4", archive="vikram-2026-10-14")study.frontier("angles") # the 13 pairs nothing beatsstudy.why("pair:002ea7a82e1060f1") # names the pair that beat itstudy.save("vikram.study.json") # replays to the same sha256archive="vikram-2026-10-14" replays the archived pages of the 14 October 2026 run. The
snapshot ships inside the package, so the call needs no network and returns the same result
every time:
- Products
- 108
- Pairs
- 2,340
- Digest
sha256:3d75a662ce75f00cd34dd9ba288012ad471c73b1e56ecf0abe36896d0b199dd0
Install it with pip install lunartrace (Install). The same three steps are available on the command
line as lunartrace study, lunartrace why and lunartrace verify; see
the one-call Study.
The second vertical is the frozen PGDA LOLA Site01 slope quality result. The method
lunartrace.slope_quality/v1 evaluates it into a deterministic result, an execution receipt
and a typed browser projection.
Start here
Section titled “Start here”Who it is for
Section titled “Who it is for”- Researchers who need to know which pre-event and post-event lunar observations are comparable, and need that answer to replay.
- Anyone inspecting a source-backed terrain-quality calculation.
- Python users reproducing the frozen Site01 example.
- Reviewers who need the method, the source witness and the proof ceiling beside every displayed number.
Module contracts are in the generated API reference; source custody is in Provenance.
What LunarTrace is
Section titled “What LunarTrace is”- A one-call temporal Study: the observations before and after an event, every PRE × POST
pair, the Pareto frontiers of the pairs nothing beats, a
whyanswer that names the beating pair, and a digest that shows nothing moved. Method:lunartrace.temporal_prepost/v1. - A deterministic implementation of the Site01 slope-quality method. Identical inputs give identical canonical result bytes.
- A custody-aware STUDY path that resolves a frozen source-witness manifest from a local content-addressed store and re-hashes every input before use.
- Generated, typed projections (JSON Schema, TypeScript types and AJV validators) that the browser reads without recomputing science.
What LunarTrace is not
Section titled “What LunarTrace is not”- It is not a landing-safety assessment, a surface-change detector or a physical-area calculation. Temporal adjacency is not a surface-change claim.
- It is not a drop-in upgrade of the older PyPI releases.
0.2.0is on PyPI;0.1.0and0.1.1under the same name are a different codebase, and0.2.0removes their API and command line. See the changelog. - It does not redistribute source data. Source and derived-data rights are UNVERIFIED; keep all inputs and outputs local and private.