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

In [82]:
L=json.loads(file('../json/L.json','r').read())
M=json.loads(file('../json/M.json','r').read())
N=json.loads(file('../json/N.json','r').read())

In [83]:
AP={}
for c in M:
    if c not in AP:AP[c]={}
    for i in range(len(L[c])):
        AP[c][N[c][i]]=L[c][i]

In [84]:
baseurl='https://www.airportia.com/'
import requests, urllib2

In [85]:
def urlgetter(url):
    s = requests.Session()
    cookiesopen = s.get(url)
    cookies=str(s.cookies)
    fcookies=[[k[:k.find('=')],k[k.find('=')+1:k.find(' for ')]] for k in cookies[cookies.find('Cookie '):].split('Cookie ')[1:]]
    #push token
    opener = urllib2.build_opener()
    for k in fcookies:
        opener.addheaders.append(('Cookie', k[0]+'='+k[1]))
    #read html
    return s.get(url).content

In [120]:
SD={}
SC=json.loads(file('../json/SC2.json','r').read())

In [121]:
#load data if prepared partially before
citysave=json.loads(file('../json/citysave.json','r').read())
SD={}
for i in citysave:
    if citysave[i]['country'] not in SD:SD[citysave[i]['country']]={}
    if i not in SD[citysave[i]['country']]:SD[citysave[i]['country']][i]={}
    SD[citysave[i]['country']][i]=citysave[i]['coords']

In [122]:
#pop out last - if applicable
try: SD.pop(c)
except: pass
for c in SC:
    if c not in SD:SD[c]={}
    print c
    for i in SC[c]:
        #parse only new
        if i not in SD[c]:
            print i,
            url=baseurl+AP[c][i]+'/map/'
            m=urlgetter(url)
            z=m[m.find('latLng'):]
            SD[c][i]=[float(x) for x in z[z.find('[')+1:z.find(']')].split(',')]
    print


Canada

Turkmenistan

Saint Helena
ASI
Lithuania

Cambodia

Ethiopia

Aruba

Swaziland

Perú
ATA LIM PEM PCL ILQ CIX AQP JUL TCQ HUU IQT TGI PIU TYL CJA JAU CUZ TPP TRU AYP TBP ANS
Argentina

Bolivia

Cameroon

Burkina Faso

Ghana

Saudi Arabia

Cape Verde

United States Minor Outlying Islands
AWK BAR
Cocos (Keeling) Islands
CCK
Slovenia

Guatemala

Guinea

Wallis And Futuna
FUT WLS
Dominica

Liberia

Maldives

Pakistan

Oman

Tanzania

Palestinian Territory

Saint Kitts And Nevis
NEV SKB
Albania

Gabon

Saint Pierre and Miquelon
FSP MQC
Monaco

New Zealand

Yemen

Denmark

Jamaica

Greenland

Samoa

United Arab Emirates

Guam
GUM
Kosovo

India

Azerbaijan

Madagascar

Lesotho

Saint Vincent and the Grenadines

Kenya

South Korea
KUV MWX USN YNY KWJ TAE KPO HIN CJJ ICN GMP CJU SHO WJU SYS RSU PUS
Belarus

Tajikistan

Turkey

Afghanistan

Northern Mariana Islands
ROP SPN
Eritrea

Solomon Islands

Saint Lucia

Mongolia
AVK
France

Bermuda

Slovakia

Somalia

Laos
NEU ODY PKZ ZVK XKH VTE LPQ LXG
Nauru

Norway

Malawi

Cook Islands

Benin

Libya
BEN TIP MJI TOB LAQ MRA
Cuba

Montenegro

Djibouti

Togo

China

Armenia

Dominican Republic

Germany

Ukraine

Bahrain

Tonga

Cayman Islands

Western Sahara

Finland

Central African Republic
BGF
Mauritius

Sweden

Vietnam

Antigua And Barbuda
ANU
Macedonia
OHD SKP
Mali

Russia
URS CKH NAL EGO NYM NYA NNM OHH IWA MQF KHV VVO KYZ THX SVO OVS MRV IAA URJ LPK BQS SVX ZIA MJZ TYD KVK OVB PYJ REN KVX GRV AER DME KSZ KUF RGK CEE NER CEK OSW PKC RTW SCW HMA ROV IKS IGT KPW VKT YKS CSY HTG KXK HTA KCK NOZ INA BTK NOJ PEX PEZ PES PEE NJC NUX IKT ASF NBC KJA KRR VOZ VOG KRO LED KEJ GDX UFA GDZ UUS OMS MMK UUD KZN UKX TJM USK BAX AAQ TBW TOF SWT NSK CYX DYR UCT SGC EYK ABA KLF ULY SLY GOJ ULV STW VKO ESL KGP OGZ KGD MCX ARH IJK
Bulgaria

