Skip to main content

DAPyr: (D)ata (A)ssimilation (Py)ton (R)elease

DAPyr (pronounced "dapper") is a Python package for running, testing, and experimenting with data assimilation methods using Lorenz models. DAPyr supports quick configuration and running of experiments, allowing one to setup and run data assimilation cycles in as little as two lines. In addition, DAPyr utilizes numbalsoda and numba for model integration, allowing for faster runtimes.

For a in-depth tutorials and explanations, see the documentation.

DAPyr currently supports the following:

secret readme edit

Models:

  1. Lorenz 1963
  2. Lorenz 1996
  3. Lorenz 2005

Data Assimilation Methods:

  1. Ensemble Square Root Filter (Whitaker and Hamill, 2002)
  2. Localized Particle Filter (Poterjoy, 2022)

Measurement Operators:

  1. Linear
  2. Quadratic
  3. Logarithmic

Installation

Pip:

python -m pip install DAPyr

Basic Usage

import DAPyr as dap
import numpy as np

# Use the Expt class to initialize an new experiment and calculate all necessary initial states
# Experiment will use Lorenz 63 (model_flag: 0), run for 300 time steps, and use the EnSRF method (expt_flag: 0)
expt = dap.Expt('Basic_L63', {'model_flag': 0, 'expt_flag': 0, 'T': 300})

# Run the experiment using the runDA function
dap.runDA(expt)

# Access RMSE and spread using the rmse and spread attributes
print('Avg. RMSE: {:.3f}'.format(np.mean(expt.rmse)))
print('Avg. Prior Spread: {:.3f}'.format(np.mean(expt.spread[:, 0])))
print('Avg. Posteriod Spread: {:.3f}'.format(np.mean(expt.spread[:, 1])))

#Save the experiment to filesystem using saveExpt, the file will be called it's experiment name
dap.saveExpt('./', expt)

#Load in previous experiments using loadExpt
expt2 = dap.loadExpt('./Basic_L63.expt')

For more examples, see tutorial.ipynb in src.

Citation

Please cite this repository DOI if you use DAPyr in your research publications or presentations.

Contributions

Many thanks to the following for their contributions to DAPyr:

  • Henry Santer (LPF Python implementation and many, many bug discoveries)
  • Raelynn Wonacott (For advice on speeding up model integration using numba)

Acknowledgement

The development of this software is supported by the following funding sources:

  • NSF CAREER Award #1848363

Metadata

Release files for DAPyr 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DAPyr 1.0.0
File Size Uploaded
dapyr-1.0.0.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for DAPyr 1.0.0
File Interpreter ABI Platform
dapyr-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / dapyr-1.0.0.tar.gz

Download URL dapyr-1.0.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
54b0fc010254e56c1602db02492999ec6ba29b6d23764db4cc34abbb5cb0ab72
BLAKE2b-256 checksum
How to use checksums
b32f556c96ced942c8c80eeea5207888b0fb618a1498545262df1e0af74285e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 18, 2025.

Transparency log

Release files / dapyr-1.0.0-py3-none-any.whl

Download URL dapyr-1.0.0-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9991d9647b02a10dec50d3ad9e7c6a4649acda3b6d254e1a6a4cd1c611b2b8cd
BLAKE2b-256 checksum
How to use checksums
20dd42b43df87da2da8ae142b95c8f41e335579452d5c30d463cd34136ea3d64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page