📆 Project Period | November, 2023 |
📍 GitHub | GitLab Link |
Tropical Cyclones

Overview
This repository holds an application of computer vision to the detection and categorization of Tropical Cyclones (TC) using Sentinel-1 Synthetic Aperture Radar data. This project is the result of a joint research collaboration between the Ί-lab (ESRIN/ESA) and Ifremer.
The code developed was used for the following publication to IGARSS 2021:
A. R. Carmo, N. Longépé, A. Mouche, D. Amorosi and N. Cremer, Deep Learning Approach for Tropical Cyclones Classification based on C-Band Sentinel-1 SAR Images, 2021 IEEE International Geoscience and Remote Sensing Symposium IGARSS, 2021, pp. 3010-3013, doi:10.1109/IGARSS47720.2021.9554111.
This repository is intended as a means to reproduce the results shown in the paper and to stimulate further research in this direction.
Installation
To install requirements: python -m pip install -r requirements.txt
Contents
This repository contains the following:
- the source code of the project in the
codefolder; - demonstration Jupyter notebooks in the
notebooksfolder, to reproduce the same results as the scripts in python; - pre-trained models in the
modelsfolder; requirements.txtcontaining the packages that require installation in order to run the code;config.ymlcontaining the configuration variables needed to run the scripts.
Data
The data was kindly collected and provided in open access by Ifremer, through the CyclObs API. The data can be downloaded using the data_download.py script in the code folder via
python code/data_download.py
The directory to store the images should be configured in the data_path variable from the configuration file config.yml.
Extraction from API
Initially, .nc products will be downloaded from the CyclObs API and stored in a folder called nc, which will contain the files stratified by category, i.e. distributed over 5 different folders named categoryX, where 'X' represents each of the categories from 1 to 5.
Convertion from .nc to .png
In this stage, and depending on the SAR features selected (max. 3, one for each channel of the resulting image), each feature will be extracted from each .nc product and stacked along the 3rd-axis to create an image (stored as .png). For this, a new folder will be created with the features' siglas (e.g. 'VV_VH_WS'). Inside this folder, 6 additional folders will be created:
- a
csvfolder containing files (csv) with the full dataset and respective labels; - 5 folders named
categoryX, where 'X' represents each of the categories 1 to 5, containing the images of all TCs from that category.
Usage
Detection
Performing the detection of Tropical Cyclones requires a configuration file defining the model parameters, training procedure and logging parameters, which can be found in config.yml. Training is run via the script detect.py as follows
python code/detect.py
This will create the directory specified as results_path in the configuration file config.yml, containing the scores, saved models and logs.
Categorization
Performing the categorization involves similar steps as the detection task, except the script name, which is called categorize.py and is used as follows
python code/categorize.py