Skip to main content

DA-STDK: Data-adaptive spatio-temporal distributional prediction (cluster-adaptive bases, conformal calibration)

Project description

DA-STDK

PyPI Python Tests Code Quality

Reference code for cluster-aware conformal calibration in spatio-temporal distributional prediction.

  • Cluster-adaptive spatial bases — centers and scales initialized from sampling density, so capacity follows heterogeneous observation patterns instead of a fixed grid.
  • Cluster-aware conformal calibration — interval widths are calibrated within spatial clusters, with a global fallback when local samples are scarce.

Benchmarks in this repo use the KAUST spatio-temporal datasets (scenarios 2a/2b).

Architecture

Model backbone

Cluster-adaptive spatial basis, temporal basis, and covariates are concatenated and passed through a shared MLP trunk. Quantile heads predict multiple levels; cluster-aware CQR produces calibrated prediction intervals.

Install

Python 3.10+ and Poetry are enough for most use:

poetry install --with dev

Optional: Conda env via bash envs/conda/build_conda_env.sh then conda activate st-dadk.

pip install da-stdk   # after a PyPI release
# or locally:
pip install -e .
import da_stdk
from da_stdk.models import STDKMLP, create_model
from da_stdk.data.kaust_loader import load_kaust_csv_single

Run

Single training run

poetry run python scripts/train_default.py

KAUST benchmark (multiple scenarios / models)

make kaust
# or (train only, then analyze manually):
poetry run python scripts/run_kaust_data.py --config configs/config_default.yaml
poetry run python scripts/analyze_kaust_results.py --results_dir results/kaust_data_<timestamp>

make kaust runs all scenario×model combos and calls analyze_kaust_results.py when finished (--analyze). Use make kaust-dry to preview commands.

More scripts and flags: scripts/README.md.

Layout

Path Contents
da_stdk/ Models, training, data I/O, conformal utils, viz
scripts/ Training and experiment drivers
configs/ YAML configs
data/ KAUST CSVs (large; not on PyPI)

Dev

make test          # pytest
make lint          # black, isort, mypy
pre-commit run --all-files

Citation

If you use this code, please cite:

Cluster-Aware Conformal Calibration for Spatio-Temporal Distributional Prediction Gooyoung Kim, Chae Young Lim, Wen-Ting Wang, Hao-Yun Huang, Wei-Ying Wu arXiv preprint (link forthcoming)

@misc{kim2026cluster,
  title        = {Cluster-Aware Conformal Calibration for Spatio-Temporal Distributional Prediction},
  author       = {Kim, Gooyoung and Lim, Chae Young and Wang, Wen-Ting and Huang, Hao-Yun and Wu, Wei-Ying},
  year         = {2026},
  note         = {arXiv preprint, forthcoming},
}

When the arXiv entry is available, add eprint, archivePrefix, and primaryClass (or url) to the BibTeX above.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

da_stdk-1.0.0.tar.gz (50.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

da_stdk-1.0.0-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file da_stdk-1.0.0.tar.gz.

File metadata

  • Download URL: da_stdk-1.0.0.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for da_stdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 acab73754f7189dae4481b42cfb2c0c52b40773f61c1aa6a04db357d947feb56
MD5 98155aaa9886c80138c0960154407a55
BLAKE2b-256 9add201c3eb69632e84c19d1f5eccc95bba5db8d64b341837f598b4102e230ae

See more details on using hashes here.

File details

Details for the file da_stdk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: da_stdk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for da_stdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 230ce9e8ae8480a3509a25f9998ee37905dff5639d5c4ea7b85fa44702fb097a
MD5 a8f7c4f6c9b8c80019b14e83f76a1f6f
BLAKE2b-256 2c7b4522ac0af377715efe9da4d8baa459f9fd877be336e8da58509e4e42f3c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page