Skip to main content

A verification pipeline for evaluating models and forecasts.

Project description

PyPI Docs latest codecov CI Docs build

Veriflow

A reproducible verification pipeline for evaluating model outputs and forecasts.

  • 📥 Fetching data
  • 🧮 Computing scores
  • 📝 Writing results

Schematic overview of veriflow pipeline

Key features

  • ✅ Full control over the verification pipeline via configuration
  • ✅ Native integration with Delft-FEWS
  • ✅ Native integration with local and remote (S3) Zarr
  • ✅ Builds on scores for computation of scores. This package has extensive functionality, and it's documentation is world-class.
  • ✅ Extensible with your own (private) datasources, scores and datasinks
  • ✅ Optimized internal datamodel for efficient computation

Installation

Install from PyPI:

pip install veriflow

Or using uv:

uv pip install veriflow

See CONTRIBUTING.md for development setup.

Running a verification pipeline with veriflow

The below example shows you the minimal code to run a verification pipeline.

from veriflow import run_pipeline
from pathlib import Path

# Create your config and point to the file
path_to_config = Path("./config.yml")

# Run your verification pipeline in just one line of code
run_pipeline((path_to_config, "yaml"))

If it's your wish to further analyze the input data and verification results in an interactive Python session, assign the returned OutputDataset from run_pipeline to a Python variable. For each each configured verification_pair*, the output_dataset contains an xarray.Dataset with the results. By default, the input data will be included in the output.

*a verification pair is definition of two datasources (e.g. observed and simulated) for one pysical variable (e.g. discharge or temperature)

# Alternatively, assign the returned `output_dataset` to a Python variable.
output_dataset = run_pipeline((path_to_config, "yaml"))

# List the verification_pairs in the output_dataset
verification_pairs = output_dataset.verification_pairs

# Retrieve the verification results for a verification_pair from the output_dataset
first_verification_pair = verification_pairs[0]
dataset = output_dataset.get(first_verification_pair) # An instance of xarray.Dataset

For more advanced documentation, please refer to our user guide.

👥 Who Is This For?

This project is aimed at anyone who's interested in assessing model and forecast quality in an easy and reproducible way, like:

  • operational forecasters
  • model developers
  • researchers and data-scientists

Why this package?

Verification pipelines are complex: metrics require specialized computation, data volumes may exceed memory, and sources/destinations can vary widely. This package simplifies verification by handling the entire pipeline via a single configuration file. It's reliable (tested and versioned), transparent (fully documented), reproducible, and flexible—extensible with custom datasources, scores, and datasinks. Any pipeline created is immediately transferable to other users and systems.

So wether you're working on model development or operational forecasting: this tool can help you build robust and reproducible verification pipelines.

Technical features

  • Builds on Xarray for handling multidimensional data.
  • Supports Zarr for cloud-friendly data storage
  • Supports Dask for parallel and lazy computation

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

veriflow-0.3.0.tar.gz (65.6 kB view details)

Uploaded Source

Built Distribution

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

veriflow-0.3.0-py3-none-any.whl (69.0 kB view details)

Uploaded Python 3

File details

Details for the file veriflow-0.3.0.tar.gz.

File metadata

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

File hashes

Hashes for veriflow-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8a5b1c7c6da50247fd7bfc9b51e19f3b4c4374fd346383284a2f8ff98c45584c
MD5 559a67c698c84fcffc3189bbb4f76dca
BLAKE2b-256 456b3e68afebb0522f7ca6b4d887e08f7df9af2bebe1f4f1152113e2a9c556af

See more details on using hashes here.

Provenance

The following attestation bundles were made for veriflow-0.3.0.tar.gz:

Publisher: publish.yml on Deltares/veriflow

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

File details

Details for the file veriflow-0.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for veriflow-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a021c16cbce2362d5c6192cd8da5e3f57516903020b7c46dd8b20c074fe1b21
MD5 96419eb3f0e2f8ed87dcfda12e05fead
BLAKE2b-256 42afb9354a9a4a6b0fd0d16c670fd8125a5c4782ca0f6ea625da206745796870

See more details on using hashes here.

Provenance

The following attestation bundles were made for veriflow-0.3.0-py3-none-any.whl:

Publisher: publish.yml on Deltares/veriflow

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