Skip to content

PIKART-Catalog/PIKART-algorithm

Repository files navigation

PIKART: A Comprehensive Global Catalog of Atmospheric Rivers

The Potsdam Institute for Climate Impact Research (PIK) Atmospheric River Trajectories (PIKART) catalog records atmospheric rivers globally, from 1940 to 2023, at 0.5° spatial resolution and 6-hour temporal resolution. It was introduced in the following publication:

Vallejo‐Bernal, S. M., Braun, T., Marwan, N., & Kurths, J. (2025). PIKART: A comprehensive global catalog of atmospheric rivers. Journal of Geophysical Research: Atmospheres, 130(15), e2024JD041869. DOI: 10.1029/2024JD041869

This repository contains the scripts to compile version 1.0 of PIKART. Instructions to run each script can be found in the introductory section of each file.

PIKART's algorithm is coded in Python and Bash and compiled on Foote, the high-performance computer of the Potsdam Institute for Climate Impact Research in Germany.

IMPORTANT!

Python scripts were developed based on the spatiotemporal grid of ERA5 data in NetCDF format. Bash scripts were developed based on SLURM, the job scheduler and workload manager of Foote. The compilation of the PIKART catalog is parallelized by years. When compiling the PIKART catalog with a different input dataset, some lines might become incompatible and might need to be changed. Please proceed with caution and contact us if you need support!

Compilation Guide

To compile the PIKART V1.0 catalog, follow these steps:

Initial set-up

  1. Download the files of this repository to your local machine, preserving the folder structure.

  2. Install the pikart_v1.0 Anaconda environment by executing one of the following commands in your console/anaconda prompt:

    For Linux users:

    conda env create -f pikart_v1.0_linux.yml -n pikart_v1.0

    For Windows users:

    conda env create -f pikart_v1.0_windows.yml -n pikart_v1.0
  3. Activate the environment by executing:

    conda activate pikart_v1.0
  4. Set up the folder structure and parameterization in the configuration file "config_PIKART_V1.0.yml". If you want to compile the PIKART V1.0 catalog with a different spatiotemporal resolution, please carefully set up the parameters "kernel", "time_gap_allow", and "min_duration".

Data pre-processing

The following steps pre-process ERA5 input data. If you want to compile the PIKART catalog with a different input dataset or spatiotemporal resolutuion, please edit each script accordingly. Keep in mind that not all pre-processing steps might be necessary for your particular compilation.

  1. Run the script "00_CDS_download_ERA5.py" to download ERA5 data from the Climate Data Store.

  2. Using the submission file "submit_01.sh", run the script "01_calculate_IVT_ERA5.py" to calculate the components and magnitude of the integrated water vapor transport (IVT) for each month of each year.

  3. Run the script "02_CDO_merge_months_ERA5.sh" to merge monthly IVT files into annual IVT files.

  4. Run the script "03_CDO_regridding_ERA5.sh" to coarsen the spatial resolution of the IVT data.

  5. Run the script "04_CDO_6hr_ERA5.sh" to coarsen the temporal resolution of the IVT data.

  6. Run the script "05_CDO_shift_longitude_ERA5.sh" to center the IVT fields at the longitude necessary to perform a Top-Hat by Reconstruction (THR) on the IVT fields (script 07).

Atmospheric river detection tool (ARDT)

The following steps constitute the identification, tracking, and post-processing algorithms of the PIKART ARDT.

