In [16]:
import pandas as pd, json, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

In [17]:
from pygeocoder import Geocoder
apik='AIzaSyDybC2OroTE_XDJTuxjKruxFpby5VDhEGk'

In [18]:
locations=json.loads(file('locations_ae.json','r').read())

In [19]:
mdf_dest=pd.read_json(json.loads(file('mdf_ae_dest.json','r').read()))
mdf_arrv=pd.read_json(json.loads(file('mdf_ae_arrv.json','r').read()))

In [20]:
citysave_dest=json.loads(file('citysave_ae_dest.json','r').read())
citysave_arrv=json.loads(file('citysave_ae_arrv.json','r').read())

In [21]:
mdf_dest['ID']=mdf_dest['From']
mdf_dest.head()


Out[21]:
Airline Airport City Date From To index ID
0 Air Arabia DOH Doha https://www.airportia.com/united-arab-emirates... RKT Doha DOH 0 RKT
1 Air Arabia MCT Muscat https://www.airportia.com/united-arab-emirates... RKT Muscat MCT 1 RKT
10 Air Arabia MCT Muscat https://www.airportia.com/united-arab-emirates... RKT Muscat MCT 1 RKT
100 Air Arabia ISB Islamabad https://www.airportia.com/united-arab-emirates... RKT Islamabad ISB 3 RKT
1000 Jet Airways IXE Mangalore https://www.airportia.com/united-arab-emirates... AUH Mangalore IXE 8 AUH

In [22]:
mdf_arrv['ID']=mdf_arrv['To']
mdf_arrv.head()


Out[22]:
Airline Airport City Date From To index ID
0 Air Arabia KTM Kathmandu https://www.airportia.com/united-arab-emirates... Kathmandu KTM RKT 0 RKT
1 Air Arabia CGP Chittagong https://www.airportia.com/united-arab-emirates... Chittagong CGP RKT 1 RKT
10 Air Arabia DOH Doha https://www.airportia.com/united-arab-emirates... Doha DOH RKT 2 RKT
100 Air Arabia CAI Cairo https://www.airportia.com/united-arab-emirates... Cairo CAI RKT 2 RKT
1000 Etihad Airways BLR Bangalore https://www.airportia.com/united-arab-emirates... Bangalore BLR AUH 9 AUH

In [23]:
mdf=pd.concat([mdf_dest,mdf_arrv])

In [24]:
len(mdf_dest)


Out[24]:
13003

In [25]:
len(mdf_arrv)


Out[25]:
12955

In [26]:
mdf


