Skip to content

⛈️ Code for the paper "End-to-End Prediction of Lightning Events from Geostationary Satellite Images"

License

Notifications You must be signed in to change notification settings

sbrodehl/remotesensing-14-03760

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

End-to-End Prediction of Lightning Events from Geostationary Satellite Images

Python 3.9 Linting Python DOI 10.3390/rs14153760

This is the official repo for the paper "End-to-End Prediction of Lightning Events from Geostationary Satellite Images".

Abstract

While thunderstorms can pose severe risks to property and life, forecasting remains challenging, even at short lead times, as these often arise in meta-stable atmospheric conditions. In this paper, we examine the question of how well we could perform short-term (up to 180 min) forecasts using exclusively multi-spectral satellite images and past lighting events as data. We employ representation learning based on deep convolutional neural networks in an "end-to-end" fashion. Here, a crucial problem is handling the imbalance of the positive and negative classes appropriately in order to be able to obtain predictive results (which is not addressed by many previous machine-learning-based approaches). The resulting network outperforms previous methods based on physically based features and optical flow methods (similar to operational prediction models) and generalizes across different years. A closer examination of the classifier performance over time and under masking of input data indicates that the learned model actually draws most information from structures in the visible spectrum, with infrared imaging sustaining some classification performance during the night.

from "End-to-End Prediction of Lightning Events from Geostationary Satellite Images".

Getting Started

Prerequisites

DFCC is based on the following libraries and their versions:

Additionally, the Python packages as listed in the requirements.txt file must be installed.
We recommend to use a virtual environment.

Usage

Package Structure

The src directory contains all the code to run the experiments. Here, everything is split up into different modules:

  • data includes everything related to data, from different data sources to actual data loading
  • events includes the learning range rate test (LRRT) and code to run experiments
  • experiments includes different experiments
  • log includes logging
  • model includes model code
  • optimizer includes everything related to optimizer, lr scheduling, loss and loss weighting
  • skill includes skill scores, such as CSI, FAR and POD
  • system includes system settings
  • utils includes utilities used by other modules

The scripts directory contains scripts to create figures displayed in our publication.

Experiments

Settings
Lead Time Bottleneck Channels Weight Decay Regularization Factor
0 min 16 5 x 10^-6 0.1
30 min 81 7 x 10^-6 0.15
60 min 97 7 x 10^-6 0.2
90 min 106 7 x 10^-6 0.2
120 min 114 1 x 10^-5 0.3
180 min 124 1 x 10^-5 0.3
Figure 4

Run the following code with the settings above to get a trained model for the given lead time:

python run.py experiment
  --SEVIRI.roots.train "${train-data}"
  --SEVIRI.roots.test "${test-data}"
  --SEVIRI.roots.val "${validation-data}"
  --LINET.db_path "${linet.db}"
  --LINET.lead_time "${lead-time}"
  --regularizer_factor "${reg-factor}"
  --sgdw.weight_decay "${weight-decay}"
  --channel_hierarchy_depth "${bottleneck-channels}"

The testing step will dump detailed model statistics which can be used with figure_4.py.

Figure 6

For Figure 6 train models with varying input channels, e.g. VIS+PER, WV+PER and IR+PER, and pass the testing details to figure_6.py.
For the sake of simplicity, we use the option --zero_out to replace inputs of the given channel with zeros during training.

python scripts/figure_6.py
  -lt 120
  --vis-per vis+per-testing_model_details.json
  --wv-per wv+per-testing_model_details.json
  --ir-per ir+per-testing_model_details.json
  --json complete-testing_model_details.json
  --persistence testing_persistence_details.json

Citation

If you find the code useful for your research, please cite (see CITATION for details):

  • Brodehl, S.; Müller, R.; Schömer, E.; Spichtinger, P.; Wand, M. End-to-End Prediction of Lightning Events from Geostationary Satellite Images. Remote Sens. 2022, 14, 3760. https://doi.org/10.3390/rs14153760

Versioning

We use SemVer for versioning. For the versions available, see the releases and tags on this repository.

Authors

License

With the exceptions noted below, this project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.