United States
AGN AGC AGS PKB SPZ SPS SPI BWG BWI BYI JNU SNA PQI SNK SNS SNP MAF YUM SNY BEH EVM BED BET LSE VLD TTN GRR GRB OXR GRK GRI HLN KKH ENW CTH EDC EDE LMT ORL ORH ORD DPA RCA ONP ONT CFK PNE SAN PRC SAC SAF SAD PVC CHA MRY JAX CHO CHS MRK JAE JAC MRB MRC APN DBQ APC APA APF ISN TKF HMT TKJ GCC DLG GCK DLH AFW BTT BTV BTP BTR SSI BTM BTL BTI LNY LNS LNN LNK PDT EUG BBD BBC YAK BBW TUP TUS TUL CYS EVV FYU FKL VCT CWA CKB PAE PAH DCA AWM MQT MQY FWA OME AET BUR BUF BLV PSK PSM MOR PSF PSG MOU MOT MOB PSP JLN MOD KMO HNM HNL BCB HNS BCT UIN PIZ TVL TVF TVC JZI SRQ TDZ NME LOL CVO LOU CVG WJF HLG ELM HPN HPB KKA WDG DRT DRO DRG RVS CXL CXO DHN SCM MNZ PTK SCK PTH SCE JMS SCC SCB PTW PTU MLI PBG PBI AVW AVP SUA SUN SUS SUX LFT TEB TEX NBG ADS ADQ DET DNV GMU MWC BRY BRW BRO BRL BRD TWF MWH EAA RKD EAR EAU EAT ESW KLG HOB HOM ESD VSF GOL SCF CVN VAK VAD PTV CMI CMH CMX ORF DSM DSI OKS INT RWI INS INL OKC BNA IND GLH AKP AKK AKN DOV GLV AUG AUS AUZ SBP MMU MMT SBY PUB MML MMH PUW SBN SBM ERV UKI KOA KOY ERI AVL VPS STC STL STK STP STS JXN NCN FNT LIH LIT FNL PGV WTK TPA HRL HRO KAE KAL RHI RME UGN RTN OJC ENA ENV RFD OXD OXC ATL ISP ATK ATW ISO ATS ISM ATY PVU PVD SEA SEM CLL CLM FRG FRD CLD CLE PDK IMT CLT FRY CLP PNS SWO SWF BPT GYR DNL MLB MLS MLU MLY NRB RIV RIW HSI HSL ADK RIL HSV RIF RIE RIC KNK HAO KNW HAR LXV JRA VQQ SYR EMK LDM LJN FOX YKM FOD FOE VGT TCL FOK WWT WWD SAA COS COU ILN FSM ILI WAA SAV SAT RUT MKG MKE MKC DIK MKO MKL JHM JHW AID AIA UTM IRK JAN RKS SDX SDY SDF PWA PWM PWK MRI BOS BOI SXY LYH ILM BQK PEQ RKH COD FLL FLO FLG HON ALS TRI TRM TRX HTO HTH HOU HTS ESC RDU HSP ELD RDD RDG ELY RDB RDM ELP LEB LEE LEX USA AZO AZA UST SGY SGR SGU SGF CNY CNM ICT SIT SIY SIK TAL GIF AHN NPT GUC GUP HUL HCR BLI BLH KPN LZU EKO EKA OUN LFK FCA FCM FMY MKK FMN VEE YIP VEL AIN AIK CAK CAE PGD PGA PDX OGS UDD RST OGG RSW JFK MIA AOO NQX SDP SOW IPL SFO IPT SFB NGU KSM HDN BMG BMI SHR SHV SHX SHD SHH MGE MGM MGW LAR TBN LUR VJI LUK GTF ECP VTN GTR TLH GCN HVR ILG UCA RBY RBL RBD OTH OTM LGB LGA TLA LGD OTZ AXS AXV AXN IWD IAN IAH IAG PHO PHN PHL HVN PHF PHX SKF SKK MFE MFR GEG MHK GKT DDC MHT MHR ANC ANI GWO TMB IGM NJK HWD HES BJC BJJ BJI HYA HYG WSN FAY FAR OWD OWA FAT OWB FAI LVS VKS SVA LVK OAK OAJ CCR PIH PIA PIB MYR MYU PIE MYV MYL PIP PIR PIT CYF ZPH WMO WMC KVL GJT MWA DEN DEC AMA GGW GNV VCV ACK NEA XNA KUK ACV ACT NEW ACY HFD BKG BKC BKL BKW VDZ SJT SJC GDV MEM MEO MEI PSC LWS YNG LWT LWB LWC TXK SMF TNP TNC GVT HHR JEF HHH WLK CPR CPS WRG WRB WRI LAL LAN LAF FFT LAA FFM LAX LAW LAS DTN PUC DTW SBA BDL FTW CBE SMX SMO SMN BZN MDH JST GGG MDW MDT MVW MVY DFW MVL ALO ALM ALB ALW TOP TOI TOL TOC TOA TOG KFP NHK KOT HIB HIF IAD ABE ABI ABL KTS ABQ ABR ABY BHM BHB EGE LBB LBE RAP LBF LBL BFF BFD BFI BFM BFL NUI EYW VIS TYQ TYR TYS IFP OCF CEC CEM CEU PKA CEZ HGR CSG CSV KTN FSD MUT JBR MUE MUO AST NUQ ASE AEX ASN ASL DUJ UNU DMA DUA UNK DUT ITO OMA ITH ELI BIL BIF KWN KWT BIS SLN SLJ SLK SLE SLC MCO MCN MCK MCI MCG MCE GFK GFL MCW FHU BGM BGR LQK VNC VNY GPZ GPT CRP CRW FDK CRG WNA EFD RNO LCQ OPF LCK LCH DVL DVT OLF IKB OLS CDB CDC CDV CDR PLN MBL PPA GAM GAL GAI SOV MBS MTJ MTH MTN JCI ART ARG GSP GST TIW GSH GSO HKS GKY HNH KVC BVU BVY BVO ROA ROC OSU ROG OSC ROW EWN EWB BDR EWR LRD IDA CGI VRB CGF CUB CIC MSY CID CIK MSS MSP MSO MSN MSL CIU DAG DAB DAL DAN DAY DWH OOK
Romania

