« FlightRadar24 » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 5 : | Ligne 5 : | ||
C'est très beau on peut jouer avec mais ce serait mieux de pouvoir programmer le truc. | 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. | |||
=== pyflightdata === | |||
C'est documenté ici documentée : https://pyflightdata.readthedocs.io/en/latest/index.html | |||
==== Installation ==== | |||
Elle s'installe d'un simple <syntaxhighlight lang="bash"> | |||
pip3 install pyflightdata | |||
</syntaxhighlight>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:<syntaxhighlight lang="python3" line="1"> | |||
from pyflightdata import FlightData | |||
f=FlightData() | |||
f.get_history_by_flight_number('AF22')[-2:] | |||
</syntaxhighlight>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:<syntaxhighlight lang="json-object" line="1"> | |||
[{ | |||
'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 | |||
} | |||
} | |||
}] | |||
</syntaxhighlight>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. |
Version actuelle datée du 27 août 2023 à 19:03
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.
pyflightdata
C'est documenté ici documentée : https://pyflightdata.readthedocs.io/en/latest/index.html
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.