Skip to content

Repository files navigation

Ondocéan ADS-B Qualify

🛩️ Système de Qualification pour Récepteurs ADS-B RTL-SDR

Ce projet fournit un framework complet pour qualifier et évaluer les performances des systèmes de réception ADS-B basés sur des dongles RTL-SDR. Il s'inspire de la méthodologie de qualification GNSS développée par Ondocéan.

🎯 Objectifs

  • Qualification objective des setups antenne + RTL-SDR
  • Métriques standardisées de performance ADS-B
  • Validation croisée avec sources de référence
  • Rapports automatisés de qualification

📊 Métriques de Qualification

Catégories Principales (Score 0-100)

Catégorie Poids Métriques Clés
Précision 40% Exactitude position, décodage CPR
Temporel 20% Continuité suivi, latence
Signal 20% RSSI, intégrité messages
Disponibilité 20% Portée, taux détection

🚀 Installation

Prérequis

# Dépendances système (Ubuntu/Debian)
sudo apt-get install librtlsdr-dev pkg-config

# Python 3.8+
python --version

Installation rs1090

# Installation de rs1090 (décodeur ADS-B)
cargo install jet1090 --features rtlsdr

Installation du Projet

git clone https://github.com/Cusstomizer787/Ondocean-ADS-B-Qualify.git
cd Ondocean-ADS-B-Qualify

# Environnement virtuel
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

# Installation dépendances
pip install -r requirements.txt

🏃 Utilisation Rapide

Test de Qualification Basique

# Test avec RTL-SDR local
python scripts/adsb_qualification_generator.py --rtlsdr --duration=60

# Test avec données de référence
python scripts/adsb_qualification_generator.py --rtlsdr --duration=60 --reference=opensky

# Génération rapport HTML
python scripts/adsb_qualification_generator.py --rtlsdr --duration=60 --report=html

Configuration Avancée

# Avec position de référence
python scripts/adsb_qualification_generator.py \
  --rtlsdr \
  --duration=120 \
  --reference-position="48.7089,2.1734" \
  --reference=opensky \
  --report=html,pdf

📁 Structure du Projet

ondocean-qualify-ADS-B/
├── 📄 README.md
├── 📄 requirements.txt
├── 📄 setup.py
├── 🔧 scripts/
│   ├── 📊 adsb_qualification_generator.py    # Script principal
│   ├── 📡 adsb_data_collector.py            # Collecte données
│   ├── 📈 adsb_metrics.py                   # Calculs métriques
│   ├── ✅ adsb_reference_validator.py       # Validation croisée
│   └── 🛠️ adsb_utils.py                     # Utilitaires
├── ⚙️ config/
│   ├── 📋 adsb_qualification.yaml           # Configuration
│   └── 🎯 thresholds.yaml                  # Seuils qualification
├── 📚 docs/
│   ├── 📖 user_guide.md                    # Guide utilisateur
│   ├── 🔧 technical_reference.md           # Référence technique
│   └── 🧪 testing_procedures.md            # Procédures de test
├── 📋 templates/
│   ├── 🌐 qualification_report.html        # Template rapport
│   └── 📄 qualification_summary.md         # Template résumé
├── 🧪 tests/
│   ├── 🔬 test_adsb_qualification.py       # Tests unitaires
│   ├── 📊 test_adsb_metrics.py             # Tests métriques
│   └── 🎭 fixtures/                        # Données de test
└── 📦 examples/
    ├── 🎯 basic_qualification.py           # Exemple basique
    └── 🔬 advanced_analysis.py             # Analyse avancée

🔧 Configuration

Fichier de Configuration Principal

# config/adsb_qualification.yaml
receiver:
  type: "rtlsdr"
  frequency: 1090000000  # 1090 MHz
  sample_rate: 2400000   # 2.4 MHz
  gain: "auto"

qualification:
  test_duration_minutes: 60
  reference_sources:
    - opensky_network
    - flightradar24
  
  thresholds:
    precision:
      excellent: 50.0    # RMS < 50m
      good: 100.0        # RMS < 100m
      acceptable: 200.0  # RMS < 200m
    
    temporal:
      excellent: 0.95    # Continuité > 95%
      good: 0.90         # Continuité > 90%
      acceptable: 0.80   # Continuité > 80%

📊 Exemples de Résultats

Score de Qualification

🎯 RÉSULTATS DE QUALIFICATION ADS-B

Score Global: 87/100 (BON)

📊 Détail par Catégorie:
├── Précision (40%):     92/100 (EXCELLENT)
│   ├── RMS Horizontal:  45.2 m
│   ├── RMS Altitude:    28.7 m
│   └── Succès CPR:      98.5%
│
├── Temporel (20%):      85/100 (BON)
│   ├── Continuité:      94.2%
│   ├── Latence Moy:     12.3 ms
│   └── Aéronefs Suivis: 127
│
├── Signal (20%):        82/100 (BON)
│   ├── RSSI Moyen:      -28.4 dBm
│   ├── Intégrité:       97.8%
│   └── Plage Dyn:       45.2 dB
│
└── Disponibilité (20%): 89/100 (BON)
    ├── Portée Max:      287 km
    ├── Taux Détection:  91.3%
    └── Couverture:      Excellente

🧪 Tests et Validation

Exécution des Tests

# Tests unitaires
python -m pytest tests/ -v

# Tests avec couverture
python -m pytest tests/ --cov=scripts/ --cov-report=html

# Tests de performance
python -m pytest tests/ -m "not slow"

Validation avec Données Réelles

# Test avec données OpenSky
python examples/validate_with_opensky.py

# Comparaison multi-récepteurs
python examples/multi_receiver_comparison.py

🤝 Contribution

Développement

# Installation développement
pip install -r requirements-dev.txt

# Pre-commit hooks
pre-commit install

# Formatage code
black scripts/ tests/
isort scripts/ tests/

Standards de Code

  • Python 3.8+ avec type hints
  • Black pour le formatage
  • pytest pour les tests
  • Documentation complète des fonctions

📜 Licence

MIT License - voir LICENSE pour les détails.

🙏 Remerciements

  • rs1090 - Bibliothèque de décodage ADS-B haute performance
  • OpenSky Network - Données de référence ADS-B
  • Ondocéan GNSS Qualify - Méthodologie de qualification

📞 Support


Ondocéan ADS-B Qualify - Qualification objective des systèmes ADS-B RTL-SDR

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages