-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflightdata_adsb.py
128 lines (109 loc) · 3.19 KB
/
flightdata_adsb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
##Libraries
import numpy as np
import pandas as pd
import requests, json, argparse
argparser = argparse.ArgumentParser(
description='grab flight data from latitude/longitude')
argparser.add_argument(
'-ll',
'--latlong',
help='latitude and longitude of search center [i.e. 36.0828, -115.1375]')
argparser.add_argument(
'-ap',
'--airport',
help='airport ICAO code [i.e. KLAS]')
argparser.add_argument(
'-r',
'--range',
help='range(miles) to search')
argparser.add_argument(
'-a',
'--airline',
help='airline code')
#def _main_(args):
def _main_(airline, airport, landing):
# print(args)
# lat = float(args.latlong.split(',')[0])
# long = float(args.latlong.split(',')[1])
# range = float(args.range)
# airline = str(args.airline)
# airport = str(args.airport)
if airline == 'american':
airline_code = 'AA'
elif airline == 'delta':
airline_code = 'DL'
elif airline == 'spirit':
airline_code = 'NK'
elif airline == 'allegiant':
airline_code = 'G4'
elif airline == 'united':
airline_code = 'UA'
elif airline == 'alaska':
airline_code = 'AS'
elif airline == 'jetblue':
airline_code = 'B6'
elif airline == 'southwest':
airline_code = 'WN'
elif airline == 'hawaiian':
airline_code = 'HA'
elif airline == 'frontier':
airline_code = 'F9'
#aviationstack method
#URL; http://api.aviationstack.com/v1/flights?access_key=<API key>&dep_iata=<>&airline_iata=<>
apiKey = ""
url = "http://api.aviationstack.com/v1/flights?access_key="+str(apiKey)
if landing == 0:
payload = {'dep_icao':airport, 'airline_iata': airline_code, 'flight_data':'active'}
else:
payload = {'arr_icao': airport, 'airline_iata': airline_code, 'flight_data': 'active'}
response = requests.get(url, params=payload)
if response.status_code == 200:
#print(response.json())
test = json.loads(response.text)
else:
print("Error executing request")
# for i in test['data']:
# try:
# flight = i['flight']['iata']
# except:
# flight = 'N/A'
#
# try:
# tail = i['aircraft']['registration']
# except:
# tail = 'N/A'
#
# try:
# orig = i['departure']['icao']
# except:
# orig = 'N/A'
#
# try:
# dest = i['arrival']['icao']
# except:
# dest = 'N/A'
try:
flight = test['data'][0]['flight']['iata']
except:
flight = 'N/A'
try:
tail = test['data'][0]['aircraft']['registration']
except:
tail = 'N/A'
try:
orig = test['data'][0]['departure']['icao']
except:
orig = 'N/A'
try:
dest = test['data'][0]['arrival']['icao']
except:
dest = 'N/A'
#print(flight, tail, orig, dest)
return flight, tail, orig, dest
# if __name__ == '__main__':
# #args = argparser.parse_args()
# #flight, tail, orig, dest = _main_(args)
# airline = 'allegiant'
# airport = 'KLAS'
# flight, tail, orig, dest = _main_(airline, airport)
# print(flight, tail, orig, dest)