The identification starts with the decomposition of the IVT into a background and an anomalous component. To perform this decomposition, we highly recommend to shift the longitude of the IVT input files so that oceans are centered. We perfom this step in the data pre-processing (script 05).

  1. Using the submission file "submit_06.sh", run the script "06_check_grid_input_data.py" to check the spatial grid of the input data.

  2. Using the submission file "submit_07.sh", run the script "07_IVT_top_hat_reconstruction.py" to decompose the IVT into background and anomalous components.

  3. Run the script "08_CDO_shift_longitude_THR.sh" to center the IVT anomaly at 0°E.

  4. Using the submission file "submit_09.sh", run the script "09_AR_identification" to identify AR shapes.

  5. Using the submission file "submit_10.sh", run the script "10_AR_identification_post.py" to filter out AR shapes that do not fulfill the minimum geometric requirements of an AR.

  6. OPTIONAL: Using the submission file "submit_11.sh", run the script "11_check_empty_identification.py" to verify if there are any time steps without identified AR shapes after post-processing. This is an optional control step, useful to monitor the subsequent tracking algorithm.

  7. Using the submission file "submit_12.sh", run the script "12_relaxed_ARs.py" to flag relaxed AR shapes based on geometric and physical criteria.

  8. Using the submission file "submit_13.sh", run the script "13_AR_tracking.py" to form AR trajectories by tracking AR shapes at individual time steps.

  9. OPTIONAL: Using the submission file "submit_14.sh", run the script "14_AR_centroid_speed.py" to compute the displacement and speed of the centroid of each AR trajectory. This is an optiona control step, useful to choose the parameterization used for the post-processing of the AR trajectories.

  10. Using the submission file "submit_15.sh", run the script "15_AR_tracking_post.py" to filter out AR trajectories that do not fulfill minimum dynamical requirements.

  11. Using the submission file "submit_16.sh", run the script "16_continuous_trackids.py" to remove the labels of AR shapes and trajectories previously flagged for deletion and generate the spatiotemporal footprint of each valid AR trajectory.

  12. Using the submission file "submit_17.sh", run the script "17_PIKART_eulerian.py" to compile the Eulerian version of the PIKART catalog.

  13. Using the submission file "submit_18.sh", run the script "18_PIKART_land_intersection.py" to detect land-intersecting locations of each AR trajectory. IMPORTANT! If you want to compile the PIKART catalog with a different spatial resolution, you need to generate your own continental and insular masks.

  14. Using the submission file "submit_19.sh", run the script "19_PIKART_lagrangian_csv.py" to compile .csv files with the Lagrangian version of the PIKART catalog.

  15. OPTIONAL: Using the submission file "submit_20.sh", run the script "20_PIKART_lagrangian_nc.py" to compile .nc files with the Lagrangian version of the PIKART catalog.

  16. OPTIONAL: Using the submission file "submit_21.sh", run the script "21_ARDT_statistics.py" to get an overviewe of the compilation process, with the number of AR shapes and trajectories retained or removed at each step of the PIKART algorithm.

PIKART Workflow

The PIKART compilation process can be visualized in the following workflow:

Figure 1

Citation requirements

Please cite the following paper in articles or other publications that use all or part of the code:

Vallejo‐Bernal, S. M., Braun, T., Marwan, N., & Kurths, J. (2025). PIKART: A comprehensive global catalog of atmospheric rivers. Journal of Geophysical Research: Atmospheres, 130(15), e2024JD041869.

Support

If you find any issues, please feel free to use the 'raise issue' function or contact us directly.

Further information

More detailed information on the PIKART algorithm and the used AR identification and tracking algorithms can also be found on our website.

License

The PIKART Atmospheric River Catalog is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). You are free to share, use, and adapt the data for non-commercial purposes. Please give appropriate credit by citing the manuscript. Commercial use requires prior permission – please contact us.

DISCLAIMER: THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Authors and acknowledgment

The PIKART catalog was developed at the Potsdam Institute for Climate Impact Research (PIK) with contributions from various researchers and developers.

We gratefully acknowledge support from the German Federal Ministry of Education and Research (BMBF) through the climXtreme project [01LP1902J], the Saxon State Ministry for Science, Culture and Tourism (SMWK) as part of the Breathing Nature initiative at Leipzig University [3‐7304/35/6‐2021/48880], and the European Space Agency (ESA) Living Planet Fellowship through the ARNETLAB project [4000144018/24/I-DT-lr]. We also gratefully acknowledge the Ministry of Research, Science and Culture (MWFK) of Land Brandenburg for supporting this project by providing resources on the high performance computer system at the Potsdam Institute for Climate Impact Research [22-Z105-05/002/001].

Special thanks to all contributors who have provided feedback, reported issues, and helped improve the dataset.