Skip to main content

Flight Radar Data Processing

Description

Ce projet intègre l'analyse de données de vol en temps réel en utilisant l'API FlightRadar24, Apache Spark, et un notebook Jupyter pour l'extraction, le traitement, l'analyse et la visualisation des données. Les scripts python sont utilisés pour automatiser le processus de traitement des données. Initialement, j'ai opté pour le notebook Jupyter FlightRadar.ipynb pour son interactivité et sa facilité d'utilisation lors du développement et de l'exploration des données. Cependant, avec la nécessité de rafraîchir le processus toutes les 2 heures, j'ai choisi d'utiliser les fichiers Python (py) pour permettre une exécution planifiée plus facile via un cron job. Étant donné que l'installation d'APScheduler pouvait être complexe, j'ai opté pour l'utilisation d'un planificateur (Scheduler) pour maintenir la simplicité tout en automatisant le flux de travail de traitement des données. Cette approche offre une solution robuste pour garantir la mise à jour régulière des informations de vol sans nécessiter des configurations avancées d'outils complexes.

Schéma du processus du projet

image.png

Le processus du projet aérien commence par l'extraction de données en temps réel sur les vols à partir de l'API Flight Radar. Ces données sont intégrées et traitées à l'aide de Python et Spark, avec une planification automatique toutes les deux heures via APScheduler. Le traitement des données implique l'agrégation, la transformation et le nettoyage, assurant la qualité et la cohérence des informations. Les données sont ensuite stockées sous forme de fichiers plats (CSV) pour une analyse ultérieure. La phase d'analyse comprend le calcul des indicateurs de performance clés (KPIs) à partir des données nettoyées. Enfin, le projet aboutit à la visualisation des données, où des graphiques sont créés pour une interprétation visuelle des tendances et des informations essentielles sur les vols, les compagnies aériennes, les aéroports et les zones.

Fonctionnalités Principales

1. ApiFlightRadar

Objectif : Interagit avec l'API FlightRadar24 pour récupérer des données de vol en temps réel. Méthodes clés : get_flights_data, get_airlines_data, get_airport_data, get_regional_flights. Utilisation : Collecte et initialisation des données de vol pour un traitement ultérieur.

2. DataSchema

Composants : Flight, Airline, Airport, Regional. Objectif : Définit la structure de données et le schéma pour différents types de données comme les vols, les compagnies aériennes, etc. Utilisation : Utilisé dans toute l'application pour une structure de données cohérente.

3. KPIAnalytics

Objectif : Calcule divers KPI comme le plus grand nombre de vols, le vol le plus long et les temps de vol moyens. Méthodes clés : get_most_flights, get_longest_flight, get_avg_distance_by_continent. Utilisation : Essentiel pour l'analyse de données et la génération d'aperçus.

4. LoggerManager

Objectif : Gère les logs de l'application, assurant le suivi de toutes les activités. Fonctionnalités : Niveaux de logs personnalisables et gestion des fichiers. Utilisation : Vital pour le débogage et le suivi des performances de l'application.

5. Classes de Service

Objectif : Gèrent des segments de données spécifiques et incluent des méthodes pour récupérer, traiter et sauvegarder les données. Utilisation : Centrales dans le fonctionnement de l'application pour une gestion organisée et efficace des données.

6. SparkManager

Objectif : Gère les sessions Spark et les dataframes, et fournit des fonctions pour la manipulation des données. Méthodes clés : create_df, clean_df, save_df. Utilisation : Essentiel pour le traitement de données à grande échelle.

7. main

Fonctionnalité : Initialise et orchestre l'application, planifiant les tâches et gérant le flux de travail. Utilisation : Point d'entrée de l'application, reliant tous les composants.

FlightRadarExaltLogsFinal.ipynb (Notebook Jupyter)

  • Récupération et traitement des données de vol à partir de l'API FlightRadar24.
  • Configuration initiale des composants nécessaires (logger, API, session Spark).
  • Nettoyage et transformation des données avec Apache Spark.
  • Sauvegarde des données traitées au format CSV.
  • Calcul et enregistrement des indicateurs clés de performance (KPI).
  • Visualisation des données de vol pour une analyse plus intuitive.

Installation et Utilisation pour les fichiers python

  1. Installer les dépendances :
    pip install FlightRadarAPI pyspark apscheduler
    

Installation et Utilisation pour jupyter notebook

  1. Installer les dépendances :
    pip install FlightRadarAPI pyspark 
    

Technologies Utilisées

  • Python
  • Apache Spark
  • SQL
  • FlightRadar24 API
  • Jupyter Notebook
  • APScheduler
  • matplotlib
  • seaborn

L'Architecture Médaillon