Out[26]:
Airline Airport City Date From To index ID
0 Air Arabia DOH Doha https://www.airportia.com/united-arab-emirates... RKT Doha DOH 0 RKT
1 Air Arabia MCT Muscat https://www.airportia.com/united-arab-emirates... RKT Muscat MCT 1 RKT
10 Air Arabia MCT Muscat https://www.airportia.com/united-arab-emirates... RKT Muscat MCT 1 RKT
100 Air Arabia ISB Islamabad https://www.airportia.com/united-arab-emirates... RKT Islamabad ISB 3 RKT
1000 Jet Airways IXE Mangalore https://www.airportia.com/united-arab-emirates... AUH Mangalore IXE 8 AUH
10000 Emirates BCN Barcelona https://www.airportia.com/united-arab-emirates... DXB Barcelona BCN 383 DXB
10001 FlyDubai MLE Male https://www.airportia.com/united-arab-emirates... DXB Male MLE 384 DXB
10002 Emirates ZRH Zurich https://www.airportia.com/united-arab-emirates... DXB Zurich ZRH 385 DXB
10003 FlyDubai KTM Kathmandu https://www.airportia.com/united-arab-emirates... DXB Kathmandu KTM 386 DXB
10004 Cameroon Airlines JED Jeddah https://www.airportia.com/united-arab-emirates... DXB Jeddah JED 387 DXB
10005 Saudi Arabian Airlines RUH Riyadh https://www.airportia.com/united-arab-emirates... DXB Riyadh RUH 388 DXB
10006 Emirates BOM Mumbai https://www.airportia.com/united-arab-emirates... DXB Mumbai BOM 389 DXB
10007 Emirates MUC Munich https://www.airportia.com/united-arab-emirates... DXB Munich MUC 390 DXB
10008 Emirates DMM Dammam https://www.airportia.com/united-arab-emirates... DXB Dammam DMM 391 DXB
10009 Emirates LHR London https://www.airportia.com/united-arab-emirates... DXB London LHR 392 DXB
1001 Turkish Airlines IST Istanbul https://www.airportia.com/united-arab-emirates... AUH Istanbul IST 9 AUH
10010 Jet Airways BOM Mumbai https://www.airportia.com/united-arab-emirates... DXB Mumbai BOM 393 DXB
10011 Emirates JED Jeddah https://www.airportia.com/united-arab-emirates... DXB Jeddah JED 394 DXB
10012 Emirates NBO Nairobi https://www.airportia.com/united-arab-emirates... DXB Nairobi NBO 395 DXB
10013 SpiceJet CCJ Kozhikode https://www.airportia.com/united-arab-emirates... DXB Kozhikode CCJ 396 DXB
10014 Pakistan International Airlines ISB Islamabad https://www.airportia.com/united-arab-emirates... DXB Islamabad ISB 397 DXB
10015 Emirates IKA Tehran https://www.airportia.com/united-arab-emirates... DXB Tehran IKA 398 DXB
10016 FlyDubai BKK Bangkok https://www.airportia.com/united-arab-emirates... DXB Bangkok BKK 399 DXB
10017 Emirates BAH Bahrain https://www.airportia.com/united-arab-emirates... DXB Bahrain BAH 400 DXB
10018 FlyDubai BAH Bahrain https://www.airportia.com/united-arab-emirates... DXB Bahrain BAH 401 DXB
10019 Qatar Airways DOH Doha https://www.airportia.com/united-arab-emirates... DXB Doha DOH 402 DXB
1002 Etihad Airways MED Medina https://www.airportia.com/united-arab-emirates... AUH Medina MED 10 AUH
10020 Emirates MCT Muscat https://www.airportia.com/united-arab-emirates... DXB Muscat MCT 403 DXB
10021 Aeroflot SVO Moscow https://www.airportia.com/united-arab-emirates... DXB Moscow SVO 404 DXB
10022 Emirates DAC Dhaka https://www.airportia.com/united-arab-emirates... DXB Dhaka DAC 405 DXB
... ... ... ... ... ... ... ... ...
9972 FlyDubai EVN Yerevan https://www.airportia.com/united-arab-emirates... Yerevan EVN DXB 430 DXB
9973 Emirates LAX Los Angeles https://www.airportia.com/united-arab-emirates... Los Angeles LAX DXB 431 DXB
9974 Emirates BOS Boston https://www.airportia.com/united-arab-emirates... Boston BOS DXB 432 DXB
9975 Saudi Arabian Airlines JED Jeddah https://www.airportia.com/united-arab-emirates... Jeddah JED DXB 433 DXB
9976 Emirates CDG Paris https://www.airportia.com/united-arab-emirates... Paris CDG DXB 434 DXB
9977 FlyDubai ASB Ashgabat https://www.airportia.com/united-arab-emirates... Ashgabat ASB DXB 435 DXB
9978 FlyDubai HAS Ha'il https://www.airportia.com/united-arab-emirates... Ha'il HAS DXB 436 DXB
9979 Emirates FLL Fort Lauderdale https://www.airportia.com/united-arab-emirates... Fort Lauderdale FLL DXB 437 DXB
998 Etihad Airways PER Perth https://www.airportia.com/united-arab-emirates... Perth PER AUH 7 AUH
9980 Emirates MAN Manchester https://www.airportia.com/united-arab-emirates... Manchester MAN DXB 438 DXB
9981 Emirates SEA Seattle https://www.airportia.com/united-arab-emirates... Seattle SEA DXB 439 DXB
9982 FlyDubai BAH Bahrain https://www.airportia.com/united-arab-emirates... Bahrain BAH DXB 440 DXB
9983 IndiGo Airlines DEL Delhi https://www.airportia.com/united-arab-emirates... Delhi DEL DXB 441 DXB
9984 Kuwait Airways KWI Kuwait City https://www.airportia.com/united-arab-emirates... Kuwait City KWI DXB 442 DXB
9985 Oman Air MCT Muscat https://www.airportia.com/united-arab-emirates... Muscat MCT DXB 443 DXB
9986 FlyDubai KUF Samara https://www.airportia.com/united-arab-emirates... Samara KUF DXB 444 DXB
9987 Emirates BKK Bangkok https://www.airportia.com/united-arab-emirates... Bangkok BKK DXB 445 DXB
9988 Emirates BAH Bahrain https://www.airportia.com/united-arab-emirates... Bahrain BAH DXB 446 DXB
9989 FlyDubai TBS Tbilisi https://www.airportia.com/united-arab-emirates... Tbilisi TBS DXB 447 DXB
999 Etihad Airways KTM Kathmandu https://www.airportia.com/united-arab-emirates... Kathmandu KTM AUH 8 AUH
9990 Emirates LHR London https://www.airportia.com/united-arab-emirates... London LHR DXB 448 DXB
9991 Air India Express TRV Thiruvananthapuram https://www.airportia.com/united-arab-emirates... Thiruvananthapuram TRV DXB 449 DXB
9992 Qatar Airways DOH Doha https://www.airportia.com/united-arab-emirates... Doha DOH DXB 450 DXB
9993 Iran Air SYZ Shiraz https://www.airportia.com/united-arab-emirates... Shiraz SYZ DXB 451 DXB
9994 Emirates JFK New York https://www.airportia.com/united-arab-emirates... New York JFK DXB 452 DXB
9995 FlyDubai OTP Bucharest https://www.airportia.com/united-arab-emirates... Bucharest OTP DXB 453 DXB
9996 FlyDubai KWI Kuwait City https://www.airportia.com/united-arab-emirates... Kuwait City KWI DXB 454 DXB
9997 Emirates MCT Muscat https://www.airportia.com/united-arab-emirates... Muscat MCT DXB 455 DXB
9998 FlyDubai ALA Almaty https://www.airportia.com/united-arab-emirates... Almaty ALA DXB 456 DXB
9999 Emirates DOH Doha https://www.airportia.com/united-arab-emirates... Doha DOH DXB 457 DXB

