π‘ OpenSAR Insight β From space to action: AI-powered satellites detecting floods, dark vessels, and radio interference instantly π‘
OpenSARInsight is an early-phase project developing ML-ready datasets and algorithms for direct insight generation from raw SAR data. This is a first step toward efficient onboard implementation of end-to-end SAR inference pipelines for low-latency applications.
This project has been funded and supported by ESAβs Ξ¦-lab.
This repository contains all software required to generate AI-ready datasets from Sentinel-1 SAR, preprocess SAR imagery, train deep learning models, validate their performance, and perform inference across multiple Earth Observation applications.
Current supported applications include:
- π’ Vessel Detection
- π Flood Detection
- π‘ Radio Frequency Interference (RFI) Detection
- Indra Space (profile)
- INTA (National Institute of Aerospace Technology) (profile)
- Universidad de AlcalΓ‘ de Henares (profile)
OpenSARInsight
(project webpage will be launched soon)
backend/
βββ dataset_generation_scripts/
β βββ sentinelhub-scene-downloader/
β βββ DVD_dataset_generation/
β βββ FD_dataset_generation/
β βββ RFI_dataset_generation/
β βββ L0_preparation/
β βββ l0_to_range_compressed/
β βββ SLC_to_FullRaw/
β βββ orbital_file_downloader/
β βββ L1_tiling/
β βββ dataset_splitting/
β
βββ docker/
βββ pipeline/
β βββ main/
β βββ data_preprocessing/
β βββ dvd_use_case/
β βββ RFI_usecase/
β βββ geocoding_block/
β
βββ SARFI/
βββ model_validation/
βββ configuration/
βββ tests/
βββ README.md
The recommended way to run the backend is inside the provided Docker container.
See:
Typical workflow:
- Build the Docker image.
- Configure
docker_dev.env. - Launch the development container.
- Install the internal dependencies.
Use the SentinelHub downloader located in
Documentation:
Dataset generation tools are located inside
Each use case has its own dedicated pipeline.
The main pipeline entry point is
backend/pipeline/main/main_pipeline.py
General syntax:
python main_pipeline.py \
--model <model> \
--mode <mode> \
--tool <tool> \
--extra-args "<args>"To list all available options:
python main_pipeline.py --listComplete documentation:
Location:
This module contains all utilities required to build AI-ready datasets from Sentinel-1 products.
| Component | Description |
|---|---|
sentinelhub-scene-downloader |
Download Sentinel-1 products from the Copernicus Data Space Ecosystem |
DVD_dataset_generation |
Generate Vessel Detection datasets (SLC, GRD and RAW) |
FD_dataset_generation |
Generate Flood Detection datasets |
RFI_dataset_generation |
Generate RFI segmentation datasets |
L0_preparation |
Decode Level-0 data and extract RAW patches |
l0_to_range_compressed |
Range compression of RAW patches |
SLC_to_FullRaw |
Convert SLC detections into RAW coordinates |
orbital_file_downloader |
Download Sentinel-1 POEORB files |
L1_tiling |
Convert L1 products into GeoTIFF tiles |
dataset_splitting |
Create train / validation / test splits |
Each directory contains its own README with detailed usage instructions.
Location:
Provides a fully reproducible development environment including:
- PyTorch
- CUDA
- SNAP
- SAR processing libraries
- Internal OpenSAR packages
See:
Location:
Provides training, inference and evaluation for all supported AI models.
| Component | Description |
|---|---|
main |
Unified CLI entry point |
data_preprocessing |
Data augmentation and preprocessing |
dvd_use_case |
YOLO-based Vessel Detection |
RFI_usecase |
UNet-based RFI segmentation |
geocoding_block |
Convert image detections into geographic coordinates |
Documentation:
Location:
SARFI converts timestamped latitude/longitude coordinates into Sentinel-1 SLC coordinates.
Documentation:
Location:
Contains utilities for evaluating model performance across the supported use cases.
Location:
Contains shared configuration files used across the project.
Current models include:
| Model | Task |
|---|---|
vd_large |
Vessel Detection |
vd_small |
Knowledge-distilled Vessel Detection |
rfi_large |
RFI Segmentation |
rfi_small |
Lightweight RFI Segmentation |
The backend currently supports processing at multiple Sentinel-1 data levels:
| Processing Level | Supported |
|---|---|
| RAW (Level-0) | β |
| Range Compressed | β |
| SLC | β |
| GRD | β |
Every major component contains its own dedicated documentation.
Main documentation:
Dataset generation documentation:
The datasets used by the OpenSAR project are hosted on the OpenSAR Insight organization on Hugging Face.
π Hugging Face Organization: https://huggingface.co/opensar-insight
The repository hosts datasets for the different OpenSAR use cases, including:
- π’ Vessel Detection
- π Flood Detection
- π‘ Radio Frequency Interference (RFI) Detection
Datasets contain products at multiple Sentinel-1 processing levels, including:
- Level-0 RAW
- Range Compressed
- Single Look Complex (SLC)
- Ground Range Detected (GRD)
To download datasets using the Hugging Face Hub:
pip install -U huggingface_hub
huggingface-cli loginExample:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="opensar-insight/<dataset_name>",
repo_type="dataset",
local_dir="./data"
)Alternatively, datasets can be downloaded directly from:
https://huggingface.co/opensar-insight
Each dataset repository contains:
- Dataset description
- Download instructions
- Citation information
- License
- Directory structure
- Metadata and annotations
Please refer to the individual dataset documentation for details on formats, labels, and preprocessing requirements.
This repository is licensed under the MIT License, except where otherwise noted.
The following components use Ultralytics YOLO and therefore are distributed under the GNU Affero General Public License (AGPL-3.0):
backend/pipeline/main/backend/pipeline/dvd_use_case/backend/dataset_validation/baseline_models/dark-vessel-detection-baseline/
All remaining components are distributed under the MIT License and can be used independently without AGPL restrictions, including:
backend/dataset_generation_scripts/backend/pipeline/data_preprocessing/backend/pipeline/RFI_usecase/backend/pipeline/geocoding_block/backend/SARFI/backend/configuration/backend/model_validation/
See the LICENSE file for details.
The repository follows a modular architecture. Each component can be developed, tested, and deployed independently while remaining fully compatible with the complete OpenSAR processing chain.
For detailed usage instructions, please refer to the README contained in each individual module.
