Skip to content

Learn · Tutorial

7. Provenance and source choice

Concept

Connect the readable statement to the evidence underneath it: record what was observed, which interpretation revision was used, and what the analysis changed. Run the shared setup first.

Tiny example

description = data.describe("temperature", source="prism")
print(description["current_serving_revision"], description["live_health"])

Explanation

The catalog describes supported access; it does not prove a server is healthy now. A frozen fixture's checksum identifies its bytes. Providers can differ in units, grids, methods and revisions even when the noun name is the same. Compare them in Library.

Keep the evidence questions separate: retrieval shows that bytes were obtained; structural checks show how an adapter interpreted them; numerical and visual review support a bounded plausibility claim. None alone establishes provider accuracy or fitness for a decision.

Try it / worked example

import hashlib
import json

provenance_path = path.with_suffix(".provenance.json")
provenance = json.loads(provenance_path.read_text())
print("Fixture SHA-256:", hashlib.sha256(path.read_bytes()).hexdigest())
print(provenance)
cube.mean(("y", "x")).plot()
plt.show()

The validation report defines acceptance checks; printing a checksum alone is not validation. Save your query, code revision, environment and outputs alongside source evidence.

What to learn next

Run a vignette · Provenance API · Custom nouns · Custom verbs