Angola

Chad

South Africa

Cyprus

Caribbean Netherlands
SAB EUX BON
Malaysia

Austria

Mozambique

Uganda

Hungary

Niger

Brazil

Faroe Islands
FAE
Kuwait

Panama

Guyana

Costa Rica

Luxembourg

American Samoa
PPG
Bahamas

British Virgin Islands

Gibraltar

Ireland

Italy

Nigeria

Ecuador

Bangladesh

Brunei
BWN
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
KIV
French Guiana

Morocco

Namibia

French Polynesia
AXR FAV TIH MKP MVT BOB HUH UAH NHV TKP PPT TKX RFP XMH HOI AUQ RGI GMR MOZ MAU AHE APK UAP RUR TUB
Guinea-Bissau

Thailand

Switzerland

Grenada

Cote D'ivoire (Ivory Coast)
BGG SPY ABJ OFI HGO BYK
U.S. Virgin Islands
STT STX
Seychelles

Portugal

Estonia

Uruguay
MDO
Equatorial Guinea

Lebanon

Uzbekistan

Egypt

Falkland Islands (Malvinas)
MPN
Rwanda

Timor-Leste

Spain

Colombia

Reunion
ZSE RUN
Burundi

Taiwan

Turks and Caicos Islands

Barbados

Qatar

Palau

Curacao
CUR
Bhutan

Sudan

Nepal

São Tomé and Principe

Micronesia
PNI KSA TKK YAP
Netherlands

Bosnia And Herzegovina
SJJ BNX OMO TZL
Suriname

Anguilla

Venezuela

Israel

Indonesia

Iceland

Zambia

Senegal

Papua New Guinea

Zimbabwe

Jordan

Vanuatu

Martinique
FDF
Kazakhstan

Poland

Mauritania

Kyrgyzstan

Mayotte
DZA
Iraq

Montserrat

New Caledonia
MEE LIF KOC UVE GEA TOU ILP NOU TGJ KNQ
Andorra

North Korea
FNJ
Paraguay

Latvia

South Sudan

Japan

Croatia

Syria
KAC DAM
Guadeloupe
PTP
Burma
AKY MNU KMV LIW BPE RGN TVY MDL BMO LSH KHM KYP PBU THL NYU HEH HOX SNW KAW MGU MGZ KET MYT
Honduras

Malta

Mexico

Tunisia

Nicaragua

Singapore

Serbia

Comoros

United Kingdom

Trinidad And Tobago
POS TAB
Antarctica

Congo

Greece

Sri Lanka

Fiji

Botswana


In [123]:
citysave={}
for c in SD:
    for i in SD[c]:
        citysave[i]={"coords":SD[c][i],
                 "country":c}

In [124]:
file("../json/citysave.json",'w').write(json.dumps(citysave))