User Guide#
This guide covers running the Adapt pipeline, using the dashboard, understanding outputs, and configuring the system. For installation see Installation.
Quick start#
Open two terminals, both with the conda environment active.
Terminal 1 — start the pipeline:
adapt run-nexrad --radar KLOT --base-dir ~/adapt_output
Terminal 2 — open the dashboard:
adapt dashboard --repo ~/adapt_output
Click Show Latest in the dashboard to see the most recent processed scan.
Press Ctrl-C in Terminal 1 to stop the pipeline.
Running the pipeline#
Real-time mode#
Continuously downloads and processes new scans as they are released:
adapt run-nexrad --radar KLOT --base-dir ~/adapt_output
Replace KLOT with any 4-letter NEXRAD site code (e.g. KDIX, KFTG, KAMX).
The pipeline runs until you press Ctrl-C.
Historical mode#
Process a fixed time window from the archive:
adapt run-nexrad --radar KLOT --base-dir ~/adapt_output \
--start-time 2025-03-05T18:00:00 \
--end-time 2025-03-05T20:00:00
If --start-time or --end-time is provided, historical mode is selected
automatically — you do not need --mode historical.
Using a custom configuration#
Generate a template, edit it, then pass it as the first argument:
adapt config my_config.yaml # generate template with all options
adapt run-nexrad my_config.yaml --radar KLOT --base-dir ~/adapt_output
Verbose logging#
Add -v to see debug-level output, including per-scan timing and any errors:
adapt run-nexrad --radar KLOT --base-dir ~/adapt_output -v
Configuration#
Running without a config file uses built-in defaults. Key parameters:
Parameter |
Default |
Description |
|---|---|---|
|
|
Grid points (nz, ny, nx) |
|
|
Horizontal extent from radar |
|
|
Reflectivity threshold for cell detection |
|
|
Minimum cell size in grid points |
Generate a fully documented template with all available options:
adapt config my_config.yaml
Dashboard#
Launch in a second terminal while the pipeline is running:
adapt dashboard --repo ~/adapt_output
The dashboard is read-only — it does not affect the pipeline.
Controls#
Control |
Description |
|---|---|
Show Latest |
Jump to the most recent processed scan |
◄ / ► |
Step backward or forward one scan at a time |
Show Loop |
Animate the last N scans; set N and frame interval (ms) |
Variable |
Switch displayed field: reflectivity, ZDR, velocity, spectrum width |
Min / Max |
Set the colour-scale range; values outside are masked |
Proj steps |
Number of projected future positions to overlay (0 = show all) |
Hover |
Mouse over any cell to see its statistics in the side panel |
Basemap#
A background map overlay loads automatically if contextily is installed
(pip install "arm-adapt[maps]"). The first load fetches tiles from the
internet and may take a few seconds.
Outputs#
All pipeline artifacts are written under --base-dir:
~/adapt_output/
├── KLOT/
│ ├── nexrad/ # raw Level-II files from AWS
│ ├── gridnc/
│ │ └── 20250305/
│ │ └── KLOT20250305_183210_V06.nc # regridded Cartesian NetCDF
│ └── analysis/
│ ├── 20250305/
│ │ └── KLOT_20250305_183210_analysis.nc # per-scan analysis
│ └── catalog.db # SQLite: cell records, tracking events
├── adapt_registry.db # run registry
└── runtime_config_<run-id>.json # configuration snapshot for this run
Analysis NetCDF#
Each scan produces one NetCDF file containing:
Regridded radar fields (reflectivity, ZDR, velocity, etc.)
Cell label mask
Projected future cell positions (optical flow)
Catalog database#
catalog.db is a SQLite database with WAL journalling. Query it directly or
use the DataClient API:
from adapt.api import DataClient
client = DataClient("~/adapt_output")
df = client.latest("cells_by_scan", radar="KLOT")
Troubleshooting#
No data in dashboard after starting#
The first scan takes longer (regridding + initial cell detection). Wait 30–60 seconds then click Show Latest.
No *_analysis.nc for today#
The pipeline has not produced output yet. Check the Log tab in the dashboard for errors.
Basemap not loading#
contextily requires internet access to fetch map tiles. The first load for a
new area is slow. Check your network connection. Install if missing:
pip install "arm-adapt[maps]"
Pipeline error on first scan#
Re-run with -v to see the full traceback:
adapt run-nexrad --radar KLOT --base-dir ~/adapt_output -v
adapt: command not found#
Activate the conda environment:
mamba activate adapt_env