FlightRadar24
On ne présenta pas FlightRadar24 un merveilleux outil pour savoir quoi vole et où.
Ici on voit les vols au dessus de la France un Dimache de fin aout à 18h00.
C'est très beau on peut jouer avec mais ce serait mieux de pouvoir programmer le truc.
Il y a plusieurs librairies utilisables
- FlightRadarAPI
- pyflightdata
Peut être d'autres que je ne connais pas.
J'ai choisit la seconde qui me parait mieux documentée : https://pyflightdata.readthedocs.io/en/latest/index.html
pyflightdata
Installation
Elle s'installe d'un simple
pip3 install pyflightdata
Il n'y a rien d'autre a dire
Exemple
On peut, par exemple, demander la liste des n derniers vols effectués d'un vol identifié par son code.
Par exemple le vol AF22 de Paris CDG à New York JFK programmé à 9:00 le matin.
On veut les deux derniers vols effectués:
from pyflightdata import FlightData
f=FlightData()
f.get_history_by_flight_number('AF22')[-2:]
Ligne 1 on initialise la librairie, en 2 on crée l'objet de requête et en 3 on réalise la requête.... ça donne:
[{
'identification': {
'number': {
'default': 'AF22',
'alternative': 'None'
},
'callsign': 'AFR022',
'codeshare': 'None'
},
'status': {
'live': False,
'text': 'Landed 11:22',
'estimated': 'None',
'ambiguous': False,
'generic': {
'status': {
'text': 'landed',
'type': 'arrival',
'color': 'yellow',
'diverted': 'None'
},
'eventTime': {
'utc_millis': 1692717742000,
'utc_date': '20230822',
'utc_time': '1722',
'utc': 1692717742,
'local_millis': 1692703342000,
'local_date': '20230822',
'local_time': '1322',
'local': 1692703342
}
}
},
'aircraft': {
'model': {
'code': 'B77W',
'text': 'Boeing 777-328(ER)'
},
'registration': 'F-GZNP',
'country': {
'name': 'France',
'alpha2': 'FR',
'alpha3': 'FRA'
},
'restricted': False,
'serialNo': 'None',
'age': {
'availability': True
},
'availability': {
'serialNo': True,
'age': True
}
},
'owner': {
'name': 'Air France',
'code': {
'iata': 'AF',
'icao': 'AFR'
}
},
'airline': {
'name': 'Air France',
'code': {
'iata': 'AF',
'icao': 'AFR'
},
'short': 'Air France'
},
'airport': {
'origin': {
'name': 'Paris Charles de Gaulle Airport',
'code': {
'iata': 'CDG',
'icao': 'LFPG'
},
'position': {
'latitude': 49.012516,
'longitude': 2.555752,
'country': {
'name': 'France',
'code': 'FR'
},
'region': {
'city': 'Paris'
}
},
'timezone': {
'name': 'Europe/Paris',
'offset': 7200,
'abbr': 'CEST',
'abbrName': 'Central European Summer Time',
'isDst': True
},
'visible': True
},
'destination': {
'name': 'New York John F. Kennedy International Airport',
'code': {
'iata': 'JFK',
'icao': 'KJFK'
},
'position': {
'latitude': 40.639751,
'longitude': -73.7789,
'country': {
'name': 'United States',
'code': 'US'
},
'region': {
'city': 'New York'
}
},
'timezone': {
'name': 'America/New_York',
'offset': -14400,
'abbr': 'EDT',
'abbrName': 'Eastern Daylight Time',
'isDst': True
},
'visible': True
},
'real': 'None'
},
'time': {
'scheduled': {
'departure_millis': 1692685800000,
'departure_date': '20230822',
'departure_time': '0830',
'departure': 1692685800,
'arrival_millis': 1692715200000,
'arrival_date': '20230822',
'arrival_time': '1640',
'arrival': 1692715200
},
'real': {
'departure_millis': 1692690401000,
'departure_date': '20230822',
'departure_time': '0946',
'departure': 1692690401,
'arrival_millis': 1692717742000,
'arrival_date': '20230822',
'arrival_time': '1722',
'arrival': 1692717742
},
'estimated': {
'departure': 'None',
'arrival': 'None'
},
'other': {
'eta_millis': 1692717742000,
'eta_date': '20230822',
'eta_time': '1722',
'eta': 1692717742,
'updated_millis': 1692717742000,
'updated_date': '20230822',
'updated_time': '1722',
'updated': 1692717742,
'duration': 27360
}
}
}, {
'identification': {
'number': {
'default': 'AF22',
'alternative': 'None'
},
'callsign': 'AFR022',
'codeshare': 'None'
},
'status': {
'live': False,
'text': 'Landed 11:53',
'estimated': 'None',
'ambiguous': False,
'generic': {
'status': {
'text': 'landed',
'type': 'arrival',
'color': 'red',
'diverted': 'None'
},
'eventTime': {
'utc_millis': 1692633231000,
'utc_date': '20230821',
'utc_time': '1753',
'utc': 1692633231,
'local_millis': 1692618831000,
'local_date': '20230821',
'local_time': '1353',
'local': 1692618831
}
}
},
'aircraft': {
'model': {
'code': 'B77W',
'text': 'Boeing 777-328(ER)'
},
'registration': 'F-GZNS',
'country': {
'name': 'France',
'alpha2': 'FR',
'alpha3': 'FRA'
},
'restricted': False,
'serialNo': 'None',
'age': {
'availability': True
},
'availability': {
'serialNo': True,
'age': True
}
},
'owner': {
'name': 'Air France',
'code': {
'iata': 'AF',
'icao': 'AFR'
}
},
'airline': {
'name': 'Air France',
'code': {
'iata': 'AF',
'icao': 'AFR'
},
'short': 'Air France'
},
'airport': {
'origin': {
'name': 'Paris Charles de Gaulle Airport',
'code': {
'iata': 'CDG',
'icao': 'LFPG'
},
'position': {
'latitude': 49.012516,
'longitude': 2.555752,
'country': {
'name': 'France',
'code': 'FR'
},
'region': {
'city': 'Paris'
}
},
'timezone': {
'name': 'Europe/Paris',
'offset': 7200,
'abbr': 'CEST',
'abbrName': 'Central European Summer Time',
'isDst': True
},
'visible': True
},
'destination': {
'name': 'New York John F. Kennedy International Airport',
'code': {
'iata': 'JFK',
'icao': 'KJFK'
},
'position': {
'latitude': 40.639751,
'longitude': -73.7789,
'country': {
'name': 'United States',
'code': 'US'
},
'region': {
'city': 'New York'
}
},
'timezone': {
'name': 'America/New_York',
'offset': -14400,
'abbr': 'EDT',
'abbrName': 'Eastern Daylight Time',
'isDst': True
},
'visible': True
},
'real': 'None'
},
'time': {
'scheduled': {
'departure_millis': 1692599400000,
'departure_date': '20230821',
'departure_time': '0830',
'departure': 1692599400,
'arrival_millis': 1692628800000,
'arrival_date': '20230821',
'arrival_time': '1640',
'arrival': 1692628800
},
'real': {
'departure_millis': 1692606711000,
'departure_date': '20230821',
'departure_time': '1031',
'departure': 1692606711,
'arrival_millis': 1692633231000,
'arrival_date': '20230821',
'arrival_time': '1753',
'arrival': 1692633231
},
'estimated': {
'departure': 'None',
'arrival': 'None'
},
'other': {
'eta_millis': 1692633231000,
'eta_date': '20230821',
'eta_time': '1753',
'eta': 1692633231,
'updated_millis': 1692633663000,
'updated_date': '20230821',
'updated_time': '1801',
'updated': 1692633663,
'duration': 26520
}
}
}]
C'est très long mais on voit bien la structure retournée.
On a un tableau de valeurs "dictionnaires" imbriquées.
- identification décrit le vol lui même (ses différents codes)
- status donne son état.
- ['status']['live'] par exemple donne False si le vol est terminé et True si il est en vol.
- ['status']['text'] donne 'Scheduled', 'estimateed xx:xx', 'Landed xx:xx' ou 'Canceled'. xx:xx correspond a l'heure d'arrivée (réelle ou estimée)
- aircraft c'est l'avion qui fait le vol.
Pour le reste on regarde le texte ci dessus.