This repository provides tools and reproducible workflows for precipitation nowcasting using weather radar data collected from multiple sources. The focus is on processing and forecasting with Single-Polarization X-Band, Dual-Polarization X-Band, and C-Band radar data, utilizing the open-source Python framework Pysteps (Probabilistic Short-Term Ensemble Prediction System).
Data originates from a network of radars managed by University of Cagliari, covering:
- 30 km radius of the Cagliari metropolitan area (X-Band, Single Pol.) with a spatial resolution of 60 meters.
- 120 km radius across Southern Sardinia (X-Band, Dual Pol.) with a spatial resolution of 250 meters.
- National Italian Radar Network (C-Band) provided by the Italian Civil Protection agency, cropped to Southern Sardinia with a spatial resolution of 1 km.
This repository implements a suite of techniques for radar data processing and nowcasting:
- Lucas-Kanade (LK)
- Variational Echo Tracking (VET)
- Dynamic and Adaptive Radar Tracking of Storms (DARTS)
- Anisotropic Diffusion (Proesmans et al., 1994)
- Extrapolation (Eulerian and Semi-Lagrangian)
- Deterministic Forecasting with S-PROG A.W.Seed, 2003
- ANVIL Forecasting Pulkkinen et al., 2020
- Probabilistic Nowcasting using STEPS Bowler et al., 2006
- Mean Absolute Error (MAE)
- Critical Success Index (CSI)
- Probability of Detection (POD)
- False Alarm Ratio (FAR)
- Fractional Skill Score (FSS)
Additionally, the repository includes analysis of Power Spectral Density (PSD) to examine the spectral properties of precipitation fields and forecasts.
This repository contains code and resources for radar-based precipitation nowcasting. Follow the steps below to clone the repository and set up the required environment on your local system.
- Prerequisites
- Installation
- Setting Up the Environment
- Usage
- Sample Data
- Contributing
- Funding
- References
Before you begin, ensure you have the following installed on your system:
- Git: Download and install Git.
- Anaconda/Miniconda: Download and install Anaconda or Miniconda.
To clone this repository to your local directory, open a terminal and run the following command:
git clone https://github.com/AVI68/radar_nowcasting.gitChange the directory to the cloned repository:
cd radar_nowcastingThe environment.yml file is provided in the repository to create a Conda environment with all the necessary dependencies. Run the following command to create the environment:
conda env create -f environment.ymlActivate the newly created environment:
conda activate radar_nowcasting_envRun the provided Jupyter Notebook to reproduce the results:
jupyter notebookThe repository includes a Data directory containing radar datasets from various sources, used to run the notebooks for precipitation nowcasting analysis. Each dataset corresponds to a specific radar system with its own folder structure. The notebook is configured to automatically load data from this directory. Make sure the Data directory is in the root of the repository after cloning.
Data/
├── Data_UNICA_SG/ # X-Band radar from UNICA (extracted eventwise)
│ └── yyyymmdd_HHMM/
│ └── *.png
│
├── Data_Civil_Protection/ # National Radar Network (C-Band)
│ ├── geodata/
│ │ └── *.tif # Geographic base data
│ └── VMI/
│ └── yyyy/mm/dd/
│ └── VMI_<timestamp>.h5
│
├── Data_perser/ # Perser X-Band radar (CZW & OZW)
│ ├── CZW/
│ │ └── CZW<station_id>/
│ │ └── *.h5
│ └── OZW/
│ └── OZW<station_id>/
│ └── *.h5
│
├── Data_gavino/ # Single Pol. X-Band radar
│ ├── data/
│ │ └── yyyy/mm/dd/
│ │ └── *.png
│ └── geodata/
│ └── radarmappatipo.tif
- Radar Type: Single-Polarization X-Band
- Source: DICAAR, University of Cagliari
- Structure:
- Subfolders (refers to events) follow timestamp format:
yyyymmdd_HHMM - Each subfolder contains
.pngreflectivity images
- Subfolders (refers to events) follow timestamp format:
- Radar Type: National Radar Network (C-Band)
- Source: Italian Civil Protection agency
- Structure:
- File path format:
Data_Civil_Protection/VMI/yyyy/mm/dd/VMI_<timestamp>.h5 - Geographic base map stored in:
Data_Civil_Protection/geodata/
- File path format:
- Radar Type: Dual-Polarization X-Band
- Source: DICAAR, University of Cagliari
- Structure:
- File naming convention:
CZW<date information><timestamp>L.805.h5OZW<date information><timestamp>L.810.h5
- File naming convention:
- CZW and OZW are two radar products representing Vertical Maximum Intensity (VMI) and Constant Altitude Plan Position Indication (CAPPI), respectively.
- Radar Type: Single-Polarization X-Band
- Source: DICAAR, University of Cagliari
- Structure:
- Image data path:
data/yyyy/mm/dd/yyyymmdd_HHMM.png - Geographic base map:
geodata/radarmappatipo.tif
- Image data path:
- Each radar dataset is processed using a dedicated Jupyter Notebook.
- All datasets are harmonized internally to ensure compatibility with Pysteps.
- Maintain the described folder structure to prevent data path issues during execution.
- UNICA_SG and Gavino radar data: Provided by Envisens Technologies s.r.l., managed by DICAAR, UNICA. You can also view real-time radar scans updated every minute here Meteo Radar – UnicaWATER.
- Civil Protection radar data: available from Italian Civil Protection agency portal.
- Perser radar data: Provided by ELDES s.r.l., managed by DICAAR, UNICA
Created by Meteo Radar, UnicaWATER, Hydraulic Division, Department of Civil, Environmental and Architectural Engineering, University of Cagliari.
- Avijit Majhi ([email protected])
- Alessandro Seoni ([email protected])
- Maria Grazia Badas ([email protected])
- Francesco Viola ([email protected])
- Roberto Deidda ([email protected])
Contributions are welcome! Feel free to fork this repository, make your changes, and submit a pull request.
Developed under the GeoSciences IR, WP4, UNICA 03 - Risk monitoring and management project funded by NRRP, European Union – NextGenerationEU.
- Title of the Project: Precipitation ensemble nowcasting procedures
- Ministerial Code: IR0000037
- CUP: I53C22000800006
- Principal Investigator: Prof. Roberto Deidda
Pulkkinen, S., D. Nerini, A. Perez Hortal, C. Velasco-Forero, U. Germann, A. Seed, and L. Foresti, 2019: Pysteps: an open-source Python library for probabilistic precipitation nowcasting (v1.0). Geosci. Model Dev., 12 (10), 4185–4219, doi:10.5194/gmd-12-4185-2019, https://gmd.copernicus.org/articles/12/4185/2019/


