Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenSAR Banner

WebsitePython 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.

ComponentDescription
sentinelhub-scene-downloaderDownload Sentinel-1 products from the Copernicus Data Space Ecosystem
DVD_dataset_generationGenerate Vessel Detection datasets (SLC, GRD and RAW)
FD_dataset_generationGenerate Flood Detection datasets
RFI_dataset_generationGenerate RFI segmentation datasets
L0_preparationDecode Level-0 data and extract RAW patches
l0_to_range_compressedRange compression of RAW patches
SLC_to_FullRawConvert SLC detections into RAW coordinates
orbital_file_downloaderDownload Sentinel-1 POEORB files
L1_tilingConvert L1 products into GeoTIFF tiles
dataset_splittingCreate 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

ComponentDescription
mainUnified CLI entry point
data_preprocessingData augmentation and preprocessing
dvd_use_caseYOLO-based Vessel Detection
RFI_usecaseUNet-based RFI segmentation
geocoding_blockConvert 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:

ModelTask
vd_largeVessel Detection
vd_smallKnowledge-distilled Vessel Detection
rfi_largeRFI Segmentation
rfi_smallLightweight RFI Segmentation

📊 Supported Processing Levels

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

Processing LevelSupported
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:

fromhuggingface_hubimportsnapshot_downloadsnapshot_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