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

In [39]:
SC=json.loads(file('../json/SC2.json','r').read())
I3=json.loads(file('../json/I3.json','r').read())

In [43]:
for c in SC:
    if len(SC[c])>0:

        print c,
        #read mdf data
        cpath=I3[c].lower()
        cpath='../countries/'+cpath
        mdf_dest=pd.read_json(json.loads(file(cpath+'/json/mdf_dest.json','r').read()))
        mdf_arrv=pd.read_json(json.loads(file(cpath+'/json/mdf_arrv.json','r').read()))
        mdf_dest['ID']=mdf_dest['From']
        mdf_arrv['ID']=mdf_arrv['To']
        mdf=pd.concat([mdf_dest,mdf_arrv])

        #save combined - not necessary, space hog
        #file(cpath+"/json/mdf.json",'w').write(json.dumps(mdf.reset_index().to_json()))

        #parse data into flights
        mdg=mdf.set_index(['ID','City','Airport','Airline'])
        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
        file(cpath+"/json/flights.json",'w').write(json.dumps(flights))


Canada Turkmenistan Saint Helena Lithuania Cambodia Ethiopia Aruba Perú Argentina Bolivia Cameroon Burkina Faso Ghana Saudi Arabia Cape Verde United States Minor Outlying Islands Cocos (Keeling) Islands Slovenia Guatemala Guinea Wallis And Futuna Dominica Liberia Maldives Pakistan Oman Tanzania Saint Kitts And Nevis Albania Gabon Saint Pierre and Miquelon Monaco New Zealand Yemen Denmark Jamaica Greenland Samoa United Arab Emirates Guam Kosovo India Azerbaijan Madagascar Lesotho Saint Vincent and the Grenadines Kenya South Korea Belarus Tajikistan Turkey Afghanistan Northern Mariana Islands Eritrea Solomon Islands Saint Lucia Mongolia France Bermuda Slovakia Somalia Laos Nauru Norway Malawi Cook Islands Benin Libya Cuba Montenegro Djibouti Togo China Armenia Dominican Republic Germany Ukraine Bahrain Tonga Cayman Islands Western Sahara Finland Central African Republic Mauritius Sweden Vietnam Antigua And Barbuda Macedonia Mali Russia Bulgaria United States Romania Angola Chad South Africa Cyprus Caribbean Netherlands Malaysia Austria Mozambique Uganda Hungary Niger Brazil Faroe Islands Kuwait Panama Guyana Costa Rica Luxembourg American Samoa Bahamas British Virgin Islands Gibraltar Ireland Italy Nigeria Ecuador Bangladesh Brunei Australia Iran Algeria El Salvador Tuvalu Czech Republic Marshall Islands Chile Puerto Rico Belgium Kiribati Haiti Belize Hong Kong Sierra Leone Georgia Gambia Philippines Moldova French Guiana Morocco Namibia French Polynesia Guinea-Bissau Thailand Switzerland Grenada Cote D'ivoire (Ivory Coast) U.S. Virgin Islands Seychelles Portugal Estonia Uruguay Equatorial Guinea Lebanon Uzbekistan Egypt Falkland Islands (Malvinas) Rwanda Timor-Leste Spain Colombia Reunion Burundi Taiwan Turks and Caicos Islands Barbados Qatar Palau Curacao Bhutan Sudan Nepal São Tomé and Principe Micronesia Netherlands Bosnia And Herzegovina Suriname Anguilla Venezuela Israel Indonesia Iceland Zambia Senegal Papua New Guinea Zimbabwe Jordan Vanuatu Martinique Kazakhstan Poland Mauritania Kyrgyzstan Mayotte Iraq Montserrat New Caledonia North Korea Paraguay Latvia South Sudan Japan Croatia Syria Guadeloupe Burma Honduras Malta Mexico Tunisia Nicaragua Singapore Serbia Comoros United Kingdom Trinidad And Tobago Congo Greece Sri Lanka Fiji Botswana

Global


In [ ]:
dbpath='E:/Dropbox/Public/datarepo/aviation/' #large file db path
MDF_dest=json.loads(file(dbpath+'json/MDF_dest.json','r').read())
MDF_arrv=json.loads(file(dbpath+'json/MDF_arrv.json','r').read())

In [50]:
gdf_dest=pd.DataFrame(MDF_dest)
gdf_arrv=pd.DataFrame(MDF_arrv)

In [57]:
gdf_dest['ID']=gdf_dest['From']
gdf_arrv['ID']=gdf_arrv['To']
gdf=pd.concat([gdf_dest,gdf_arrv])

In [58]:
#parse data into flights
mdg=gdf.set_index(['ID','City','Airport','Airline'])

In [54]:
import os.path
directory='../countries/wd'
if not os.path.exists(directory) :
    os.makedirs(directory)
for j in ['code','d3','json','map']:
    if not os.path.exists(directory+'/'+j):
        os.makedirs(directory+'/'+j)

In [ ]:
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 [61]:
file("../countries/wd/json/flights.json",'w').write(json.dumps(flights))