Configuration Reference#
Reference for every YAML key consumed by the three acestor pipelines. Each field lists type, default, and why it exists. Source of truth is the configs.py module for each pipeline — this document is derived from those dataclasses.
Three pipelines are documented:
dengue_prep— buildsprepared_data/from raw case + weather sources.dengue— trains models, computes thresholds, renders maps and the HTML brief.dengue_downscale— takes parent-level predictions from adenguerun and splits them onto child regions.
Each pipeline has a pipeline.name matching one of the above; the loader dispatches on it.
Common top-level keys (state, pipeline, run, logging, storages, email) are shared and documented once at the end.
1. dengue_prep#
Config sample: configs/ka_district_prep.yaml, configs/od_district_prep.yaml.
Dataclasses: pipelines/dengue_prep/configs.py.
data.prepared_data#
Where prep writes its outputs. Consumed by the downstream dengue pipeline via the same block.
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Root folder for the per-region-type subfolders ( |
data.case_download#
Fetches raw line-list files from a case source.
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Master switch. When false, prep assumes files are already staged under |
|
str |
|
Selects a case-source plugin: |
|
str |
|
Legacy path used only when |
|
str |
|
Root path or URL the source plugin reads from. |
|
str |
plugin-specific |
For |
|
str |
|
Dashboard disease slug. |
|
str |
|
Dashboard: inclusive start of the fetch window (YYYY-MM-DD). |
|
str |
|
Dashboard: inclusive end. Blank tracks the current run. |
|
int |
plugin default |
Dashboard pagination window; smaller values ease per-request payload. |
|
int |
plugin default |
Dashboard: how many days before |
|
str |
|
Restrict the dashboard fetch to a single region (debugging). |
|
bool |
|
Turn off to force re-download on every run. |
|
str |
|
Local cache root. |
|
str |
|
|
|
str |
|
Absolute or relative filesystem root when |
|
str |
|
S3 backend location. |
|
list[str] |
|
Explicit list of files a plugin should ingest. |
|
str |
|
Relative destination under the run artifact root. |
data.case_parse#
Parses raw case files into cases_daily.csv.
key |
type |
default |
why |
|---|---|---|---|
|
list[str] |
required |
Non-empty list of region tiers to emit; each becomes a subfolder under |
|
str |
|
Inclusive start filter on the case date. Empty → no lower bound. |
|
str |
|
Inclusive end filter. Empty → no upper bound. |
|
str | list[str] |
|
Candidate column(s) for the case date. Parser tries in order; first one that parses cleanly wins. String is accepted for back-compat. |
|
str |
|
When set and present in the file, this column is trusted verbatim as the resolved |
|
str |
|
Column with an LGD code. Present → used to resolve to |
|
str |
|
Fallback spatial-join latitude column. |
|
str |
|
Fallback spatial-join longitude column. |
|
int |
|
0-indexed row containing headers; use |
|
list[dict] |
|
Row filters: each entry |
|
dict |
disabled |
Google-geocode + spatial-join resolver; see below. |
data.case_parse.geocoding#
Runs only when a row has neither LGD code nor region_id_column and only free-text address fields are usable.
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Opt in explicitly. |
|
list[str] |
required when enabled |
Columns concatenated to build the primary query. |
|
list[str] |
|
Second-pass columns when the first fails validation. |
|
str |
|
On-disk memoisation of Google responses. |
|
list[str] |
|
Extra tokens stripped before validation. |
|
bool |
|
Drop rows whose first address field is empty. |
|
bool |
|
Drop rows whose Google response fails token validation. |
|
list[4] |
|
|
|
list[str] |
|
Substrings that must appear in the formatted address; hard reject. |
data.weather_download#
Fetches gridded weather. Two source families: CDS (reanalysis-era5-land) and openmeteo.
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Master switch. |
|
str |
|
Plugin selector: |
|
str |
|
Backend for the filesystem plugin: |
|
str |
|
Unit the source returns ( |
|
str |
|
Unit the source returns ( |
|
str |
|
Local NetCDF cache path; empty → plugin default. |
|
str |
|
Where per-region CSVs land after parsing. |
|
list[str] |
env |
CDS variable names. |
|
list[4]|null |
|
|
|
str |
|
Subfolder under the geojson root used to compute bounds. |
|
list[str] |
|
Short names of NetCDF variables the parser extracts. |
|
float |
|
Max distance from a region’s boundary a grid point may lie to still be attributed. |
|
float |
|
Snap auto-computed bounds to this grid (0.25 for ERA5, 0.1 for ERA5-Land). |
|
str |
|
Inclusive fetch start. |
|
str |
|
Inclusive end. Empty → run_date. |
|
bool |
|
Turn off to force re-download. |
|
str |
|
Local cache root. |
|
str |
|
|
|
str/list |
|
Location knobs mirroring |
data.weather_parse#
Daily aggregation of downloaded weather.
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Region tier the daily rows are keyed to. |
|
list[str] |
|
Variables to aggregate. |
|
list[dict] |
|
Per-variable daily aggregation ops. |
data.geojson#
key |
type |
default |
why |
|---|---|---|---|
|
str |
— |
Root of the geojson layer; subfolders per region type. |
data.date_range.start#
key |
type |
default |
why |
|---|---|---|---|
|
str |
— |
Global anchor for the prep window; passed to plugins that need a fetch start when |
2. dengue#
Config sample: configs/ka_district.yaml, configs/gba_zone.yaml.
Dataclasses: pipelines/dengue/configs.py.
data.prepared_data#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Root of the prep output the pipeline reads. |
|
str |
|
Subfolder to load from ( |
data.case_parse#
key |
type |
default |
why |
|---|---|---|---|
|
list[str] |
required |
Non-empty, no duplicates. Order matters: the last entry drives cutoffs and the sampled CSV that maps/thresholds consume. |
|
str |
required |
Inclusive start. |
|
str |
required |
Inclusive end; empty string → parser uses today. |
data.case_sufficiency#
Early abort when the parsed case data is too thin to model.
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Turn off to run the pipeline on tiny/synthetic inputs. |
|
int |
|
Row-count floor. |
|
int |
|
Region-count floor. |
|
int |
|
Temporal span floor. |
|
str |
|
Which column carries the case count. |
|
str |
|
Empty → derived from |
|
str |
|
Empty → derived from |
|
int |
|
Max acceptable gap between |
cutoff#
key |
type |
default |
why |
|---|---|---|---|
|
int |
|
Minimum regions with observations before the case cutoff is honoured. |
|
int |
|
Same, for weather. |
thresholds#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Region tier the thresholds are computed for. |
|
list[str] |
|
Which methods to compute; each writes its own threshold rows. Registered names: |
|
str |
|
Zone-labelling scheme: |
|
list[float] |
|
For |
|
int |
|
Prev-N-weeks window. |
|
int | null |
|
Historical lookback in years. |
|
list[int] |
|
Years dropped from the historical baseline (COVID gaps). |
|
list[int] |
|
Empty → no restriction; non-empty → whitelist. |
|
list[float] |
|
Sigma multipliers for the WHO/ICMR banding. |
|
int |
|
|
|
int |
|
|
|
float |
|
|
|
float |
|
|
|
dict |
inherit |
Per-method overrides for |
model#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Region tier the models train and predict on. |
|
list[str] |
|
Subset of |
|
str |
|
Registered ensemble strategy or |
|
str |
|
|
|
bool | str |
|
|
|
int |
|
Optuna trials when tuning runs. |
|
bool |
|
Emit per-model intermediate CSVs under |
|
list[str] |
|
Columns fed to the tabular models. |
|
list[int] |
|
Training years dropped. |
|
list[int] |
|
Empty → no restriction; non-empty → whitelist. |
|
list[int] |
|
Temperature lag weeks fed as features. |
|
list[int] |
|
Precipitation lags. |
|
list[int] |
|
Dewpoint lags. |
|
list[int] |
|
Case-count lags (autoregressive). |
|
float | null |
|
Upper clip in recursive forecast: cap each step at |
|
bool |
|
Persistence: freeze weather/exogenous lag features at the forecast origin for every future week. Matches upstream vbd-modelbench. Set false only for hindcasts that deliberately leak future weather. |
model_configs.<model>#
Per-model overrides. Keys mirror the model block: data_features, years_to_exclude, years_to_include, tune, n_trials, debug, clip_multiplier, freeze_weather_at_origin, and the lag.* sub-keys. Unspecified keys inherit from model. Any key not listed in model.models is rejected at build time (fail-fast; the error message names both the YAML fix and the --set CLI trap that re-creates a removed key).
model_configs.timesfm#
TimesFM 2.5 foundation model settings. All optional — omit the whole block and defaults apply.
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
HF repo the checkpoint is pulled from. |
|
str |
env |
Must be a full 40-hex commit SHA. Tags/branches are rejected — checkpoints can move under a floating ref. |
|
str |
|
Project-local, gitignored. |
|
int |
|
Truncate each region’s series to this many trailing weeks before inference. |
|
int |
|
Torch batch size inside the worker. |
|
int |
|
Regions with fewer weeks of history are skipped (all-zero regions still get zero predictions). |
|
float |
|
Subprocess wall-clock timeout. |
|
int |
|
Cap on regions per worker call — bounds worker memory. |
assess#
key |
type |
default |
why |
|---|---|---|---|
|
int |
— |
Denominator for assess ratios. Keys recognised: |
maps#
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Set |
|
str |
|
Where PNG choropleths land. |
|
str |
|
Suptitle line 1; line 2 is the prediction date. |
report#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Report |
|
str |
|
Which prediction feeds maps and the report. Accepts |
|
str |
|
Threshold method the report tables and headline bands use. |
report_distribution#
Free-form dict rendered into the report header (system_name, organization, state, region, department, contact_email, footer_note). All fields are strings; empty strings are omitted.
3. dengue_downscale#
Config sample: configs/ka_district_to_subdistrict.yaml.
Dataclasses: pipelines/dengue_downscale/configs.py.
run#
key |
type |
default |
why |
|---|---|---|---|
|
str |
— |
Run ID whose parent-level predictions are downscaled. Sentinel |
downscale#
key |
type |
default |
why |
|---|---|---|---|
|
str |
required |
Singular region tier the source predictions live at (e.g. |
|
str |
required |
Singular child tier to split onto (e.g. |
|
int |
|
Look-back window (weeks of child-level cases) used to derive per-child shares of parent cases. |
|
int | null |
|
Longer window tried when the primary window has zero cases across all children of a parent (issue #86). Must strictly exceed |
|
str |
|
Child-level case history used to derive shares. |
|
str |
|
Root of the geojson layer used for the child map. |
|
str |
|
|
thresholds#
Same schema as the dengue pipeline’s thresholds block, applied to child-level predictions. method_configs.<name> overrides are supported identically.
downscale_maps#
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Set false to skip child-level PNG choropleths (interactive maps still render). |
|
str |
|
Where PNGs land. |
|
str |
|
Suptitle. |
Common top-level keys#
state#
Two-letter state slug used in artifact paths and report copy. Free-form.
pipeline#
key |
type |
default |
why |
|---|---|---|---|
|
str |
— |
Selects the pipeline: |
|
str |
|
Human title used in the report header when |
|
str |
|
Alternate hint used the same way as |
run#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Anchor date for the pipeline. Blank tracks wall clock. |
logging#
key |
type |
default |
why |
|---|---|---|---|
|
str |
|
Python logging level ( |
storages.artifacts#
Where the pipeline writes per-run artifacts.
key |
type |
default |
why |
|---|---|---|---|
|
str |
— |
|
|
str |
— |
Root path when |
|
str |
— |
Bucket / key prefix when |
email#
key |
type |
default |
why |
|---|---|---|---|
|
bool |
|
Turn on to have the report step send the rendered HTML via SMTP. Other keys ( |