Sourcing des Données (Zone de Staging)

  • Le code intègre une phase de collecte de données principalement via l'API FlightRadar24.
  • La classe ApiFlightRadar est utilisée pour l'extraction des données.
  • Des méthodes sont présentes pour récupérer des données sur les vols, les compagnies aériennes, les aéroports, etc.

Traitement des Données (Zone de Transformation)

  • Les classes ServiceFlight, ServiceAirline, ServiceAirport, et ServiceRegional suggèrent le traitement et la transformation des données.
  • Les méthodes telles que process_flights_data et process_airlines_data indiquent une transformation des données extraites.

Chargement des Données (Zone de Présentation)

  • Utilisation de SparkManager pour la gestion des données et la création de vues.
  • Les méthodes create_view et save_df sont utilisées pour la finalisation et la préparation des données pour l'analyse ou la visualisation.

Industrialisation du Code

Modularité et Organisation

  • Organisation en classes distinctes avec des responsabilités spécifiques.
  • Séparation des préoccupations avec des classes dédiées à l'API, au traitement des données, à la gestion des logs, etc.

Gestion des Erreurs

  • Présence de blocs try-except pour la gestion des exceptions.

Logging

  • Intégration d'un système de logging pour le débogage et la surveillance en production.

Extensibilité et Maintenance

  • Code écrit pour faciliter l'ajout de nouvelles fonctionnalités ou la modification des existantes.
  • Utilisation de classes et de méthodes spécifiques pour la maintenabilité du code.

Performance et Optimisation

  • Utilisation de Spark pour traiter de grands volumes de données.
  • La performance dépend de la mise en œuvre spécifique des méthodes et de l'optimisation des requêtes Spark.

Automatisation et Orchestration

  • Intégration d'un scheduler (BackgroundScheduler) pour automatiser les tâches.

Conclusion

Le projet Flight Radar Data Processing représente une solution avancée et complète pour l'analyse et le traitement des données de vol en temps réel. Utilisant l'API FlightRadar24, Apache Spark, et un notebook Jupyter, ce projet se distingue par sa capacité à automatiser et planifier le traitement des données, rendant l'analyse des vols plus accessible et intuitive.

La modularité du code, avec des classes distinctes pour différentes fonctions, assure une maintenance et une extensibilité aisées, permettant une adaptation et une expansion continues du projet. Le système de logging intégré et la gestion des erreurs garantissent une robustesse et une fiabilité élevées, essentielles pour le traitement en temps réel.

Avec des capacités telles que le nettoyage, la transformation et la visualisation des données, ce projet offre non seulement des informations précieuses sur les tendances actuelles de l'aviation, mais sert également de plateforme pour l'exploration de données et la découverte d'insights significatifs.

Ce projet est idéal pour les analystes de données, les professionnels de l'aviation et les développeurs d'applications, offrant un cadre solide pour le traitement des données de vol et l'extraction d'informations stratégiques. Il démontre l'efficacité de la combinaison de technologies modernes telles que Python, Spark et Jupyter pour relever les défis du traitement des big data en temps réel.

En conclusion, Flight Radar Data Processing est un projet innovant qui marque un pas en avant dans le domaine de l'analyse de données de vol, offrant des capacités d'analyse avancées et une flexibilité inégalée pour les professionnels et les passionnés de l'aviation.

Metadata

Release files for badr-g-flight-radar-v1 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for badr-g-flight-radar-v1 1.0
File Size Uploaded Provenance Actions
badr-g-flight-radar-v1-1.0.tar.gz 276.1 kB Without provenance Details for badr-g-flight-radar-v1-1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for badr-g-flight-radar-v1 1.0
File Interpreter ABI Platform Actions
badr_g_flight_radar_v1-1.0-py3-none-any.whl Python 3 none any Details for badr_g_flight_radar_v1-1.0-py3-none-any.whl

Total release size: 378.5 kB

Release files / badr-g-flight-radar-v1-1.0.tar.gz

Download URL badr-g-flight-radar-v1-1.0.tar.gz
Size 276.1 kB
Tags Source
SHA-256 checksum
How to use checksums
67d8471acfe7570efcf5d2e21fba2ad4507ca7b232bb07fb4365934c6363449e
BLAKE2b-256 checksum
How to use checksums
2767aee436d938d1116950c44e66d3b97ed553bc7fccf10ee9aaf13812e1b09f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Release files / badr_g_flight_radar_v1-1.0-py3-none-any.whl

Download URL badr_g_flight_radar_v1-1.0-py3-none-any.whl
Size 102.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1baf0969e399f1e0586295c24ebd12d08d1edf440c346d956c787f004db29a7f
BLAKE2b-256 checksum
How to use checksums
9b2ac8b9146e8c8a38eb40e23e28af5bbb00968ec4ae194a7be422c98686743e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Security for badr-g-flight-radar-v1 1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page