Skip to main content

An ETL tool for Flight Radar data processing

Project description

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.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

badr-g-flight-radar-v1-1.0.tar.gz (276.1 kB view hashes)

Uploaded Source

Built Distribution

badr_g_flight_radar_v1-1.0-py3-none-any.whl (102.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page