Skip to main content

preFLEXPART

PyPI version Licence

⚠️ Moved to flexprep

This project has been renamed to flexprep.

  • Install: pip install flexprep
  • Imports changed: preflexpart → flexprep

This preflexpart package is kept only as a transition release.

WARNING:

This project is in BETA and under active development. Interfaces and functionality are subject to change.

preFLEXPART is a Python toolkit to retrieve and preprocess ECMWF IFS fields for the Lagrangian particle dispersion model FLEXPART.

It uses ECMWF’s earthkit-data library to load meteorological GRIB data into familiar xarray/numpy arrays for computation, preserves GRIB metadata, and can write the results back to GRIB2.

Compatibility

Target model: FLEXPART V10

Install the latest release from PyPI

# pip
pip install preflexpart

# or poetry
poetry add preflexpart

At a glance

  1. Retrieve IFS forecasts

  2. Preprocess for FLEXPART V10

    • De-accumulates precipitation, radiation, and fluxes
    • Converts etadot → omega (Pa s⁻¹)
  3. Write GRIB2

    • Preserves/overrides GRIB metadata as needed
    • Ensures all fields are written as GRIB2

Documentation

See the docs/ folder for detailed information:

Changelog

See CHANGELOG.md for version history.

Running Tests

To run the full test suite:

git clone https://gitlab.phaidra.org/flexpart/preflexpart.git
cd preflexpart
poetry install --with dev
poetry run pytest

Feedback

Found a bug or have feedback? Please open an issue.

Roadmap / TODO

  • Publish a hosted documentation site (e.g., Read the Docs or GitHub Pages)
  • Add Copernicus Data Store (CDS) as a data source
  • Find suitable package name (flexprep?)

Testing the preFLEXPART Package

This guide explains how to test the preFLEXPART pipeline using example scripts included in the repository. Each example demonstrates a full workflow: loading, preprocessing, and writing FLEXPART-ready GRIB2 files.

1️. Install the package

Option A — From PyPI

pip install preflexpart==0.1.3-rc4

2️. Get the example scripts

Clone the repository to access the example workflows.

git clone https://gitlab.phaidra.org/flexpart/preflexpart.git
cd preflexpart

3. Run an example pipeline

Each example runs the preFLEXPART pipeline end-to-end.

Data source Command Notes
🧪 Bundled test data python examples/run_pipeline_local.py tests/data/test_sources_raw_ifs.tar.gz Works offline using a small bundled dataset
💾 Local GRIB files python examples/run_pipeline_local.py /path/to/grib_dir Use your own GRIB directory
☁️ ECMWF MARS archive python examples/run_pipeline_mars.py --date 2025-09-29 --time 12 --step "1/to/2/by/1" --max-level 137 Requires ECMWF MARS credentials (.ecmwfapirc)

3️. Check the outputs

After running a pipeline, the processed GRIB2 files are written to ./out_grib2/.

Each file corresponds to one forecast step (e.g. dispf2025072912).

Found a bug or have feedback? Please open an issue or contact nina.burgdorfer@meteoswiss.ch

Metadata

Release files for preflexpart 0.1.3

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

Source distribution (sdist)

Source distribution for preflexpart 0.1.3
File Size Uploaded
preflexpart-0.1.3.tar.gz 16.4 kB Details

Built distribution (wheel)

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

Total release size: 38.2 kB

Release files / preflexpart-0.1.3.tar.gz

Download URL preflexpart-0.1.3.tar.gz
Size 16.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8140d3df7528818e13e84f2893fdb75974b9c7da0de5e3671dc77d8f18f38b28
BLAKE2b-256 checksum
How to use checksums
a1d37b55e797e4256404ff528a5e29626aedaa4382d3c3d21c8aa6bd41bb8e43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.11.9 Linux/5.14.21-150500.55.97_13.0.78-cray_shasta_c

Release files / preflexpart-0.1.3-py3-none-any.whl

Download URL preflexpart-0.1.3-py3-none-any.whl
Size 21.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b76750d6ecfd903fe9fcbb15b3e27cb284702a6830598b73943c75898c2c9689
BLAKE2b-256 checksum
How to use checksums
80581002cbd3a6c30156359f8ffa2b4b89df588c30c1a9d91d088df6d541d116
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.11.9 Linux/5.14.21-150500.55.97_13.0.78-cray_shasta_c
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