Repository Client API#

Read-only interface for querying ADAPT pipeline output from a repository. Initialise RepositoryClient with the repository root path; it auto-discovers runs, radars, scans, and data items through the two-tier database system (root-level registry + per-radar catalog).

from adapt.api import RepositoryClient, FilterSpec

client = RepositoryClient("/data/radar_output")

# List all runs
for run in client.runs():
    print(run.run_id, run.status)

# Fetch tracks for a run
tracks_df = client.tracks(run_id)

# Filter to severe cells only
severe = client.select(run_id, FilterSpec(max_refl_min_dbz=55.0))

# Load all products for one scan
bundle = client.scan_bundle(scan_time, radar="KDIX")

# Raw SQL escape hatch (DuckDB over Parquet)
df = client.query("SELECT * FROM analysis2d WHERE refl_max > 40")

RepositoryClient#

Domain Objects#

Immutable dataclasses returned by the client methods.

FilterSpec#

Immutable filter compiled to a SQL WHERE clause by select().