preFLEXPART
⚠️ 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
-
Retrieve IFS forecasts
-
Preprocess for FLEXPART V10
- De-accumulates precipitation, radiation, and fluxes
- Converts
etadot→omega(Pa s⁻¹)
-
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)
| File | Size | Uploaded | |
|---|---|---|---|
| preflexpart-0.1.3.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|