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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file badr-g-flight-radar-v1-1.0.tar.gz.

File metadata

  • Download URL: badr-g-flight-radar-v1-1.0.tar.gz
  • Upload date:
  • Size: 276.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for badr-g-flight-radar-v1-1.0.tar.gz
Algorithm Hash digest
SHA256 67d8471acfe7570efcf5d2e21fba2ad4507ca7b232bb07fb4365934c6363449e
MD5 2950c3e3528f89d1cbda996f47185740
BLAKE2b-256 2767aee436d938d1116950c44e66d3b97ed553bc7fccf10ee9aaf13812e1b09f

See more details on using hashes here.

File details

Details for the file badr_g_flight_radar_v1-1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for badr_g_flight_radar_v1-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1baf0969e399f1e0586295c24ebd12d08d1edf440c346d956c787f004db29a7f
MD5 31f4c2e85f7a1f69b5f6b30795724399
BLAKE2b-256 9b2ac8b9146e8c8a38eb40e23e28af5bbb00968ec4ae194a7be422c98686743e

See more details on using hashes here.

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