This repository contains Jupyter Notebooks, Python codes, bash shell scripts, and ParaView state files in Python to reproduce analysis and figures of Sullivan et al. 2026 "
file-preprocessing-for-ParaView.ipynb - Jupyter Notebook that 1) stacks 2D fields into a spatiotemporal volume for rendering, 2) converts ICON pressure levels to altitudes for rendering, and 3) converts units for precipitation fields
panels-rendered.ipynb - Jupyter Notebook that combines individual png/jpg renders from ParaView into multipanel figures
persistence-diagram.ipynb - Jupyter Notebook to calculate persistence diagrams for a single time point of observational or model data
calc_wasserstein_distance.py - Python code with several functions and dictionaries to calculate Wasserstein distances between persistence diagrams from models and a persistence diagram from observations
submit_series_Wd_calc.sh - bash shell script to run one of the functions within calc_wasserstein_distance.py over many time points
ParaView-state-py - folder containing ParaView state files in Python script form, includes the following:
CRH_3D_*M_stacked_z_render.py - Generates a latitude-longitude-altitude volume render of cloud-radiative heating from either one- or two-moment simulations in ICON
RAIN_GSP_RATE_gridboxmean_z_render_short.py - Generates a latitude-longitude-time volume render of ICON-simulated surface precipitation rate over 24 hours after applying cdo gridboxmean
RAIN_GSP_RATE_remapcon_z_render_clip_Bay-of-Bengal.py - Generates a latitude-longitude-time volume render of ICON-simulated surface precipitation rate in a subdomain over the Bay of Bengal after applying cdo remapcon
RAIN_GSP_RATE_remapcon_z_render_clip_monsoon-core.py - Generates a latitude-longitude-time volume render of ICON-simulated surface precipitation rate in a subdomain over the core monsoon area after applying cdo remapcon
RAIN_GSP_RATE_remapcon_z_render_Hovmoeller-lat.py - Generates a longitude-time volume render of ICON-simulated surface precipitation rate after applying cdo remapcon
RAIN_GSP_RATE_remapcon_z_render_short.py - Generates a latitude-longitude-time volume render of ICON-simulated surface precipitation rate over 24 hours after applying cdo remapcon
RAIN_GSP_RATE_stacked_z_render_short.py - Generates a latitude-longitude-time volume render of ICON-simulated surface precipitation rate over 24 hours, no cdo regridding, ICON native grid
RAIN_GSP_RATE_z_render_two_panel_ac.py - Generates the leftmost panels of Figure 2, rain_gsp_rate renders for ICON native grid and cdo gridboxmean
RAIN_GSP_RATE_z_render_two_panel_bd*.py - Generates the rightmost panels of Figure 2, rain_gsp_rate renders for cdo remapcon and cdo gridboxmean + downsampling
TQC_gridboxmean_z_render_short.py - Generates a latitude-longitude-time volume render of ICON-simulated column-integrated cloud liquid over 24 hours after applying cdo gridboxmean
TQI_filter_by_RAIN_GSP_RATE_remapcon_z_render_index_plugin.py - Generates a latitude-longitude-time volume render of ICON-simulated column-integrated cloud ice (IWP), filtered by surface precipitation rate thresholds over 24 hours after applying cdo remapcon, using the NVIDIA Index Plugin to speed up performance
TQI_gridboxmean_filter_by_RAIN_GSP_RATE_remapcon_z_render_index_plugin.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP after applying cdo gridboxmean, filtered by surface precipitation rate thresholds over 24 hours after applying cdo remapcon, using the NVIDIA Index Plugin to speed up performance
TQI_gridboxmean_z_render_clip_Bay-of-Bengal.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP in a subdomain over the Bay of Bengal after applying cdo gridboxmean
TQI_gridboxmean_z_render_clip_monsoon-core.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP in a subdomain over the core monsoon area after applying cdo gridboxmean
TQI_gridboxmean_z_render_short_domain.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP over 24 hours after applying cdo gridboxmean, perspective looks down the time axis
TQI_gridboxmean_z_render_short_thick-clouds.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP, filtering only for values > 0.2 kg m-2, over 24 hours after applying cdo gridboxmean
TQI_gridboxmean_z_render_short_thin-clouds.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP, filtering only for values < 0.2 kg m-2, over 24 hours after applying cdo gridboxmean
TQI_gridboxmean_z_render_short.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP over 24 hours after applying cdo gridboxmean
TQI_remapcon_filter_by_RAIN_GSP_RATE_remapcon_z_render.py - Generates a latitude-longitude-time volume render of ICON-simulated IWP after applying cdo remapcon, filtered by surface precipitation rate thresholds over 24 hours after applying cdo remapcon
TTK-FV3-precipitation-update-simplification.py - Generates a WarpByScalar field of FV3-simulated surface precipitation, corresponding persistence diagram, topologically simplified WarpByScalar field of surface precip, and a persistence curve using the ParaView Topology ToolKit