Program tracks2bufr is based on Cyclops software. It can be used exclusively on ATOS to produce Tropical Cyclone tracks forecasts BUFR files. The program performs the following steps:
- Takes start date and end date as an input from a user;
- Copies tar archives from ECFS for the requested period of time;
- Extracts basins text files, converts tracker text to per-member FM files;
- Assembles FeatureList FM files for every detected storm;
- Converts FeatureList FM files to BUFR files;
- Merges all individual storm BUFR files to a single BUFR.
The program uses a Python virtual environment installed on my account. All ECMWF group members have permission to execute this environment. If you wish to use your own environment, please follow these steps.
Note: If you wish to use conda, tykky, or similar tools instead of Python venv, please feel free to do so. However, I cannot guarantee everything will work smoothly in this case, as using e.g. conda resets all the modules.
To install Cyclops, you should be a part of the ECMWF organisation on GitHub:
- Go to the directory where you store git repos, e.g.:
cd $PERM/git/.
- Clone the repo:
git clone git@github.com:ecmwf/cyclops.git
- We need Python ≥3.11, so first install a newer Python:
module avail python
module load python3/new #as of Jun 2026 it installs python3.13
- Create a virtual environment:
python3 -m venv cyclops_env
source ./cyclops_env/bin/activate
- Go to the cloned git repo and install it as a module:
cd $PERM/git/cyclops
pip install --upgrade pip
pip install -e .
- Check if it works:
cyclops-tracks-to-fm --help
Complete the following steps:
- Go to your $HOME on Atos:
cd $HOME
- Clone this repo:
git clone git@github.com:alinalernervilu/tracks2bufr.git
- Check if the wrapper works:
./tracks2bufr --help
The output should be:
Usage: sbatch tracks2bufr STREAM STARTDATE ENDDATE
STREAM must be either ifs or aifs
STARTDATE and ENDDATE in format YYYYMMDDHH
Example: sbatch tracks2bufr 2025041500 2025042918
- Open the wrapper tracks2bufr:
vi tracks2bufr
and edit the following paths if needed:
###====== CHANGE THESE DIRECTORIES IF NEEDED ======###
PYENV=/perm/ecm4841/my_envs/cyclops_env/bin/activate
# CDIR is the directory where tracks2bufr is launched from.
CDIR="$PWD"
SDIR="${CDIR}/scripts"
# DDIR/ODIR are derived automatically from stream selection:
# ifs -> ${SCRATCH}/cyclops/data/ifs and ${SCRATCH}/cyclops/output/ifs
# aifs -> ${SCRATCH}/cyclops/data/aifs and ${SCRATCH}/cyclops/output/aifs
###================================================###
- Run the program for the dates you chose. I recommend using
sbatch, especially if you want to run it for a longer period. Also, check and edit#SBATCHheaders before running to make sure everything is set up as you prefer.
Example:
sbatch tracks2bufr ifs 2025041500 2025042918
Generating 1 month's worth of BUFR files will take approximately 5 hours.
You will find the output under $SCRATCH/cyclops/output/ifs/bufr or $SCRATCH/cyclops/output/aifs/bufr depending on selected stream.
Or in another directory that you specified in the script as $ODIR.