Skip to main content

A hydrological model driver framework for coupling models with UQPyL

Project description

English | 简体中文 | 中文文档

HydroPilot

A configuration-first orchestration framework for hydrological model calibration, evaluation, and optimization.

HydroPilot turns the repetitive glue code around hydrological modeling into a reusable workflow: parameter mapping, input writing, model execution, result extraction, objective evaluation, and run reporting. The core is model-agnostic. Built-in templates give you shorter, model-specific configuration for supported models.

Current status

What is available today:

  • version: general — model-agnostic workflow mode
  • version: swat — template for SWAT 2012
  • version: xaj — template for XAJ (Xinanjiang)
  • readers: text, csv
  • writers: fixed_width, csv
  • subprocess-based model execution
  • built-in and external evaluation functions
  • SQLite and CSV run reporting
  • UQPyL integration

CLI entry points:

  • hydropilot-validate — validate a configuration
  • hydropilot-test — run one configuration test
  • hydropilot-apply — apply parameters to a project copy
  • hydropilot-run — single-run YAML entry point

Public Python API:

  • SimModel — main runtime entry point
  • BatchRunResult — batch evaluation result
  • UQPyLAdapter — bridge to UQPyL optimization

Planned, not yet available:

  • APEX
  • HBV
  • VIC
  • HEC-HMS

Installation

Requires Python 3.10+.

pip install hydropilot

For local development:

pip install -e .
pip install -e .[dev]

With UQPyL integration:

pip install -e .[uqpyl]

Quick start

Validate a configuration

hydropilot-validate path/to/config.yaml

Test a configuration

hydropilot-test path/to/config.yaml

Runs one deterministic parameter vector through the full runtime, forces parallel = 1, keeps the runtime project copy, and writes test-report.md under the run archive.

Apply parameters to a project

hydropilot-apply path/to/apply.yaml

Run from a YAML definition

hydropilot-run path/to/run.yaml

Executes one parameter vector described by a run YAML file. It's a single-run entry point — it doesn't manage full experiments.

Evaluate parameter vectors with SimModel

import numpy as np
from hydropilot import SimModel

X = np.array([
    [50.0, 0.5, 100.0],
])

with SimModel("examples/test_monthly.yaml") as model:
    result = model.run(X)
    print(result.objs)

Use with UQPyL

from hydropilot.integrations import UQPyLAdapter

with UQPyLAdapter("examples/test_daily.yaml") as adapter:
    result = adapter.evaluate(X)
    print(result.objs)
    print(result.cons)

Support matrix

Capability Status
General configuration mode (version: general) Available
SWAT 2012 template (version: swat) Available
XAJ template (version: xaj) Available
Fixed-width parameter writing Available
CSV parameter writing Available
Text-based series extraction Available
CSV series extraction Available
Subprocess runner Available
SQLite + CSV reporting Available
UQPyL adapter Available
hydropilot-validate Available
hydropilot-test Available
hydropilot-apply Available
hydropilot-run Available
APEX template Planned
HBV template Planned
VIC template Planned
HEC-HMS template Planned

Documentation

License

MIT

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

hydropilot-0.1.3.tar.gz (124.0 kB view details)

Uploaded Source

Built Distribution

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

hydropilot-0.1.3-py3-none-any.whl (128.8 kB view details)

Uploaded Python 3

File details

Details for the file hydropilot-0.1.3.tar.gz.

File metadata

  • Download URL: hydropilot-0.1.3.tar.gz
  • Upload date:
  • Size: 124.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hydropilot-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6992440c3480c49659646efb96773e11d3bf4167f8272ab17682da7398c92649
MD5 a87bde96e2ec65d816e4e39765076cab
BLAKE2b-256 c19842c538801c30e771fcef0f5d6e1e74e1d9f995d05138b87fa87fcb4ad9ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for hydropilot-0.1.3.tar.gz:

Publisher: release.yml on smasky/hydroPilot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hydropilot-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: hydropilot-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 128.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hydropilot-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3be230c733768d484b0eda480b988f749705e2b8b486c02b85de7b383dce6374
MD5 8c2cb9bbbc4f99459a14ce026fd71406
BLAKE2b-256 04f58788c98caa82851eac2609607cfe6c1a4c160bce03043c345745a082afe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hydropilot-0.1.3-py3-none-any.whl:

Publisher: release.yml on smasky/hydroPilot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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