Identifying cloud regimes and their transitions related to extreme precipitation events over the Alps through self-supervised learning
Authors: Corraini, Daniele, Cattani, Elsa, Bigalke, Paula, Chatterjee, Dwaipayan, Acquistapace, Claudia
Type: Peer review
Published: 2026-07-30
Keywords: Self-supervised learning, Infrared satellite imagery, Cloud classification, Deep moist convection, Convective cloud regimes, Cloud transitions, Extreme precipitation, Severe hail, Alps

<h1>Description</h1>
<p>This repository contains the datasets, trained model, configuration files, and Python scripts required to reproduce the figures, tables, and statistical analyses presented in the manuscript:</p>
<p><strong>Corradini, D., Cattani, E., Bigalke, P., Chatterjee, D., & Acquistapace, C.</strong> <em>Identifying cloud regimes and their transitions related to extreme precipitation events over the Alps through self-supervised learning.</em></p>
<p>The repository is organized into the following components.</p>
<h2>Datasets</h2>
<ul>
<li>
<p><strong>test_satellite_crops_RS_Corradini_26.zip</strong> – NetCDF satellite crops used to construct the storm trajectories analyzed in the manuscript.</p>
</li>
<li>
<p><strong>training_satellite_crops_RS_Corradini_26.zip</strong> – Randomly sampled NetCDF satellite crops used for self-supervised learning (SSL) pretraining.</p>
</li>
<li>
<p><strong>DEM_EXPATS_0.01x0.01.nc</strong> – Digital Elevation Model (DEM) over the study domain, used for the generation of selected figures.</p>
</li>
</ul>
<h2>VISSL configuration files</h2>
<p>Configuration files used with the VISSL framework:</p>
<ul>
<li>
<p><strong>vissl_config_pretraining.yaml</strong> – SSL pretraining configuration.</p>
</li>
<li>
<p><strong>vissl_config_extract_features_training.yaml</strong> – Configuration for extracting feature vectors from the training dataset.</p>
</li>
<li>
<p><strong>vissl_config_extract_features_test.yaml</strong> – Configuration for extracting feature vectors from the test dataset.</p>
</li>
</ul>
<h2>VISSL outputs</h2>
<ul>
<li>
<p><strong>model_final_checkpoint_phase799.torch</strong> – Final DeepCluster-v2 model checkpoint after 800 training epochs.</p>
</li>
<li>
<p><strong>centroids0.pt</strong> – Cluster centroids (128-dimensional latent vectors) obtained after SSL pretraining.</p>
</li>
<li>
<p><strong>training_features.npy</strong> – Latent feature vectors extracted from the training crops.</p>
</li>
<li>
<p><strong>test_features.npy</strong> – Latent feature vectors extracted from the test crops.</p>
</li>
<li>
<p><strong>stdout.txt</strong> – Training log containing the loss evolution during pretraining (used to reproduce Figure A2).</p>
</li>
</ul>
<h2>Figure and table generation scripts</h2>
<ul>
<li>
<p><strong>master_analysis_table.csv</strong> – Master table containing the derived statistics required to reproduce all figures and tables.</p>
</li>
<li>
<p><strong>class_colors.py</strong> – Cloud regime labels, names, plotting order, and color definitions.</p>
</li>
<li>
<p><strong>make_img_from_nc.py</strong> – Utility for converting NetCDF satellite crops into image files used in Figures 2 and 6.</p>
</li>
<li>
<p><strong>Fig2_visualize_embedding.py</strong> – Reproduces Figure 2.</p>
</li>
<li>
<p><strong>Fig3_training_set_characterization.py</strong> – Reproduces Figure 3.</p>
</li>
<li>
<p><strong>Fig4_feature_space_test.py</strong> – Reproduces Figure 4.</p>
</li>
<li>
<p><strong>Fig5_test_characterization.py</strong> – Reproduces Figure 5.</p>
</li>
<li>
<p><strong>Fig6_plot_pathways_image_examples.py</strong> – Reproduces Figure 6.</p>
</li>
<li>
<p><strong>Fig7_pathway_analysis.py</strong> – Reproduces Figure 7.</p>
</li>
<li>
<p><strong>FigA2_plot_training_loss.py</strong> – Reproduces Figure A2.</p>
</li>
<li>
<p><strong>FigA3_plot_class_occurrence_maps.py</strong> – Reproduces Figure A3.</p>
</li>
<li>
<p><strong>Table2_pathway_cloud_stats.py</strong> – Reproduces Table 2.</p>
</li>
<li>
<p><strong>density_contour_utils.py</strong> – Helper functions for latent-space visualization.</p>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p><strong>README.md</strong> – Instructions for setting up the environment and reproducing the analyses and figures presented in the manuscript.</p>
</li>
</ul>
<p>The repository provides all processed datasets, trained model outputs, configuration files, and analysis scripts required to reproduce the published results. The original MSG-SEVIRI Level 1.5 observations are not included and cannot be reconstructed from the distributed processed datasets. Users requiring access to the original MSG-SEVIRI Level 1.5 data can obtain them directly from the EUMETSAT Data Store: <a href="https://user.eumetsat.int/data-access/data-store">https://user.eumetsat.int/data-access/data-store</a>.</p>
<p>To train and apply the self-supervised learning (SSL) model, we used a modified version of the VISSL framework, available at:</p>
<p><a href="https://github.com/EXPATS-IDEAS4S/vissl">https://github.com/EXPATS-IDEAS4S/vissl</a></p>
<p>This repository is based on VISSL, developed by Facebook AI Research and released under the MIT License. The following modifications were introduced to adapt the framework for geostationary satellite observations:</p>
<ul>
<li>
<p>direct reading of NetCDF satellite datasets;</p>
</li>
<li>
<p>support for multi-channel satellite inputs;</p>
</li>
<li>
<p>support for temporal input dimensions;</p>
</li>
<li>
<p>adaptation of backbone architectures to accommodate the modified input structure;</p>
</li>
<li>
<p>additional configuration options for checkpoint management and automated saving of intermediate outputs.</p>
</li>
</ul>
<p>The original VISSL repository is available at:</p>
<p><a href="https://github.com/facebookresearch/vissl">https://github.com/facebookresearch/vissl</a></p>
<p>The original VISSL license and copyright notices are retained.</p>