Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenSAR Banner

Website Python 3.10+ License: MIT

πŸ“‘ OpenSAR Insight – From space to action: AI-powered satellites detecting floods, dark vessels, and radio interference instantly πŸ“‘


OpenSARInsight

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

πŸ‘₯ Authors

  • Indra Space (profile)
  • INTA (National Institute of Aerospace Technology) (profile)
  • Universidad de AlcalΓ‘ de Henares (profile)

πŸ“– Project Reference

OpenSARInsight

(project webpage will be launched soon)


πŸ“ Repository Structure

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

πŸ› οΈ Getting Started

1. Setup the Docker Environment

The recommended way to run the backend is inside the provided Docker container.

See:

Typical workflow:

  1. Build the Docker image.
  2. Configure docker_dev.env.
  3. Launch the development container.
  4. Install the internal dependencies.

2. Download Sentinel-1 Data

Use the SentinelHub downloader located in

Documentation:


3. Generate Training Datasets

Dataset generation tools are located inside

Each use case has its own dedicated pipeline.


4. Train / Evaluate / Run Models

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 --list

Complete documentation:


πŸ“¦ Main Components


Dataset Generation

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.


Docker Environment

Location:

Provides a fully reproducible development environment including:

  • PyTorch
  • CUDA
  • SNAP
  • SAR processing libraries
  • Internal OpenSAR packages

See:


AI Processing Pipeline

Location:

Provides training, inference and evaluation for all supported AI models.

Components

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:


SARFI

Location:

SARFI converts timestamped latitude/longitude coordinates into Sentinel-1 SLC coordinates.

Documentation:


Model Validation

Location:

Contains utilities for evaluating model performance across the supported use cases.


Configuration

Location:

Contains shared configuration files used across the project.


🎯 Supported AI Models

Current models include:

Model Task
vd_large Vessel Detection
vd_small Knowledge-distilled Vessel Detection
rfi_large RFI Segmentation
rfi_small Lightweight RFI Segmentation

πŸ“Š Supported Processing Levels

The backend currently supports processing at multiple Sentinel-1 data levels:

Processing Level Supported
RAW (Level-0) βœ…
Range Compressed βœ…
SLC βœ…
GRD βœ…

πŸ“š Documentation

Every major component contains its own dedicated documentation.

Main documentation:

Dataset generation documentation:


πŸ“Š Dataset Hosting

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 login

Example:

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.


πŸ“„ License

This repository is licensed under the MIT License, except where otherwise noted.

AGPL-3.0 Components

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/

MIT Licensed Components

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.


🌐 Additional Information

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.

About

Open SAR Insights

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages