Skip to content

Site01 walkthrough

This is the shortest command-line route through the real Site01 example. The commands use the authoring host’s authorised source store; substitute another authorised CAS path if needed. This workflow downloads no source data and invents none.

The method is lunartrace.slope_quality/v1 (see Method). The frozen manifest research/sources/pgda78-site01.manifest.json fixes the inputs. Rights for the source blobs are UNVERIFIED, so keep source and derived artifacts out of public channels.

  • An authorised checkout installed with the locked dev environment (see Install).
  • The private source blobs in a local content-addressed store. The commands below use $LUNARTRACE_SOURCE_STORE, which must point at that store. If the blobs are absent, stop: there is no substitute.
  • A fresh local output directory. This example uses .build/site01-study. run overwrites result.json and receipt.json inside it, so keep any earlier receipt elsewhere.
  1. Run the STUDY.

    uv run --frozen python -I -m lunartrace.science.study run --manifest research/sources/pgda78-site01.manifest.json --store "$LUNARTRACE_SOURCE_STORE" --out .build/site01-study

    An observed execution on CPython 3.13.5, Windows, with locked dependencies returned exit code 0 and this canonical result identity:

    result_sha256=f0065fafcefc7263172c8446b456d0f51cbf0f1627e364981eb870c0ca2cc5a0 out=.build/site01-study

    The default τ sequence is 0.5, 2.0 and 25.0 degrees. To replace it, pass --tau once per value, for example --tau 0.5 --tau 2. The full option reference is in CLI.

  2. Read the result.

    result.json holds one row per (ROI, τ) pair. Row labels 0 to 6 identify the ROI members and union is the combined row. The union rows from the observed run are:

    τ (deg)ROI cellsJoint valid cellsIncluded cellsIncluded fractionSlope mean (deg)
    0.52420242000.000000null
    2.02420242016050.6632232.524974
    25.02420242024201.0000002.526202

    A null mean means no cell was included; the fraction is 0.0 because the jointly valid denominator is positive. The grid is 3200 × 3200 cells with a 5 m pitch. Counts are cells, not physical area.

  3. Check the receipt.

    receipt.json records the execution status and identities. For this run:

    • status: METHOD_EXECUTED
    • result_sha256: f0065fafcefc7263172c8446b456d0f51cbf0f1627e364981eb870c0ca2cc5a0, the value printed in step 1
    • taus: [0.5, 2.0, 25.0]

    METHOD_EXECUTED records that the method ran on the verified inputs. It is not numeric reproduction, admission or a rights statement; those are separate standings, covered in Standing and Verification.

  4. Build the browser projection.

    uv run --frozen python -I -m lunartrace.science.study project --result .build/site01-study/result.json --manifest research/sources/pgda78-site01.manifest.json --standing METHOD_EXECUTED --out .build/site01-study/projection.json

    The projection schema is lunartrace.projection.slope_quality/v0. The standing flag is the caller’s assertion, not a promotion or an admission check.

Retain all three files:

  • Directory.build/site01-study/
    • result.json canonical science
    • receipt.json execution context
    • projection.json typed value the browser reads

Re-executing this study does not inherit independent oracle agreement merely because the hash matches the documented example.

  • The in-memory DIRECT and file-based examples are in the Quickstart.
  • Turning result.json into a summary projection is covered in CLI.
  • The workbench shows the same result interactively: see the Workbench overview.