25958 rows × 8 columns


In [27]:
mdg=mdf.set_index(['ID','City','Airport','Airline'])

In [28]:
flights={}
minn=1.0 #want to see minimum 1 flight in the past 2 weeks
for i in mdg.index.get_level_values(0).unique():
    #2 weeks downloaded. want to get weekly freq. but multi by 2 dept+arrv
    d=4.0
    if i not in flights:flights[i]={}
    for j in mdg.loc[i].index.get_level_values(0).unique():
        if len(mdg.loc[i].loc[j])>minn: #minimum 1 flights required in this period at least once every 2 weeks
            if j not in flights[i]:flights[i][j]={'airports':{},'7freq':0}
            flights[i][j]['7freq']=len(mdg.loc[i].loc[j])/d 
            for k in mdg.loc[i].loc[j].index.get_level_values(0).unique():
                if len(mdg.loc[i].loc[j].loc[k])>minn:
                    if k not in flights[i][j]['airports']:flights[i][j]['airports'][k]={'airlines':{},'7freq':0}
                    flights[i][j]['airports'][k]['7freq']=len(mdg.loc[i].loc[j].loc[k])/d
                    for l in mdg.loc[i].loc[j].loc[k].index.get_level_values(0).unique():
                        try:
                            if len(mdg.loc[i].loc[j].loc[k].loc[l])>minn: 
                                if l not in flights[i][j]['airports'][k]['airlines']:flights[i][j]['airports'][k]['airlines'][l]={'7freq':0}
                                flights[i][j]['airports'][k]['airlines'][l]['7freq']=len(mdg.loc[i].loc[j].loc[k].loc[l])/d
                        except:pass

In [29]:
file("flights_ae.json",'w').write(json.dumps(flights))