Skip to content

Install

The distribution is lunartrace, version 0.2.0, on PyPI. The older releases of the name (0.1.0, 0.1.1) are a different, incompatible codebase, and 0.2.0 is a breaking release (see the changelog). Pin lunartrace<0.2 to stay on the old one.

This installs the one-call Study and the lunartrace command. The core install depends only on pydantic, and the archived Vikram snapshot is inside the package, so nothing else is needed to replay it.

python -m venv lt-try
lt-try\Scripts\pip install lunartrace
lt-try\Scripts\lunartrace study --site vikram --event vikram:minute-envelope --products LRO/LROC/CDRNAC4 --archive vikram-2026-10-14

The route is exercised on Windows with CPython 3.13.5. The last command prints the digest sha256:3d75a662... and 108 products · 2,340 pairs · frontiers 13/56/133/342. To add an extra from the table below, name it in the install, for example pip install "lunartrace[science]".

The commands in this section run from the repository root.

  • Python 3.11 or later for package installation. Scientific reproduction is qualified locally with CPython 3.13.5 on Windows; the checkout pins that version.
  • uv and Task for the locked command plane, and Bun for the browser and documentation dependencies.
  • For real Site01 execution: authorised source blobs in a local content-addressed store. Pass --store, or set LUNARTRACE_SOURCE_STORE when --store is not given; there is no built-in default. Provenance explains the required witness and custody.
uv sync --frozen
uv run --frozen python --version
uv run --frozen lunartrace --help
task doctor
task bootstrap

--frozen consumes uv.lock without updating it. The default groups are dev and notebook, so the scientific stack, the development checks and marimo are installed. Bootstrap also installs the root and docs-site Bun dependencies from frozen locks.

For a smaller scientific environment, omit all default groups explicitly:

uv sync --frozen --no-default-groups --extra science
uv run --frozen --no-default-groups --extra science python -I -m lunartrace.science.study --help

Keep that selection on later uv run commands; a plain project run restores the default groups. --no-dev alone does not omit the default notebook group.

ExtraAddsUse
nonepydantic>=2,<3The one-call Study (lunartrace.temporal), the lunartrace command, projection and contract models; no GDAL
sciencenumpy, rasterio, shapely, pyproj, pyogrio, matplotlibSlope quality, STUDY and raster projections
workbenchscience, starlette, uvicornLocal Python sidecar
labworkbench, marimoEditable Lab notebooks

In either source route, select workbench or lab in place of science. The exact package and import boundaries are in Package and extras.

Dependency groups are checkout tooling, not pip extras: dev and notebook are the defaults; docs generates the API pages; oracle supplies the independent comparator; and paper, terrain and spice support their own workflows. The lunartrace console script (study, why, verify, replay, notebook) comes with the core install. The Site01 tools still run as Python module entry points; see the CLI guide.

Run the quickstart, read the one-call Study, reproduce the Site01 study, or run the workbench. Full verification uses the Taskfile command plane; Verification lists the checks and their proof ceilings. Declared Python support is not a tested platform matrix: Linux, macOS and cross-version numerical replay remain unestablished.