{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploratory analysis of the US Airport Dataset\n", "\n", "This dataset contains data for 25 years[1995-2015] of flights between various US airports and metadata about these routes. Taken from Bureau of Transportation Statistics, United States Department of Transportation.\n", "\n", "Let's see what can we make out of this!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import networkx as nx\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "pass_air_data = pd.read_csv('datasets/passengers.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the `pass_air_data` dataframe we have the information of number of people that fly every year on a particular route on the list of airlines that fly that route." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0YEARORIGINDESTUNIQUE_CARRIER_NAMEPASSENGERS
001990ABEACY{'US Airways Inc.'}73.0
111990ABEATL{'Eastern Air Lines Inc.'}73172.0
221990ABEAVL{'Westair Airlines Inc.'}0.0
331990ABEAVP{'Westair Airlines Inc.', 'US Airways Inc.', '...8397.0
441990ABEBHM{'Eastern Air Lines Inc.'}59.0
\n", "
" ], "text/plain": [ " Unnamed: 0 YEAR ORIGIN DEST \\\n", "0 0 1990 ABE ACY \n", "1 1 1990 ABE ATL \n", "2 2 1990 ABE AVL \n", "3 3 1990 ABE AVP \n", "4 4 1990 ABE BHM \n", "\n", " UNIQUE_CARRIER_NAME PASSENGERS \n", "0 {'US Airways Inc.'} 73.0 \n", "1 {'Eastern Air Lines Inc.'} 73172.0 \n", "2 {'Westair Airlines Inc.'} 0.0 \n", "3 {'Westair Airlines Inc.', 'US Airways Inc.', '... 8397.0 \n", "4 {'Eastern Air Lines Inc.'} 59.0 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pass_air_data.head()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Create a MultiDiGraph from this dataset\n", "\n", "passenger_graph = nx.from_pandas_edgelist(pass_air_data, source='ORIGIN', target='DEST', edge_attr=['YEAR', 'PASSENGERS', 'UNIQUE_CARRIER_NAME'], create_using=nx.MultiDiGraph())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cleveland to Chicago, how many people fly this route?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'PASSENGERS': 409943.0,\n", " 'UNIQUE_CARRIER_NAME': \"{'Frontier Airlines Inc.', 'SkyWest Airlines Inc.', 'Republic Airlines', 'ExpressJet Airlines Inc.', 'American Airlines Inc.', 'Swift Air, LLC', 'GoJet Airlines LLC d/b/a United Express', 'Trans States Airlines', 'Envoy Air', 'Spirit Air Lines', 'United Air Lines Inc.', 'Shuttle America Corp.'}\",\n", " 'YEAR': 2015}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "passenger_graph['CLE']['ORD'][25]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAD8CAYAAACLrvgBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl4VdW5wOHfl5lAEjIDCSQgYZZBwuCAIjjgCLXWYge1xdreamuvbR1ue2snb+u9bZ2Hap1abdU6okURISiiDGEIMiQQIECYEjKRQOas+8dZsceYkBM4J/sM3/s852Hvtdfee20O5MteoxhjUEoppTwR5nQBlFJKBQ4NGkoppTymQUMppZTHNGgopZTymAYNpZRSHtOgoZRSymMaNJRSSnlMg4ZSSimPadBQSinlsQinC+BtKSkpJjs72+liKKVUQFm3bt0RY0xqd/mCLmhkZ2eTn5/vdDGUUiqgiMgeT/Jp9ZRSSimPadBQSinlMQ0aSimlPKZBQymllMc0aCillPKYBg2llFIe06ChlFLKYxo0QtjGfdWs2V3pdDGUUgFEg0aIWr+3iq/++RMWPLuWmvpmp4ujlAoQGjRC0J6KY9z4XD6JsVHUNrbw7MoSp4uklAoQGjRCTOWxJm54Zi1txvD370zjwjHpPPXRLmob9G1DKdU9DRohpKG5lZv+ms/+6nr+cl0uw1L78cNZORxtaOGvn3g07YxSKsRp0AgRbW2GH79cQP6eKu67ZiK52UkAnJ6ZwKxRaTy5Yhd1jS0Ol1Ip5e80aISIe98t5F+fHuSuS0Zx2fiBnzv2g1nDqT7ezPOr9G1DKXViGjRCwN9W7eHPH+7im9OzuOncYV84PmlIIueOSOXJD3dxvEnfNpRSXdOgEeSWbjvM3W9uZvaoNO6+Ygwi0mm+W2cPp+JYE39fvbeXS6iUCiQaNILYptJqbvn7BsYOSuChr00iIrzrr3tyVhJnD0/m8Q920dDc2oulVEoFEg0aQWpf5XG+/Ww+SX2jeOqGXGKjul+k8YezcjhS18g/1ujbhlKqcxo0glDN8Wa+9exaGltaefZbU0iLi/HovGnDkpk6NInHP9ipbxtKqU55HDREJFxENojI23Z/hYhstJ8DIvKGTZ8pIjVux37hdo05IlIkIsUicqdb+lARWW3TXxKRKJsebfeL7fFsbz14sGpsaeW7z+ezp+IYf/7mZHLS43p0/q2zczh8tJF/riv1UQmVUoGsJ28atwLb2neMMTOMMRONMROBT4DX3PKuaD9mjPk1uIIO8AhwCTAGuFZExtj89wL3GWOGA1XAApu+AKiy6ffZfKoLxhjufPVTVu2q5H+vHs9Zp6X0+BpnnZbM5KxEHssrpqmlzQelVEoFMo+ChohkApcBf+nkWDwwC3ijm8tMBYqNMbuMMU3Ai8BccXXnmQW8YvM9B8yz23PtPvb4bOmq+4/igaU7eH3Dfn5y0Qi+NCnzpK4hIvxwdg4Hahp4db2+bSilPs/TN437gduBzn71nAcsNcYcdUs7U0QKROQdERlr0zKAfW55Sm1aMlBtjGnpkP65c+zxGptfdVDf1Mpjy3dy2fiB3Hz+8FO61rk5KUwY3J9H8oppbtW3DaXUv3UbNETkcqDMGLOuiyzXAv9w218PZBljJgAP0f0byCkTkZtEJF9E8svLy319O7/08c4jNLa0MX/K4C7HYnhKRLh19nBKq+p5fcN+L5VQKRUMPHnTOBu4UkRKcFUpzRKR5wFEJAVXtdO/2jMbY44aY+rs9iIg0ubbDwx2u26mTasA+otIRId03M+xxxNs/s8xxjxhjMk1xuSmpqZ68txBZ1lhGbFR4UwdmuSV650/Mo1xGfE8kldMi75tKKWsboOGMeYuY0ymMSYbmA8sM8Z8wx6+GnjbGNPQnl9EBrS3O4jIVHuPCmAtkGN7SkXZay00xhggz14L4HrgTbu90O6332uZza/cGGPIKyxjRk4K0RHhXrmmiPDDWTnsqTjOwoIDXrmmUirwneo4jfl8vmoKXD/cN4tIAfAgMN+4tAC3AItx9cJ62RizxZ5zB3CbiBTjarN4yqY/BSTb9NuAO1FfUHS4lgM1DcwalebV6144Jp1RA+J4eFkxrW0aq5VS0P0wYTfGmOXAcrf9mZ3keRh4uIvzFwGLOknfhauaq2N6A/CVnpQxFC3dVga4qpS8qb0n1fdfWM/bmw4wd2JG9ycppYKajggPAnmFZYzLiCct3rOR3z0xZ+wActL68dCyYtr0bUOpkKdBI8BVHWti/d4qZnn5LaNdWJjwg9k5FJfV8c7mQz65h1IqcGjQCHAf7iinzcCs0ek+u8dlpw9kWGpfHlq2Q982lApxGjQC3NJtZaT0i2J8RoLP7hEeJvxg1nAKD9WyZNthn91HKeX/NGgEsJbWNj7YXs55I9IIC/Pt7CpXjB9EdnIsD7yvbxtKhTINGgFsw75qauqbvd7VtjMR4WH854Uj2HrwKP9Yq+ttKBWqNGgEsGWFZUSECTNG9Hw225Nx5YRBTBuaxP++W8SRusZeuadSyr9o0AhgeYVlTMlOIj4mslfuJyL8dt44jjW28LtFhb1yT6WUf9GgEaD2V9dTeKi2V6qm3OWkx/Gdc4fx6vpSVu/6wjRgSqkgp0EjQC0rtKPAezloAPxg1nAy+vfhv9/crFOnKxViNGgEqLzCMoYkxXJaat9ev3dsVAS/vHIs2w/X8fRHu3v9/kop52jQCED1Ta2sLD7CrFFpp7x2xsm6cEw6F4xO4/73d3Cgut6RMiilep8GjQD0yS7Xgku93Z7R0d1XjMVg+NVbW7rPrJQKCho0AlD7gkvThnlnwaWTNTgplh/MymHxlsMsK9SR4kqFAg0aAca14FI5Zw/33oJLp+I7M4ZxWmpf7l64hfqmVqeLo5TyMQ0aAWb74Tr2V9c7XjXVLioijN/MG8e+ynoeXV7sdHGUUj6mQSPAfNbV1kdToZ+Ms05L4UuTMnj8g53sLK9zujhKKR/SoBFglhUeZuygeAYkeH/BpVPxX5eOJiYynF+8uRldxl2p4OVx0BCRcBHZICJv2/1nRWS3iGy0n4k2XUTkQREpFpFNInKG2zWuF5Ed9nO9W/pkEfnUnvOg2H6kIpIkIkts/iUikui9Rw881cebWLenym+qptylxkVz+8UjWVlcwVubDjpdHKWUj/TkTeNWYFuHtJ8aYybaz0abdgmQYz83AY+BKwAAdwPTcK0HfrdbEHgM+I7beXNs+p3AUmNMDrDU7oesD7a7FlxyYhS4J742LYvxmQn85u2tHG1odro4Sikf8ChoiEgmcBnwFw+yzwX+alxWAf1FZCBwMbDEGFNpjKkClgBz7LF4Y8wq46rX+Cswz+1az9nt59zSQ1JeYRnJfaOYkNnf6aJ0KjzMNaHhkbpG/vTedqeLo5TyAU/fNO4Hbgc6TjR0j62Cuk9Eom1aBrDPLU+pTTtRemkn6QDpxpj2uo5DQKdrmorITSKSLyL55eXlHj5SYGltMyzfXs55I1MJ9/GCS6difGZ/vjEti79+UsLm/TVOF0cp5WXdBg0RuRwoM8as63DoLmAUMAVIAu7wfvH+zb6FdNrCaox5whiTa4zJTU1N9WUxHLNhbxXVx3tnwaVT9ZOLR5LUN4qfvbFZV/lTKsh48qZxNnCliJQALwKzROR5Y8xBWwXVCDyDq50CYD8w2O38TJt2ovTMTtIBDtvqK+yfZT14tqCyrLCM8DBhRo7/B8WEPpH87LLRFOyr1lX+lAoy3QYNY8xdxphMY0w2MB9YZoz5htsPc8HV1rDZnrIQuM72opoO1NgqpsXARSKSaBvALwIW22NHRWS6vdZ1wJtu12rvZXW9W3rIWVZYRm5WIgl9emfBpVM1b2IG04clce87hazfW+V0cZRSXnIq4zReEJFPgU+BFOC3Nn0RsAsoBp4Evg9gjKkEfgOstZ9f2zRsnr/Yc3YC79j03wMXisgO4AK7H3IO2AWXZo/2/6qpdiLC768aT3yfSK55/BMe/2CnVlUpFQQk2AZi5ebmmvz8fKeL4VXPr9rDz9/YzPu3ncvwtDini9MjNfXN3PXaJhZ9eohzR6Typ2smkNIvuvsTlVK9SkTWGWNyu8unI8IDQF5hGYOT+nBaaj+ni9JjCX0ieeRrZ3DPl8axelcFlzywgpXFR5wullLqJGnQ8HMNza2s3HmEWSOdW3DpVIkIX5+WxZu3nE1Cn0i+8dRq/rC4iBZdKlapgKNBw899squChuY2vx0F3hOjBsSz8JazuWbyYB7OK2b+E6vYr6v+KRVQNGj4uWXbyugTGc70YclOF8UrYqMiuPfq8TwwfyKFh2q59IEVLN5yyOliKaU8pEHDjxljWFZYxtnDU4iJdH7BJW+aOzGDf/3wHLKSY/nu39Zx95ubaWjWRZyU8ncaNPzYjjL/WnDJ27KS+/LK987ixnOG8twne7jq0Y91PQ6l/JwGjV5UdrSB6uNNHo9X+GzBpVH+Pwr8ZEVFhPHzy8fw9A25HDrawBUPfcRTH+3WRnKl/FSE0wUIFev2VPHlxz4GICJMSOobRXK/aFL6RZHcN4qUftEk94smuV+UTYvmvS2HGDMwnoEJfRwuve/NGpXOoh/O4M7XNvGbt7fyz/x93POlcUzOSnK6aEopNxo0esnrG0rpExnOjy8aQeWxJirqmqg41kh5XRO7jxzjSF0jDc1f/O36B7OGO1BaZwxIiOGZG6aweMshfvXWVr782Cdck5vJHXNGkawDApXyCxo0ekFLaxuLPj3E7NFp3DhjWJf5jje1UFHXxJG6Ro7UNXG0vpkLxnQ6G3zQEhHmjBvIjJxUHly2g6dW7GbxlsPcPmck104ZQpgfTwuvVCjQoNELPt5ZQeWxJq6YMOiE+WKjIohNimBwUmwvlcx/9Y2O4K5LRnP1GZn8/I3N/Oz1zbycX8pv547j9MwEp4unVMjShvBe8PamA8RFR3DeiOBt0PaVnPQ4XrxpOvd/dSL7q+q58pGP+MWbm6mp1+VklXKCBg0fa2xp5d3Nh7ho7ICgG2vRW0SEeZMyWPrj87j+zGyeX7WH2X9czqvrSgm2CTeV8ncaNHxsxfYjHG1o4fIJA50uSsBL6BPJL68cy8JbziEzMZYf/7OArz6xioM1OhWJUr1Fg4aPvbXpAP1jIzlneIrTRQka4zISeO0/zuL3V51Owb5qHl5W7HSRlAoZGjR8qL6plSVbD3PJuIFEhutftTeFhQnzpw5hRk4qy4vKtZpKqV6iP8l8KK+ojONNrVyhVVM+c/6oVPZX1+v0I0r1Eo+DhoiEi8gGEXnb7r8gIkUisllEnhaRSJs+U0RqRGSj/fzC7Rpz7DnFInKnW/pQEVlt018SkSibHm33i+3xbG89eG94q+AAqXHRTBsaHDPU+qOZI13zcuUVljtcEqVCQ0/eNG4FtrntvwCMAk4H+gA3uh1bYYyZaD+/BlfQAR4BLgHGANeKyBib/17gPmPMcKAKWGDTFwBVNv0+my8g1DY0s6ywjMtOH0i4DkjzmYz+fRiR3o/l28ucLopSIcGjoCEimcBlwF/a04wxi4wFrAEyu7nMVKDYGLPLGNMEvAjMFddydLOAV2y+54B5dnuu3cceny0Bsnzd+9sO09jSplVTvWDmyDTW7K6krrHF6aIoFfQ8fdO4H7gd+MLkSLZa6pvAu27JZ4pIgYi8IyJjbVoGsM8tT6lNSwaqjTEtHdI/d449XmPz+723Cg6S0b8PkwYnOl2UoDdzZCrNrYaPde1xpXyu26AhIpcDZcaYdV1keRT40Bizwu6vB7KMMROAh4A3vFLSE5fxJhHJF5H88nLn67arjzexYkc5l48fqHMl9YLcrCT6RoWTV+T8d69UsPPkTeNs4EoRKcFVpTRLRJ4HEJG7gVTgtvbMxpijxpg6u70IiBSRFGA/MNjtupk2rQLoLyIRHdJxP8ceT7D5P8cY84QxJtcYk5ua6vxUHYu3HKK51XQ715TyjqiIMM7JSeGDojLtequUj3UbNIwxdxljMo0x2cB8YJkx5hsiciNwMXCtMeazaisRGdDe7iAiU+09KoC1QI7tKRVlr7XQtonkAVfbS1wPvGm3F9p97PFlJgB+KrxVcJDs5FjGDop3uighY+bINA7UNLD9sHa9VcqXTmWcxuNAOvBJh661VwObRaQAeBCYb9vLW4BbgMW4emG9bIzZYs+5A7hNRIpxtVk8ZdOfApJt+m3AZ910/VV5bSMf7zzCFRMGESBt9kFh5kjXG2ZekfaiUsqXejQ1ujFmObDcbnd6rjHmYeDhLo4tAhZ1kr4LV++qjukNwFd6UkanvbP5IG0GrZrqZQMT+jBqQBzLi8r43nmnOV0cpYKWjgj3srcLDjIyPY4R6XFOFyXkzByZRn5JFbUNOm26Ur6iQcOLDtbUs6akUsdmOOT8kam0tBlWatdbpXxGg4YX/WvTQQAuH69VU044IyuRuOgInVJEKR/SoOFFbxUc4PSMBLJT+jpdlJAUGR7GjBEpLN+uXW+V8hUNGl6yp+IYBaU1WjXlsJkj0jh8tJFtB2udLopSQUmDhpe8baumLtOqKUedZ7ve6gSGSvmGBg0veavgALlZiWT07+N0UUJaenwMYwbGs1zbNZTyCQ0aXrDjcC2Fh2q5fLxWTfmD80elsm5vFTX12vVWKW/ToOEFb206SJjApRo0/MLMkWm0thk+2qFdb5XyNg0ap8gYw9sFB5g+LJm0uBini6OASYP7Ex8TwXKdUkQpr9OgcYq2HjzKriPHdNoQPxIRHsaMEaks315OW5t2vVXB71hjCz/9ZwGlVcd9fi8NGqforYKDRIQJc8YOcLooys35I9Mor21k68GjThdFKZ/7v8VFvLK+lIM1DT6/lwaNU2CM4a2CA5yTk0Ji3yini6PcnDfCdr3VKioV5PJLKnnukxKum57FlOwkn99Pg8Yp2LCvmv3V9VyhYzP8TmpcNKdnJOhqfiqoNTS3cvurmxiU0Ifb54zqlXtq0DgFbxUcICoijAvHpjtdFNWJ80emsmFvFdXHm5wuilI+8cDSHewqP8bvv3w6faN7tNLFSdOgcZJa2wz/2nSQ80emEh8T6XRxVCfOG5lGm4EPteutCkKfltbwxIe7uCY3kxk5vbfMtQaNk7R6dwVltY3aa8qPTRzcn/6xkdquoYJOU0sbP32lgOS+UfzssjG9em8NGiehpbWN3y0qJKVfNLNGpTldHNWF8DDh3JxUPijSrrcquDz+wU4KD9Vyz5dOJ6FP79Z0eBw0RCRcRDaIyNt2f6iIrBaRYhF5SUSibHq03S+2x7PdrnGXTS8SkYvd0ufYtGIRudMtvdN7OO2ZlSV8ur+GX105ltio3qlHVCfn/FGpVBxrYvOBGqeLopRXbD9cy0PLdnDFhEFcOKb321N78qZxK7DNbf9e4D5jzHCgClhg0xcAVTb9PpsPERkDzAfGAnOAR20gCgceAS4BxgDX2rwnuodj9lYc549LirhgdDqXnq5jM/zduTmpiKALM6mg0Npm+Okrm4iLieSXV/RutVQ7j4KGiGQClwF/sfsCzAJesVmeA+bZ7bl2H3t8ts0/F3jRGNNojNkNFANT7afYGLPLGNMEvAjM7eYejjDG8F+vf0pEWBi/mTcWVxGVP0vuF834zP46VboKCk9/tJuCfdXcfcUYkvtFO1IGT9807gduB9rsfjJQbYxpsfulQIbdzgD2AdjjNTb/Z+kdzukq/UT3cMRr6/fzUfER7rhkFAMTdAr0QDFzRCob91VTeUy73qrAVXLkGH94z1XLcaWDHXC6DRoicjlQZoxZ1wvlOSkicpOI5ItIfnm5b6ohjtQ18pt/bSU3K5GvTx3ik3so3zh/VBrGwIodWkWlAlNbm+GOVzcRFRHGPV8a52gthydvGmcDV4pICa6qo1nAA0B/EWlvBc4E9tvt/cBgAHs8AahwT+9wTlfpFSe4x+cYY54wxuQaY3JTU33TX/nXb23leGMrv//y6YSFabVUIBmfkUBS3yjyCkOviqq2oZn/fbeQD7ZrwAxkL6zZy+rdlfz8stGkxzs7m3a3QcMYc5cxJtMYk42rIXuZMebrQB5wtc12PfCm3V5o97HHlxljjE2fb3tXDQVygDXAWiDH9pSKsvdYaM/p6h69alnhYRYWHOCWWcMZnhbnRBHUKQgLE84bkcqHO47QGkJdb1ftqmDO/St4dPlObnhmDY8t34nrv5UKJPur6/n9om2cMzyFa3IHd3+Cj53KOI07gNtEpBhX+8NTNv0pINmm3wbcCWCM2QK8DGwF3gVuNsa02jaLW4DFuHpnvWzznugevaausYWfv76ZEen9+N55p/X27ZWXzByZSuWxJjaVVjtdFJ9raG7lt29v5donVxEZLvz9xmlcdvpA7n23kFtf3Eh9U6vTRVQeMsbwX699igF+d9XpftH5pkeDDIwxy4HldnsXrp5PHfM0AF/p4vx7gHs6SV8ELOokvdN79KY/LC7i4NEGXvnaWURF6FjIQHVuTiphAsuLypk0JNHp4vjMp6U13PbyRnaU1fHN6VncdekoYqMiOPO0ZEYPjOcP7xWx+8gxnrhusnbmCACvrt/PB9vL+eUVYxicFOt0cQAdEX5C6/ZU8dwnJVx/ZjaTs4L3B00oSOwbxcTB/YN2SpGW1jYeXLqDLz26kqMNzTz37an8Zt64zwafigg3nz+cJ7+Zy+4jx7jioZWs21PpcKnViZTVNvCbt12db647M9vp4nxGg0YXmlrauPPVTQyMj+EnF490ujjKC2aOTKOgtIYjdY1OF8WrdpbX8eXHP+FPS7Zz2fiBvPej8z5bT6SjC8ak8/r3z6JfdDjzn1jFy2v3dZpPOe8Xb2yhvrmVe68e71edbzRodOGx5TvZUVbHb780jn69NOWw8q3zR7rmCfswSHoStbUZnl25m8seXMGeimM8/LVJPDB/EgmxJ56LKCc9jjduPpvpw5K5/dVN/HLhFlpa2054jupdi7cc4t0th/jPC0ZwWmo/p4vzORo0OlFcVssjecVcOWEQs0bpWhnBYuygeFL6RQdF99MD1fVc9/QafvnWVqYPS2bxj87l8h4sBtY/NopnbpjCgnOG8uzHJVz39BqqdPCjX2hubeN3i7YxIr0f35kx1OnifIEGjQ7a2gx3vvopsdHh/MKhuV2Ub4SFCdOGJrF2d2DX5b+5cT8X3/8h6/dW8T9fOp1nbphyUn33I8LD+O/Lx/B/V48nv6SKuY+spOhQrQ9KrHri76v3UlJxnLsuGU1EuP/9iPa/EjnshTV7yd9TxX9fNoYUh+Z2Ub6Tm53IgZoGDlTXO12Uk7L9cC23vriREelxvHPrDL42bcgpd8P8Su5gXvzudOqbW7nq0ZW8t+WQl0qreupoQzMPLN3BmcOSmTmy9xZW6gkNGm4O1tRz7zuFzMhJ4aozHJ3mSvlIblYSAPl7qhwuycl5f9thAB79+hlkJff12nXPGJLIW7ecw/C0ftz0t3U8vGyHDgR0wOPLd1J5rIn/unS0X4zJ6IwGDcsYw3+/sZmWtjbumecfg2iU940eGEdsVDj5JYFZRZVXWMbYQfE+mUpiQEIML333TOZNHMQf3tvOT1/ZRFOLNpD3lgPV9Tz10W7mTRzE6ZkJThenSxo0rEWfHuL9bWX8+MKRDEn2j0E0yvsiwsOYNKQ/+SWB96ZRc7yZdXuqPusF5gsxkeHc99WJ/OiCHF5ZV8r1T6+h5nizz+6n/u1PS7ZjDH7fxV+DhrX9cC0TMhP41tnZThdF+VhuVhKFh45S2xBYPww/3FFOm3HN2utLIsKPLhjBfV+dQP6eSq56bCV7K4779J6hbuuBo7y6vpQbzs4mM9G/f2nVoGH954UjePl7Z/plbwXlXbnZibQZ2LA3sOahyissIzE2komD+/fK/b40KZPnF0yj4lgT8x7VEeS+9Lt3thEfE8nNM4c7XZRu6U9IN9ER4U4XQfWCSUMSCRMCql2jrc2wfHs5541IJbwXRwdPG5bMa/9xFvExEVz75GreKjjQa/cOFR9uL2fFjiP8YNbwbgdm+gMNGirk9IuOYPTA+IDqQVVQ6lp50NdVU50ZltqP175/NhMyE/jBPzbwSF6x9qzyktY2w/8s2sbgpD5888wsp4vjEQ0aKiRNyU5i475qmgNk+oy8onLCxDVbrxOS+kbx/I3TmDtxEP+3uIjbtWeVV7y+YT+Fh2q5/eJRAVPToUFDhaTJWYkcb2pl28GjThfFI8uLypg0JJHEvlGOlSE6Ipz7vzqRW2fn8M91pdzwzBpq6gOrM4E/aWhu5Y/vFTEhM4HLxw90ujge06ChQlJutmuq+0DoeltW28Cm0hrO94MRwiLCf144gj9+ZQJrSyr58mMfs69Se1adjKc+2s3Bmga/HsjXGQ0aKiQNTOhDRv8+5AdAj6APilwTLDrRntGVL0/O5G8LplFe28i8R1ayfq//B19/UlHXyGPLd3LB6HSmDUt2ujg9okFDhazc7ETyS6r8vlE3r6iM9PhoxgyMd7oonzN9WDKvff8s+kZH8N2/rQup9ddP1YNLd1Df3Mqdl4xyuig91m3QEJEYEVkjIgUiskVEfmXTV4jIRvs5ICJv2PSZIlLjduwXbteaIyJFIlIsIne6pQ8VkdU2/SURibLp0Xa/2B7P9vZfgApdudlJlNU2sq/SfycvbG5tY8X2I5w/Ms0vqzBOS+3Hjy8aQXltIwUhsP66N+w+cowXVu/lq1MGMzzNv9bK8IQnbxqNwCxjzARgIjBHRKYbY2YYYyYaYyYCnwCvuZ2zov2YMebXACISDjwCXAKMAa4Vkfa5x+8F7jPGDAeqgAU2fQFQZdPvs/mU8opcu4SvP1dRrdtTRW1jCzN9OHXIqZo5Io3wMGGpnUxRndj/vltIVEQYP7ogx+minJRug4ZxqbO7kfbz2XuoiMQDs4A3urnUVKDYGLPLGNMEvAjMFdevT7OAV2y+54B5dnuu3cceny3++OuWCkgj0uOIi4nw6/EaeYVlRIYL5+SkOF2ULiXERpKblcjSbcG5/ro3rdtTyTubD/Hdc08jLc77k072Bo/aNEQkXEQ2AmXAEmPMarfD84ClxhgVw5CFAAAahElEQVT3votn2uqsd0RkrE3LANwXJC61aclAtTGmpUP6586xx2ts/o7lu0lE8kUkv7w88FdlU70jPEw4Y0iiX48MzysqY+rQJL9fcnj26DQKD9VSWqU9qbpijOGef20jLS6a75zrfyvyecqjoGGMabXVUJnAVBEZ53b4WuAfbvvrgSxbnfUQ3b+BnDJjzBPGmFxjTG5qqvPdElXgmJKdyPbDdX45k2tp1XG2H67z6ay23jJ7tGtZ5LxCfdvoyrubD7F+bzW3XTiC2Cj//iXgRHrUe8oYUw3kAXMARCQFV7XTv9zyHG2vzjLGLAIibb79wGC3y2XatAqgv4hEdEjH/Rx7PMHmV8orJttFmdbt9b+3jTw/7GrblWEpfclOjuV9raLqVHNrG/e+W0hOWj+unpzpdHFOiSe9p1JFpL/d7gNcCBTaw1cDbxtjGtzyD2hvdxCRqfYeFcBaIMf2lIoC5gMLjau/Y569FsD1wJt2e6Hdb7/XMuPv/SNVQJk4uD8RYeKXg/yWF5YxJCmWYSneW6HPV0SE2aPT+WRnBccaW7o/IcR8tu73paMCfiZtT0o/EMgTkU24fvAvMca8bY/N5/NVU+D64b5ZRAqAB4H5tjG9BbgFWAxsA142xmyx59wB3CYixbjaLJ6y6U8ByTb9NuBOlPKiPlHhjM1I8LvG8IbmVlbuPML5I1P9sqttZ2aPTqOptY2Pio84XRS/crShmfvf386Zw5IDoqqxO91WrBljNgGTujg2s5O0h4GHu8i/CFjUSfouXNVcHdMbgK90V0alTkVuViLPr9pDU0sbURH+8Vvgql0VNDS3BUTVVLsp2UnExUSwdNthLh47wOni+I1H83ZSdbyZn10WWNOFdMU//oco5aAp2Yk0trSx+UCN00X5zPKicmIiw5geQFNMRIaHcd6IVJYVltOmo8MBV2eGp1fu5qpJGYzL8N91v3tCg4YKee2N4f7S9dYYw7LCMs4+LYWYyMCYLrvd7NFpHKlrZNN+/wnATvrje9sR4Md+vu53T2jQUCEvNS6a7ORYv2kM33XkGHsrjzMzgKqm2s0ckUaYwDIdHc6npTW8vmE/C84ZSkb/Pk4Xx2s0aCiF621j3R7/mLywfayDP0yF3lOJfaOYnJUY8l1vjTHcs2gryX2j+I+ZpzldHK/SoKEUrnaNimNN7D5yzOmikFdUxoj0fmQmxjpdlJMye3Q6Ww8e5WCN/04E6WtLt5WxalclP7ogh7gY/1/3uyc0aCiF26JMDne9rWtsYc3uyoDumjnbVquF6lxUza1t/M872xiW2pf5U4c4XRyv06ChFK4pvhNjIx1vDP9oxxGaW01AdbXtaHhaP4YkxbIsRKcUeXHtPnaVH+OuS0YTGeAD+ToTfE+k1EkQESZnJTr+prG8qIy4mAgm22nbA5GIMGtUGiuLj1Df1Op0cXpVbUMz9y/ZzrShSVwwOnAD/4lo0FDKmpyVxK7yY1TUNTpyf2MMeUVlnJuTGvC/oV4wOp3GljZWhtjo8Mc/2EnFsaagGcjXmcD+l6mUF02x7RrrHHrb2HrwKIePNjIzAHtNddQ+nfvSwtDpenugup6/rNjNvImDGJ/Z3+ni+IwGDaWscRkJRIWHOVZFtdzOanteEASNqIgwzh2RwtJtZX7Rjbk3/OG9IgzwkyAayNcZDRpKWTGR4YzPTHCsMXxZYRnjMxMCdkW3jmaNSqestpHN+492nznAbd7vGsj37bOHBmxXaU9p0FDKzeTsRD7dX0NDc+824FYda2LD3iq/Xgu8p1wz9BL0VVTtK/L17xPJ988ProF8ndGgoZSbKVlJNLcaNpX27txJH+4op83ArADuattRcr9ozhgS/GuH5xWV8cmuCn50wQjig2wgX2c0aCjlpr2ra/6e3q2iyissI7lvFOODZCbUdrNGpfHp/hoOH23oPnMAamlt438WFTI0pS9fmxZ8A/k6o0FDKTeJfaMYntavVycvbG0zfLC9nPNGpBIWFlzdNC+wa4cH60C/l/L3UVxWx52XjAr4btKeCo2nVKoHcrMSWbenqtfWhNi4r5qq480BPQq8KyPS+5HRvw9Lg3DW27rGFu5bsp0p2YlcNCbd6eL0Gg0aSnUwOSuRmvpmisvreuV+y4vKCA8Tzs0J/K62HYkIF4xO46PiI73eucDX/vzBTo7UNfFflwbvQL7OdBs0RCRGRNaISIGIbBGRX9n0Z0Vkt4hstJ+JNl1E5EERKRaRTSJyhtu1rheRHfZzvVv6ZBH51J7zoNhvQESSRGSJzb9ERAJ3bgUVMKZkty/K1DtVVMsKy5g8JJGE2OBsRJ01Op2G5jY+3hk8o8MP1tTz5IpdXDFhEJOGhNaPJU/eNBqBWcaYCcBEYI6ITLfHfmqMmWg/G23aJUCO/dwEPAauAADcDUzDtR743W5B4DHgO27nzbHpdwJLjTE5wFK7r5RPZSXHktIvyueN4a1thnV7Ktly4CgzRwXfW0a76cOSiI0KD6peVA8u3UFbG9we5AP5OhPRXQbjGs7Z/p4eaT8nquydC/zVnrdKRPqLyEBgJrDEGFMJICJLcAWg5UC8MWaVTf8rMA94x15rpr3uc8By4A7PH0+pnhMRcrOSvP6m0dDcyqbSGtaWVLK2pJJ1e6qobWghJjKMi8cO8Oq9/El0RDgzclJYVugaHR7oVTnGGJZsLWPOuAEMTgrugXyd6TZoAIhIOLAOGA48YoxZLSL/AdwjIr/AvgUYYxqBDGCf2+mlNu1E6aWdpAOkG2MO2u1DQKetTSJyE663GoYMCY1ub8q3crMTeXfLIcqONpAWf3IjtGvqm1m3p5K1JVWs3V3JptIamlrbAMhJ68fl4wcxdWgi04clMzAheJYD7czs0eks3nKYrQePMnZQYHcrLqk4zpG6RqYNS3K6KI7wKGgYY1qBiSLSH3hdRMYBd+H6QR4FPIHrDeDXviqoMcaISKdvOMaYJ2wZyM3NDY2JbpRP5ba3a+yp4tLTB3p83ro9VbyxYT9rSyopOlyLMRARJozLSOCGs7OZkp3E5KxEkvpG+arofun8kWmu0eHbygI+aKzd7aq2nJqtQaNbxphqEckD5hhj/mCTG0XkGeAndn8/MNjttEybtp9/VzW1py+36Zmd5Ac4LCIDjTEHbRVX8FSKKr82dlA8MZFh5Jd0HzSMMawsruDhvB2s2lVJbFQ4k7MSuWTcQKYMTWTS4ET6RIX3Usn9U2pcNBMy+7O0sIwfzs5xujinZPXuShJjIxme1s/pojii26AhIqlAsw0YfYALgXvdfpgLrjaIzfaUhcAtIvIirkbvGptvMfA/bo3fFwF3GWMqReSobVxfDVwHPOR2reuB39s/3/TGQyvVncjwMCYO7n/CxvC2NsP72w7zyPKdFOyrJi0ump9fNpprpw6hb3SPfh8LCbNHpfHHJdspq20I6EkZ15ZUkpudFPBtMyfLk3/ZA4HnbLtGGPCyMeZtEVlmA4oAG4Hv2fyLgEuBYuA48C0AGxx+A6y1+X7d3igOfB94FuiDqwH8HZv+e+BlEVkA7AGuOdkHVaqncrOSeOyDnRxvaiE26t//VVrbDG9vOsCjeTspOlxLZmIffjtvHFdPziQmMrTfKE5k9uh0/rhkO8sLy7lmyuDuT/BDh482sLfyONedmeV0URzjSe+pTcCkTtJndZHfADd3cexp4OlO0vOBcZ2kVwCzuyujUr6Qm51Ia55h475qzjothaaWNl5bX8rjH+ykpOI4w9P68adrJnDFhEEhM4XEqRg9MI5BCTG8v+1wwAaNNbY9Y0qItmdAD9s0lAolZ2QlIgIf7ThC0aFanvhwFwdrGhiXEc/j3ziDi8YMCLq5onxJRJg1Oo3X1u+nobk1IN/K1pa42qzGDop3uiiO0aChVBfiYyIZmR7Ho8t3Aq7lYH931emcNyI1ZOuzT9Xs0ek8v2ovq3ZVBOTaIWt2V3LGkEQiQvjNUoOGUidw/VnZLC8qY8E5w5g6NHSrJLzlzGHJ9IkMZ1lhWcAFjZr6ZooO13LJOM+7YAcjDRpKncC1U4dw7VQdMOotMZHhnJOTwrubDzFyQBwZ/fuQmRhLZmIfv6+uWrenEmNgytDQmmuqIw0aSqledfXkTD7YXs7PXt/8ufSUflGfCyIZiX1cf/aPZXBSn8/1YHPCmt1VRIYLkwZr0FBKqV5z8dgBbPv1HMprGymtOk5pVT37q+s/29528ChLth2mqaXts3P6RoXz0nfPZJyDKxuuLalkXEZCyA/U1KChlOp14WHCgIQYBiTEkJv9xeNtbYYjdY2UVtezr/I4P39jM49/sJOHv3bGFzP3Atdkk9V8+5yhjtzfn2jQUEr5nbAwIS0+hrT4GM4YksjWA0f5y0e7Ka06TmZi788su2FvNc2tJmTnm3IXuv3GlFIB4/qzsgF4dmWJI/dfW1KJiGuWgFCnQUMp5fcG9e/DZacP5MW1+6htaO71+68tqWRkelzQrq7YExo0lFIB4cYZQ6lrbOGltfu6z+xFLa1trN9TFdJTh7jToKGUCgjjM/szdWgSz6wsoaW1rfsTvGTrwaMca2plig7uBDRoKKUCyI3nDGV/dT3vbjnUa/dcE+KLLnWkQUMpFTBmj04nOzmWJ1fsxjWhtu+tLalkcFIfBiQE7hog3qRBQykVMMLDhG+fM5SCfdWs31vl8/sZY8gv0fYMdxo0lFIB5erJmST0ieQvK3b7/F47y49RcayJadqe8RkNGkqpgBIbFcHXpw1h8ZZD7K047tN7rS3RRZc66jZoiEiMiKwRkQIR2SIiv7LpL4hIkYhsFpGnRSTSps8UkRoR2Wg/v3C71hx7TrGI3OmWPlREVtv0l0QkyqZH2/1iezzb238BSqnAc/1Z2YSHCU+v9O3bxprdlaT0i2JoSl+f3ieQePKm0QjMMsZMACYCc0RkOvACMAo4Hdfa3je6nbPCGDPRfn4NYNcYfwS4BBgDXCsiY2z+e4H7jDHDgSpggU1fAFTZ9PtsPqVUiEuPj+GK8YN4OX8fNfW+G+y3ZnclU7KTdNEtN90GDeNSZ3cj7ccYYxbZYwZYA2R2c6mpQLExZpcxpgl4EZgrrm9jFvCKzfccMM9uz7X72OOzRb89pRSwYMZQjje18uKavT65/oFq1+y7WjX1eR61aYhIuIhsBMqAJcaY1W7HIoFvAu+6nXKmrc56R0TG2rQMwH0oZ6lNSwaqjTEtHdI/d449XmPzK6VC3NhBCZx1WjLPflxCsw8G+7W3Z+iKjZ/nUdAwxrQaYybiepuYKiLj3A4/CnxojFlh99cDWbY66yHgDW8WuDMicpOI5ItIfnl5ua9vp5TyEzfOGMrBmgYWfXrQ69des7uSftERjB4Y7/VrB7Ie9Z4yxlQDecAcABG5G0gFbnPLc7S9OssYswiIFJEUYD8w2O1ymTatAugvIhEd0nE/xx5PsPk7lusJY0yuMSY3NTW1J4+klApgM0ekMSy1L0+u2OX1wX5rSyo5IyuR8DCtEXfnSe+pVBHpb7f7ABcChSJyI3AxcK0xps0t/4D2dgcRmWrvUQGsBXJsT6koYD6w0LaJ5AFX20tcD7xptxfafezxZaa3hoEqpfxeWJhw4znD2Lz/6GfTfXhD1bEmth+u0/EZnfDkTWMgkCcim3D94F9ijHkbeBxIBz7p0LX2amCziBQADwLzbXt5C3ALsBjYBrxsjNliz7kDuE1EinG1WTxl058Ckm36bcBn3XSVUgrgqjMySIyN5EkvDvbL3+Maba6N4F/U7cp9xphNwKRO0js91xjzMPBwF8cWAYs6Sd+Fq3dVx/QG4CvdlVEpFbpiIsP55vQsHsorZld5HcNS+53yNdeWVBIVHsb4TOfWJPdXOiJcKRXwvnFmFpFhYTzjpZX91uyuZMLgBGIiw71yvWCiQUMpFfDS4mKYN2kQ/1y3j+rjTad0reNNLWzeX6NVU13QoKGUCgoLzhlGQ3MbL6w+tcF+G/ZW09JmdNGlLmjQUEoFhZED4piRk8KzH5fQ2NJ60tdZs7sSEZiclejF0gUPDRpKqaBx44xhlNc28nbByQ/2W1tSyegB8cTHRHqxZMFDg4ZSKmicm5PCiPR+/OWjk1vZr7m1jQ17q3XqkBPQoKGUChoirsF+2w4e5V8nMbXI5v011De3atA4AQ0aSqmgcuXEQYzLiOfWFzfyyrrSHp2riy51T4OGUiqoxESG84/vTGf6sCR+8s8CHskr9riqas3uKoam9CU1LtrHpQxcGjSUUkEnLiaSZ26YypUTBvF/i4v45cIttLadOHC0tRny91QyJVt7TZ1It9OIKKVUIIqKCOP+r04kPT6aJ1fspryukT9dM7HLUd7F5XVUH2/WqqluaNBQSgWtsDDhZ5eNIS0uhnsWbaOibg1PXJdLQp8vdqddvVsXXfKEVk8ppYLed84dxgPzJ7J+bxVf/fMnHKpp+EKetbsrSYuLZkhSrAMlDBwaNJRSIWHuxAyeuWEq+yqPc9WjKykuq/3smDGGtSWVTB2ahF0OSHVBg4ZSKmSck5PCS989k6ZWw5cf+4R1e1xVUqVV9RysadCqKQ9o0FBKhZRxGQm89h9nkdQ3iq89uZolWw/r+Iwe0KChlAo5Q5JjeeV7ZzJqQBzf/Vs+jy7fSXxMBCPT45wumt/ToKGUCknJ/aL5+3emc+6IVIrL6sjNTiIsTNszutNt0BCRGBFZIyIFIrJFRH5l04eKyGoRKRaRl0QkyqZH2/1iezzb7Vp32fQiEbnYLX2OTSsWkTvd0ju9h1JKeUPf6AievC6Xn148kpvPH+50cQKCJ28ajcAsY8wEYCIwR0SmA/cC9xljhgNVwAKbfwFQZdPvs/kQkTHAfGAsMAd4VETCRSQceAS4BBgDXGvzcoJ7KKWUV0SGh3Hz+cN1/QwPdRs0jEud3Y20HwPMAl6x6c8B8+z2XLuPPT5bXH3Y5gIvGmMajTG7gWJgqv0UG2N2GWOagBeBufacru6hlFLKAR61adg3go1AGbAE2AlUG2NabJZSIMNuZwD7AOzxGiDZPb3DOV2lJ5/gHkoppRzgUdAwxrQaYyYCmbjeDEb5tFQ9JCI3iUi+iOSXl5c7XRyllApaPeo9ZYypBvKAM4H+ItI+d1UmsN9u7wcGA9jjCUCFe3qHc7pKrzjBPTqW6wljTK4xJjc1NbUnj6SUUqoHPOk9lSoi/e12H+BCYBuu4HG1zXY98KbdXmj3sceXGddk9guB+bZ31VAgB1gDrAVybE+pKFyN5QvtOV3dQymllAM8meV2IPCc7eUUBrxsjHlbRLYCL4rIb4ENwFM2/1PA30SkGKjEFQQwxmwRkZeBrUALcLMxphVARG4BFgPhwNPGmC32Wnd0cQ+llFIOkJNZfN2f5ebmmvz8fKeLoZRSAUVE1hljcrvLpyPClVJKeSzo3jREpBzYc5KnpwBHvFicQKDPHBr0mUPDqTxzljGm255EQRc0ToWI5HvyehZM9JlDgz5zaOiNZ9bqKaWUUh7ToKGUUspjGjQ+7wmnC+AAfebQoM8cGnz+zNqmoZRSymP6pqGUUspjQR80RORpESkTkc1uaRNE5BMR+VRE3hKReJseJSLP2PQCEZnpds5km14sIg/aqdv9jhefd7ldGGuj/aQ58DgeEZHBIpInIlvtQmG32vQkEVkiIjvsn4k2Xex3WCwim0TkDLdrXW/z7xCR67u6p9O8/Mytbt/zQqeeqTsn8cyj7L/7RhH5SYdrdbrwm7/x8jOX2P/rG0Xk5EdAG2OC+gOcC5wBbHZLWwucZ7e/DfzGbt8MPGO304B1QJjdXwNMBwR4B7jE6Wfz8fMuB3Kdfh4Pn3kgcIbdjgO241rQ63+BO236ncC9dvtS+x2K/U5X2/QkYJf9M9FuJzr9fL58Znuszunn8dEzpwFTgHuAn7hdJxzX8g7DgCigABjj9PP58pntsRIg5VTLFPRvGsaYD3HNgeVuBPCh3V4CfNlujwGW2fPKgGogV0QGAvHGmFXG9bf/V/x0QShvPG8vFNOrjDEHjTHr7XYtrgk1M/j8gmAdFwr7q3FZhWs25YHAxcASY0ylMaYK19/VnF58FI958ZkDRk+f2RhTZoxZCzR3uFSnC7/1wiP0mBef2WuCPmh0YQv//kfyFf49NXsBcKWIRIhrJt7J9lgGrkWg2gXaglA9fd52z9hX2f/21+q4jsS1Jv0kYDWQbow5aA8dAtLtdk8XBPNrp/jMADHiWo9mlYj45S9DHXn4zF0J5u/5RAzwnoisE5GbTrYcoRo0vg18X0TW4Xrla7LpT+P6B5QP3A98DLQ6UkLvOpnn/box5nRghv18s1dLfBJEpB/wKvAjY8xR92P2DTHougp66ZmzjGsU8deA+0XkNO+X1Hv0ez7pZz7HGHMGcAlws4icezJlCcmgYYwpNMZcZIyZDPwDV/0mxpgWY8x/GmMmGmPmAv1x1SHux7UIVLsuF4TyRyfxvBhj9ts/a4G/43ql91siEonrP9ULxpjXbPLh9ioY+2eZTe/pgmB+yUvP7P5d78LVljXJ54U/ST185q4E8/fcJbfvuQx4nZP8Px2SQaO9J5CIhAE/Bx63+7Ei0tduXwi0GGO22tfAoyIy3VbTXEcALQjV0+e11VUpNj0SuBzY3OnF/YD9Tp4Cthlj/uR2yH1BsI4LhV1nexRNB2rsd7wYuEhEEm1vlItsmt/x1jPbZ42210wBzsa15o3fOYln7kqnC795u7ze4K1nFpG+IhLXvo3r3/bJ/Z8+1ZZ0f//g+s36IK6GoVJgAXArrt+otwO/59+DHLOBIlyNTe/jem1vv06u/UveCTzcfo6/fbzxvEBfXD2pNuFqD3kACHf62U7wzOfgej3fBGy0n0uBZGApsMM+X5LNL8Aj9rv8FLdeYriq8ort51tOP5uvnxk4y+4X2D8XOP1sXnzmAfb/wFFcnTxKcXVowZ633f59/MzpZ/P1M+PqKVZgP1tO5Zl1RLhSSimPhWT1lFJKqZOjQUMppZTHNGgopZTymAYNpZRSHtOgoZRSymMaNJRSSnlMg4ZSSimPadBQSinlsf8H+6k3P6dJDNwAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "temp = [(i['YEAR'], i['PASSENGERS'])for i in dict(passenger_graph['CLE']['ORD']).values()]\n", "x, y = zip(*temp)\n", "plt.plot(x, y)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise\n", "\n", "Find the busiest route in 1990 and in 2015 according to number of passengers, and plot the time series of number of passengers on these routes.\n", "\n", "You can use the DataFrame instead of working with the network. It will be faster ;)\n", "[5 mins]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "temp = pass_air_data.groupby(['YEAR'])['PASSENGERS'].transform(max) == pass_air_data['PASSENGERS']" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0YEARORIGINDESTUNIQUE_CARRIER_NAMEPASSENGERS
391739171990LAXHNL{'Heavylift Cargo Airlines Lt', 'Hawaiian Airl...1827164.0
4459784459782015LAXSFO{'Hawaiian Airlines Inc.', 'Delta Air Lines In...1869066.0
\n", "
" ], "text/plain": [ " Unnamed: 0 YEAR ORIGIN DEST \\\n", "3917 3917 1990 LAX HNL \n", "445978 445978 2015 LAX SFO \n", "\n", " UNIQUE_CARRIER_NAME PASSENGERS \n", "3917 {'Heavylift Cargo Airlines Lt', 'Hawaiian Airl... 1827164.0 \n", "445978 {'Hawaiian Airlines Inc.', 'Delta Air Lines In... 1869066.0 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pass_air_data[temp][pass_air_data.YEAR.isin([1990, 2015])]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pass_air_data[(pass_air_data['ORIGIN'] == 'LAX') & (pass_air_data['DEST'] == 'HNL')].plot('YEAR', 'PASSENGERS')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pass_air_data[(pass_air_data['ORIGIN'] == 'LAX') & (pass_air_data['DEST'] == 'SFO')].plot('YEAR', 'PASSENGERS')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So let's have a look at the important nodes in this network, i.e. important airports in this network. We'll use pagerank, betweenness centrality and degree centrality." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# nx.pagerank(passenger_graph)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def year_network(G, year):\n", " temp_g = nx.DiGraph()\n", " for i in G.edges(data=True):\n", " if i[2]['YEAR'] == year:\n", " temp_g.add_edge(i[0], i[1], weight=i[2]['PASSENGERS'])\n", " return temp_g" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "pass_2015 = year_network(passenger_graph, 2015)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1258" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(pass_2015)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25354" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(pass_2015.edges())" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# Load in the GPS coordinates of all the airports\n", "lat_long = pd.read_csv('datasets/GlobalAirportDatabase.txt', delimiter=':', header=None)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789101112131415
1321EGYCCLFCOLTISHALLCOLTISHALLENGLAND524517N12126E2152.7551.357
3380KABIABIABILENE RGNLABILENEUSA322440N994054W54632.411-99.682
3381KABQABQNaNALBUQUERQUEUSA000U000U00.0000.000
3382KACKACKNANTUCKET MEMNANTUCKETUSA411510N70336W1541.253-70.060
3383KACTACTWACO RGNLWACOUSA313640N971349W15831.611-97.230
3384KACYACYATLANTIC CITY INTERNATIONALATLANTIC CITYUSA392727N743437W2339.458-74.577
3386KADWADWANDREWS AFBCAMP SPRINGSUSA384838N76521W8638.811-76.867
3387KAEXAEXALEXANDRIA INTERNATIONALALEXANDRIAUSA311938N923254W2831.327-92.548
3389KAGSAGSAUGUSTA RGNL AT BUSH FLDBUSH FIELDUSA332211N815752W4433.370-81.964
3391KALBALBALBANY INTERNATIONALALBANYUSA424453N734810W8742.748-73.803
3394KAMAAMAAMARILLO INTERNATIONALAMARILLOUSA35139N1014221W110035.219-101.706
3395KANBANBANNISTON METROPOLITANANNISTONUSA333517N855129W18733.588-85.858
3397KAOOAOOALTOONA BLAIR COALTOONAUSA401747N781912W45940.296-78.320
3399KARAARAACADIANA REGIONALLOUISIANAUSA30215N91532W830.038-91.884
3400KARTARTWATERTOWN INTERNATIONALWATERTOWNUSA435930N76118W10043.992-76.022
3401KATLATLTHE WILLIAM B HARTSFIELD ATLANTA INTERNATIONALATLANTAUSA333825N842537W31333.640-84.427
3402KAUGAUGAUGUSTA STATEAUGUSTAUSA441914N694750W10844.321-69.797
3403KAUSAUSAUSTIN BERGSTROM INTERNATIONALAUSTINUSA301140N974011W16630.194-97.670
3406KBADBADBARKSDALE AFBSHREVEPORTUSA32306N933945W5132.502-93.663
3407KBCTBCTBOCA RATONBOCA RATONUSA262242N80627W426.378-80.107
3409KBDLBDLBRADLEY INTERNATIONALWINDSOR LOCKSUSA415620N724059W5341.939-72.683
3410KBDRBDRIGOR I SIKORSKY MEMSTRATFORDUSA41948N73734W341.163-73.126
3411KBEDBEDLAURENCE G HANSCOM FLDBEDFORDUSA422811N711720W4142.470-71.289
3412KBFIBFIBOEING FLD KING CO INTERNATIONALSEATTLEUSA473147N122187W647.530-122.302
3413KBFLBFLMEADOWS FLDBAKERSFIELDUSA35260N119324W15535.433-119.057
3414KBFMBFMMOBILE DOWNTOWNMOBILEUSA303735N8844W830.626-88.068
3415KBGRBGRBANGOR INTERNATIONALBANGORUSA444826N684941W5944.807-68.828
3417KBHMBHMBIRMINGHAM INTERNATIONALBIRMINGHAMUSA333346N864512W19733.563-86.753
3418KBIFBIFBIGGS AAFEL PASOUSA315058N1062248W120331.849-106.380
3421KBLIBLIBELLINGHAM INTERNATIONALBELLINGHAMUSA484733N1223215W5248.792-122.537
...................................................
6624PAUNUNKUNALAKLEETUNALAKLEETUSA635318N1604756W763.888-160.799
6625PAVDVDZVALDEZ PIONEER FIELDVALDEZUSA6182N1461454W3761.134-146.248
6627PAWTAINWAINWRIGHT ASFORT WAINWRIGHTUSA703648N1595137W1170.613-159.860
6629PAYAYAKYAKUTATYAKUTATUSA593011N1393936W1259.503-139.660
6633PFYUFYUFORT YUKONFORT YUKONUSA663417N145151W13266.571-145.250
6638PGROROPROTA INTERNATIONALROTAMARIANA ISLANDS141028N1451436E18614.174145.243
6639PGSNSPNSAIPAN INTERNATIONALSAIPANMARIANA ISLANDS15710N1454345E6615.119145.729
6641PGUAUAMANDERSEN AFBANDERSENMARIANA ISLANDS13352N1445548E19213.584144.930
6642PGUMGUMGUAM INTERNATIONALAGANAMARIANA ISLANDS13292N1444749E9113.484144.797
6649PHHNHNMHANAHANAUSA204744N156051W2420.796-156.014
6652PHJHJHMKAPALUALAHANIA-KAPALUAUSA205746N1564027W7920.963-156.674
6655PHKOKOAKONA INTERNATIONAL AT KEAHOLEKONAUSA194419N156244W1519.739-156.046
6658PHLILIHLIHUELIHUEUSA215834N1592019W4721.976-159.339
6659PHMKMKKMOLOKAIMOLOKAIUSA21910N157546W13921.153-157.096
6661PHMUMUEWAIMEA KOHALAKAMUELAUSA2004N155405W81520.001-155.668
6665PHNGNGFKANEOHE BAY MCAFKANEOHE BAYUSA212657N157464W621.449-157.768
6666PHNLHNLHONOLULU INTERNATIONALHONOLULUUSA211857N1575536W421.316-157.927
6667PHNYLNYLANAILANAIUSA20478N156575W39920.786-156.951
6668PHOGOGGKAHULUIKAHULUIUSA205355N1562550W1720.899-156.431
6670PHTOITOHILO INTERNATIONALHILOUSA194313N155255W1219.720-155.049
6686PPIZPIZPOINT LAY LRRSPOINT LAYUSA694358N163019W869.733-163.005
8020TISTSTTCYRIL E KINGST. THOMASVIRGIN ISL.182014N645824W818.337-64.973
8021TISXSTXHENRY E ROHLSENST. CRIOX ISLANDVIRGIN ISL.17426N644754W2017.702-64.798
8022TJBQBQNRAFAEL HERNANDEZAGUADILLAPUERTO RICO182941N67746W7318.495-67.129
8023TJCGVQSNaNVIEQUESPUERTO RICO000U000U00.0000.000
8024TJCPCPXNaNCULEBRAPUERTO RICO000U000U00.0000.000
8027TJIGSIGFERNANDO LUIS RIBAS DOMINICCISAN JUANPUERTO RICO182724N66553W418.457-66.098
8028TJMZMAZEUGENIO MARIA DE HOSTOSMAYAGUEZPUERTO RICO181520N67854W918.256-67.148
8030TJPSPSEMERCEDITAPONCEPUERTO RICO18029N663346W818.008-66.563
8031TJSJSJULUIS MUNOZ MARIN INTERNATIONALSAN JUANPUERTO RICO182621N6606W318.439-66.002
\n", "

371 rows × 16 columns

\n", "
" ], "text/plain": [ " 0 1 2 \\\n", "1321 EGYC CLF COLTISHALL \n", "3380 KABI ABI ABILENE RGNL \n", "3381 KABQ ABQ NaN \n", "3382 KACK ACK NANTUCKET MEM \n", "3383 KACT ACT WACO RGNL \n", "3384 KACY ACY ATLANTIC CITY INTERNATIONAL \n", "3386 KADW ADW ANDREWS AFB \n", "3387 KAEX AEX ALEXANDRIA INTERNATIONAL \n", "3389 KAGS AGS AUGUSTA RGNL AT BUSH FLD \n", "3391 KALB ALB ALBANY INTERNATIONAL \n", "3394 KAMA AMA AMARILLO INTERNATIONAL \n", "3395 KANB ANB ANNISTON METROPOLITAN \n", "3397 KAOO AOO ALTOONA BLAIR CO \n", "3399 KARA ARA ACADIANA REGIONAL \n", "3400 KART ART WATERTOWN INTERNATIONAL \n", "3401 KATL ATL THE WILLIAM B HARTSFIELD ATLANTA INTERNATIONAL \n", "3402 KAUG AUG AUGUSTA STATE \n", "3403 KAUS AUS AUSTIN BERGSTROM INTERNATIONAL \n", "3406 KBAD BAD BARKSDALE AFB \n", "3407 KBCT BCT BOCA RATON \n", "3409 KBDL BDL BRADLEY INTERNATIONAL \n", "3410 KBDR BDR IGOR I SIKORSKY MEM \n", "3411 KBED BED LAURENCE G HANSCOM FLD \n", "3412 KBFI BFI BOEING FLD KING CO INTERNATIONAL \n", "3413 KBFL BFL MEADOWS FLD \n", "3414 KBFM BFM MOBILE DOWNTOWN \n", "3415 KBGR BGR BANGOR INTERNATIONAL \n", "3417 KBHM BHM BIRMINGHAM INTERNATIONAL \n", "3418 KBIF BIF BIGGS AAF \n", "3421 KBLI BLI BELLINGHAM INTERNATIONAL \n", "... ... ... ... \n", "6624 PAUN UNK UNALAKLEET \n", "6625 PAVD VDZ VALDEZ PIONEER FIELD \n", "6627 PAWT AIN WAINWRIGHT AS \n", "6629 PAYA YAK YAKUTAT \n", "6633 PFYU FYU FORT YUKON \n", "6638 PGRO ROP ROTA INTERNATIONAL \n", "6639 PGSN SPN SAIPAN INTERNATIONAL \n", "6641 PGUA UAM ANDERSEN AFB \n", "6642 PGUM GUM GUAM INTERNATIONAL \n", "6649 PHHN HNM HANA \n", "6652 PHJH JHM KAPALUA \n", "6655 PHKO KOA KONA INTERNATIONAL AT KEAHOLE \n", "6658 PHLI LIH LIHUE \n", "6659 PHMK MKK MOLOKAI \n", "6661 PHMU MUE WAIMEA KOHALA \n", "6665 PHNG NGF KANEOHE BAY MCAF \n", "6666 PHNL HNL HONOLULU INTERNATIONAL \n", "6667 PHNY LNY LANAI \n", "6668 PHOG OGG KAHULUI \n", "6670 PHTO ITO HILO INTERNATIONAL \n", "6686 PPIZ PIZ POINT LAY LRRS \n", "8020 TIST STT CYRIL E KING \n", "8021 TISX STX HENRY E ROHLSEN \n", "8022 TJBQ BQN RAFAEL HERNANDEZ \n", "8023 TJCG VQS NaN \n", "8024 TJCP CPX NaN \n", "8027 TJIG SIG FERNANDO LUIS RIBAS DOMINICCI \n", "8028 TJMZ MAZ EUGENIO MARIA DE HOSTOS \n", "8030 TJPS PSE MERCEDITA \n", "8031 TJSJ SJU LUIS MUNOZ MARIN INTERNATIONAL \n", "\n", " 3 4 5 6 7 8 9 10 11 12 13 \\\n", "1321 COLTISHALL ENGLAND 52 45 17 N 1 21 26 E 21 \n", "3380 ABILENE USA 32 24 40 N 99 40 54 W 546 \n", "3381 ALBUQUERQUE USA 0 0 0 U 0 0 0 U 0 \n", "3382 NANTUCKET USA 41 15 10 N 70 3 36 W 15 \n", "3383 WACO USA 31 36 40 N 97 13 49 W 158 \n", "3384 ATLANTIC CITY USA 39 27 27 N 74 34 37 W 23 \n", "3386 CAMP SPRINGS USA 38 48 38 N 76 52 1 W 86 \n", "3387 ALEXANDRIA USA 31 19 38 N 92 32 54 W 28 \n", "3389 BUSH FIELD USA 33 22 11 N 81 57 52 W 44 \n", "3391 ALBANY USA 42 44 53 N 73 48 10 W 87 \n", "3394 AMARILLO USA 35 13 9 N 101 42 21 W 1100 \n", "3395 ANNISTON USA 33 35 17 N 85 51 29 W 187 \n", "3397 ALTOONA USA 40 17 47 N 78 19 12 W 459 \n", "3399 LOUISIANA USA 30 2 15 N 91 53 2 W 8 \n", "3400 WATERTOWN USA 43 59 30 N 76 1 18 W 100 \n", "3401 ATLANTA USA 33 38 25 N 84 25 37 W 313 \n", "3402 AUGUSTA USA 44 19 14 N 69 47 50 W 108 \n", "3403 AUSTIN USA 30 11 40 N 97 40 11 W 166 \n", "3406 SHREVEPORT USA 32 30 6 N 93 39 45 W 51 \n", "3407 BOCA RATON USA 26 22 42 N 80 6 27 W 4 \n", "3409 WINDSOR LOCKS USA 41 56 20 N 72 40 59 W 53 \n", "3410 STRATFORD USA 41 9 48 N 73 7 34 W 3 \n", "3411 BEDFORD USA 42 28 11 N 71 17 20 W 41 \n", "3412 SEATTLE USA 47 31 47 N 122 18 7 W 6 \n", "3413 BAKERSFIELD USA 35 26 0 N 119 3 24 W 155 \n", "3414 MOBILE USA 30 37 35 N 88 4 4 W 8 \n", "3415 BANGOR USA 44 48 26 N 68 49 41 W 59 \n", "3417 BIRMINGHAM USA 33 33 46 N 86 45 12 W 197 \n", "3418 EL PASO USA 31 50 58 N 106 22 48 W 1203 \n", "3421 BELLINGHAM USA 48 47 33 N 122 32 15 W 52 \n", "... ... ... .. .. .. .. ... .. .. .. ... \n", "6624 UNALAKLEET USA 63 53 18 N 160 47 56 W 7 \n", "6625 VALDEZ USA 61 8 2 N 146 14 54 W 37 \n", "6627 FORT WAINWRIGHT USA 70 36 48 N 159 51 37 W 11 \n", "6629 YAKUTAT USA 59 30 11 N 139 39 36 W 12 \n", "6633 FORT YUKON USA 66 34 17 N 145 15 1 W 132 \n", "6638 ROTA MARIANA ISLANDS 14 10 28 N 145 14 36 E 186 \n", "6639 SAIPAN MARIANA ISLANDS 15 7 10 N 145 43 45 E 66 \n", "6641 ANDERSEN MARIANA ISLANDS 13 35 2 N 144 55 48 E 192 \n", "6642 AGANA MARIANA ISLANDS 13 29 2 N 144 47 49 E 91 \n", "6649 HANA USA 20 47 44 N 156 0 51 W 24 \n", "6652 LAHANIA-KAPALUA USA 20 57 46 N 156 40 27 W 79 \n", "6655 KONA USA 19 44 19 N 156 2 44 W 15 \n", "6658 LIHUE USA 21 58 34 N 159 20 19 W 47 \n", "6659 MOLOKAI USA 21 9 10 N 157 5 46 W 139 \n", "6661 KAMUELA USA 20 0 4 N 155 40 5 W 815 \n", "6665 KANEOHE BAY USA 21 26 57 N 157 46 4 W 6 \n", "6666 HONOLULU USA 21 18 57 N 157 55 36 W 4 \n", "6667 LANAI USA 20 47 8 N 156 57 5 W 399 \n", "6668 KAHULUI USA 20 53 55 N 156 25 50 W 17 \n", "6670 HILO USA 19 43 13 N 155 2 55 W 12 \n", "6686 POINT LAY USA 69 43 58 N 163 0 19 W 8 \n", "8020 ST. THOMAS VIRGIN ISL. 18 20 14 N 64 58 24 W 8 \n", "8021 ST. CRIOX ISLAND VIRGIN ISL. 17 42 6 N 64 47 54 W 20 \n", "8022 AGUADILLA PUERTO RICO 18 29 41 N 67 7 46 W 73 \n", "8023 VIEQUES PUERTO RICO 0 0 0 U 0 0 0 U 0 \n", "8024 CULEBRA PUERTO RICO 0 0 0 U 0 0 0 U 0 \n", "8027 SAN JUAN PUERTO RICO 18 27 24 N 66 5 53 W 4 \n", "8028 MAYAGUEZ PUERTO RICO 18 15 20 N 67 8 54 W 9 \n", "8030 PONCE PUERTO RICO 18 0 29 N 66 33 46 W 8 \n", "8031 SAN JUAN PUERTO RICO 18 26 21 N 66 0 6 W 3 \n", "\n", " 14 15 \n", "1321 52.755 1.357 \n", "3380 32.411 -99.682 \n", "3381 0.000 0.000 \n", "3382 41.253 -70.060 \n", "3383 31.611 -97.230 \n", "3384 39.458 -74.577 \n", "3386 38.811 -76.867 \n", "3387 31.327 -92.548 \n", "3389 33.370 -81.964 \n", "3391 42.748 -73.803 \n", "3394 35.219 -101.706 \n", "3395 33.588 -85.858 \n", "3397 40.296 -78.320 \n", "3399 30.038 -91.884 \n", "3400 43.992 -76.022 \n", "3401 33.640 -84.427 \n", "3402 44.321 -69.797 \n", "3403 30.194 -97.670 \n", "3406 32.502 -93.663 \n", "3407 26.378 -80.107 \n", "3409 41.939 -72.683 \n", "3410 41.163 -73.126 \n", "3411 42.470 -71.289 \n", "3412 47.530 -122.302 \n", "3413 35.433 -119.057 \n", "3414 30.626 -88.068 \n", "3415 44.807 -68.828 \n", "3417 33.563 -86.753 \n", "3418 31.849 -106.380 \n", "3421 48.792 -122.537 \n", "... ... ... \n", "6624 63.888 -160.799 \n", "6625 61.134 -146.248 \n", "6627 70.613 -159.860 \n", "6629 59.503 -139.660 \n", "6633 66.571 -145.250 \n", "6638 14.174 145.243 \n", "6639 15.119 145.729 \n", "6641 13.584 144.930 \n", "6642 13.484 144.797 \n", "6649 20.796 -156.014 \n", "6652 20.963 -156.674 \n", "6655 19.739 -156.046 \n", "6658 21.976 -159.339 \n", "6659 21.153 -157.096 \n", "6661 20.001 -155.668 \n", "6665 21.449 -157.768 \n", "6666 21.316 -157.927 \n", "6667 20.786 -156.951 \n", "6668 20.899 -156.431 \n", "6670 19.720 -155.049 \n", "6686 69.733 -163.005 \n", "8020 18.337 -64.973 \n", "8021 17.702 -64.798 \n", "8022 18.495 -67.129 \n", "8023 0.000 0.000 \n", "8024 0.000 0.000 \n", "8027 18.457 -66.098 \n", "8028 18.256 -67.148 \n", "8030 18.008 -66.563 \n", "8031 18.439 -66.002 \n", "\n", "[371 rows x 16 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lat_long[lat_long[1].isin(list(pass_2015.nodes()))]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "pos_dict = {}\n", "for airport in lat_long[lat_long[1].isin(list(pass_2015.nodes()))].iterrows():\n", " pos_dict[airport[1][1]] = (airport[1][15], airport[1][14]) " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'ABI': (-99.682, 32.411),\n", " 'ABQ': (-106.609, 35.04),\n", " 'ABY': (0.0, 0.0),\n", " 'ACK': (-70.06, 41.253),\n", " 'ACT': (-97.23, 31.611),\n", " 'ACY': (-74.577, 39.458),\n", " 'ADK': (-176.646, 51.878),\n", " 'ADQ': (-152.494, 57.75),\n", " 'ADW': (-76.867, 38.811),\n", " 'AEX': (-92.54799999999999, 31.326999999999998),\n", " 'AGS': (-81.964, 33.37),\n", " 'AIN': (-159.86, 70.613),\n", " 'AKN': (-156.649, 58.677),\n", " 'ALB': (-73.803, 42.748000000000005),\n", " 'AMA': (-101.706, 35.219),\n", " 'ANB': (-85.85799999999999, 33.588),\n", " 'ANC': (-149.996, 61.174),\n", " 'AOO': (-78.32, 40.296),\n", " 'ARA': (-91.884, 30.038),\n", " 'ART': (-76.02199999999999, 43.992),\n", " 'ATL': (-84.427, 33.64),\n", " 'AUG': (-69.797, 44.321000000000005),\n", " 'AUS': (-97.67, 30.194000000000003),\n", " 'BAD': (-93.663, 32.501999999999995),\n", " 'BCT': (-80.107, 26.378),\n", " 'BDL': (-72.683, 41.93899999999999),\n", " 'BDR': (-73.126, 41.163000000000004),\n", " 'BED': (-71.289, 42.47),\n", " 'BET': (-161.838, 60.78),\n", " 'BFI': (-122.302, 47.53),\n", " 'BFL': (-119.057, 35.433),\n", " 'BFM': (-88.068, 30.625999999999998),\n", " 'BGR': (-68.828, 44.806999999999995),\n", " 'BHM': (-86.75299999999999, 33.563),\n", " 'BIF': (-106.38, 31.849),\n", " 'BLI': (-122.537, 48.792),\n", " 'BLV': (-89.835, 38.545),\n", " 'BNA': (-86.678, 36.124),\n", " 'BOI': (-116.223, 43.56399999999999),\n", " 'BOS': (-71.005, 42.364),\n", " 'BPT': (-94.021, 29.951),\n", " 'BQK': (0.0, 0.0),\n", " 'BQN': (-67.12899999999999, 18.495),\n", " 'BRO': (-97.426, 25.906999999999996),\n", " 'BRW': (-156.766, 71.285),\n", " 'BTI': (-143.577, 70.134),\n", " 'BTR': (-91.149, 30.533),\n", " 'BTT': (-151.528, 66.915),\n", " 'BTV': (-73.153, 44.472),\n", " 'BUF': (-78.732, 42.94),\n", " 'BUR': (-118.359, 34.201),\n", " 'BWI': (-76.668, 39.175),\n", " 'CAE': (-81.119, 33.939),\n", " 'CDB': (-162.724, 55.206),\n", " 'CDC': (-113.09899999999999, 37.701),\n", " 'CDV': (-145.477, 60.492),\n", " 'CEF': (-72.53399999999999, 42.198),\n", " 'CEW': (-86.522, 30.779),\n", " 'CHA': (-85.204, 35.035),\n", " 'CHS': (-80.04, 32.899),\n", " 'CIC': (-121.85799999999999, 39.795),\n", " 'CLE': (-81.85, 41.412),\n", " 'CLF': (1.357, 52.755),\n", " 'CLL': (-96.36399999999999, 30.588),\n", " 'CLT': (-80.943, 35.214),\n", " 'CMH': (-82.89200000000001, 39.998000000000005),\n", " 'CNM': (-104.26299999999999, 32.336999999999996),\n", " 'COS': (-104.7, 38.806),\n", " 'COU': (-92.219, 38.818000000000005),\n", " 'CPR': (-106.464, 42.908),\n", " 'CPX': (0.0, 0.0),\n", " 'CRP': (-97.501, 27.77),\n", " 'CVG': (-84.662, 39.046),\n", " 'CVS': (-103.322, 34.383),\n", " 'CYS': (-104.81200000000001, 41.156000000000006),\n", " 'DAL': (-96.852, 32.847),\n", " 'DAY': (-84.219, 39.902),\n", " 'DCA': (-77.03699999999999, 38.852),\n", " 'DEN': (-104.667, 39.858000000000004),\n", " 'DET': (-83.01, 42.409),\n", " 'DFW': (-97.037, 32.896),\n", " 'DHN': (-85.449, 31.320999999999998),\n", " 'DLG': (-158.503, 59.045),\n", " 'DLH': (-92.194, 46.842),\n", " 'DMA': (-110.883, 32.166),\n", " 'DOV': (-75.46600000000001, 39.13),\n", " 'DPA': (-88.249, 41.908),\n", " 'DRO': (-107.75399999999999, 37.150999999999996),\n", " 'DRT': (-100.926, 29.373),\n", " 'DSM': (-93.663, 41.534),\n", " 'DTW': (-83.353, 42.211999999999996),\n", " 'DUT': (-166.543, 53.9),\n", " 'EDF': (-149.806, 61.251000000000005),\n", " 'EDW': (-117.884, 34.905),\n", " 'EFD': (-95.15899999999999, 29.607),\n", " 'EHM': (-162.061, 58.647),\n", " 'EIL': (-147.101, 64.666),\n", " 'ELD': (-92.81299999999999, 33.221),\n", " 'ELP': (-106.37799999999999, 31.807),\n", " 'ENA': (-151.245, 60.573),\n", " 'ENV': (-114.031, 40.719),\n", " 'EWN': (-77.043, 35.073),\n", " 'EWR': (-74.169, 40.692),\n", " 'EYW': (-81.759, 24.555999999999997),\n", " 'FAI': (-147.856, 64.815),\n", " 'FAT': (-119.71799999999999, 36.775999999999996),\n", " 'FBK': (-147.614, 64.837),\n", " 'FFO': (-84.04799999999999, 39.826),\n", " 'FLL': (-80.153, 26.072),\n", " 'FLO': (-79.72399999999999, 34.185),\n", " 'FMH': (-70.521, 41.658),\n", " 'FMN': (-108.23, 36.741),\n", " 'FMY': (-81.863, 26.586),\n", " 'FOD': (-94.193, 42.551),\n", " 'FOE': (-95.664, 38.951),\n", " 'FOK': (-72.632, 40.844),\n", " 'FSI': (-98.402, 34.65),\n", " 'FSM': (-94.367, 35.336),\n", " 'FTW': (-97.36200000000001, 32.82),\n", " 'FXE': (-80.171, 26.197),\n", " 'FYU': (-145.25, 66.571),\n", " 'FYV': (-94.17, 36.005),\n", " 'GAL': (-156.937, 64.736),\n", " 'GCK': (-100.72399999999999, 37.927),\n", " 'GEG': (-117.53399999999999, 47.62),\n", " 'GFK': (-97.176, 47.949),\n", " 'GGG': (-94.711, 32.385),\n", " 'GKN': (-145.45600000000002, 62.155),\n", " 'GNV': (-82.272, 29.69),\n", " 'GRB': (-88.12899999999999, 44.485),\n", " 'GRF': (-122.581, 47.07899999999999),\n", " 'GRK': (-97.829, 31.066999999999997),\n", " 'GRR': (-85.523, 42.881),\n", " 'GSB': (-77.961, 35.339),\n", " 'GTF': (-111.37100000000001, 47.482),\n", " 'GUM': (144.797, 13.484000000000002),\n", " 'GUS': (-86.152, 40.648),\n", " 'GVT': (-96.065, 33.068000000000005),\n", " 'HFD': (-72.65, 41.736000000000004),\n", " 'HIB': (-92.839, 47.386),\n", " 'HKY': (-81.389, 35.741),\n", " 'HLN': (-111.98299999999999, 46.607),\n", " 'HMN': (-106.10600000000001, 32.852),\n", " 'HNL': (-157.92700000000002, 21.316),\n", " 'HNM': (-156.014, 20.796),\n", " 'HOB': (-103.21700000000001, 32.688),\n", " 'HOM': (-151.476, 59.646),\n", " 'HON': (-98.228, 44.385),\n", " 'HOP': (-87.49600000000001, 36.668),\n", " 'HOU': (-95.279, 29.645),\n", " 'HPN': (-73.707, 41.067),\n", " 'HRL': (-97.654, 26.228),\n", " 'HRO': (-93.155, 36.260999999999996),\n", " 'HUF': (-87.307, 39.451),\n", " 'HVR': (-109.762, 48.543),\n", " 'IAB': (-97.26700000000001, 37.623000000000005),\n", " 'IAD': (-77.456, 38.944),\n", " 'IAG': (-78.946, 43.107),\n", " 'IAH': (-95.34, 29.98),\n", " 'ICT': (-97.43299999999999, 37.65),\n", " 'ILG': (-75.60600000000001, 39.679),\n", " 'ILI': (-154.911, 59.754),\n", " 'ILM': (-77.903, 34.271),\n", " 'IND': (-86.294, 39.717),\n", " 'INL': (-93.40299999999999, 48.566),\n", " 'INT': (-80.222, 36.134),\n", " 'IPL': (-115.579, 32.834),\n", " 'IPT': (-76.921, 41.242),\n", " 'ISN': (-103.64200000000001, 48.178000000000004),\n", " 'ISP': (-73.1, 40.795),\n", " 'ITO': (-155.049, 19.72),\n", " 'JAN': (-90.07600000000001, 32.311),\n", " 'JAX': (-81.688, 30.494),\n", " 'JBR': (-90.646, 35.832),\n", " 'JFK': (-73.779, 40.64),\n", " 'JHM': (-156.674, 20.963),\n", " 'JNU': (-134.576, 58.355),\n", " 'KOA': (-156.046, 19.739),\n", " 'KTN': (-131.714, 55.356),\n", " 'LAN': (-84.587, 42.778999999999996),\n", " 'LAS': (-115.152, 36.08),\n", " 'LAX': (-118.40799999999999, 33.942),\n", " 'LBB': (-101.823, 33.664),\n", " 'LCH': (-93.223, 30.125999999999998),\n", " 'LCK': (-82.928, 39.814),\n", " 'LFI': (-76.36, 37.083),\n", " 'LFT': (-91.98700000000001, 30.205),\n", " 'LGA': (-73.872, 40.777),\n", " 'LGB': (-118.15100000000001, 33.818000000000005),\n", " 'LIH': (-159.339, 21.976),\n", " 'LIT': (-92.22399999999999, 34.729),\n", " 'LNK': (-96.759, 40.851),\n", " 'LNY': (-156.951, 20.785999999999998),\n", " 'LRD': (-99.461, 27.544),\n", " 'LSF': (-84.991, 32.336999999999996),\n", " 'LSV': (-115.03399999999999, 36.236),\n", " 'LUK': (-84.419, 39.103),\n", " 'LUR': (-166.11, 68.875),\n", " 'MAF': (-102.20200000000001, 31.941999999999997),\n", " 'MAZ': (-67.148, 18.256),\n", " 'MCC': (-121.40100000000001, 38.667),\n", " 'MCF': (-82.521, 27.849),\n", " 'MCG': (-155.606, 62.953),\n", " 'MCI': (-94.714, 39.297),\n", " 'MCN': (-83.649, 32.693000000000005),\n", " 'MCO': (-81.316, 28.429000000000002),\n", " 'MDT': (-76.763, 40.193000000000005),\n", " 'MDW': (-87.75200000000001, 41.786),\n", " 'MEM': (-89.977, 35.042),\n", " 'MER': (-120.568, 37.38),\n", " 'MFE': (-98.23899999999999, 26.176),\n", " 'MHR': (-121.29700000000001, 38.554),\n", " 'MIA': (-80.291, 25.793000000000003),\n", " 'MIB': (-101.35700000000001, 48.416000000000004),\n", " 'MKE': (-87.896, 42.946999999999996),\n", " 'MKK': (-157.096, 21.153000000000002),\n", " 'MKL': (-88.916, 35.6),\n", " 'MLB': (-80.645, 28.103),\n", " 'MLU': (-92.037, 32.510999999999996),\n", " 'MOB': (-88.243, 30.691),\n", " 'MOD': (-120.954, 37.626),\n", " 'MOT': (-101.28, 48.25899999999999),\n", " 'MQT': (-87.56200000000001, 46.534),\n", " 'MRI': (-149.846, 61.214),\n", " 'MSN': (-89.337, 43.14),\n", " 'MSP': (-93.21700000000001, 44.88),\n", " 'MSS': (-74.845, 44.93600000000001),\n", " 'MSY': (-90.258, 29.993000000000002),\n", " 'MUE': (-155.668, 20.000999999999998),\n", " 'MWH': (-119.32, 47.208),\n", " 'MXF': (-86.36200000000001, 32.379),\n", " 'MYR': (-78.928, 33.68),\n", " 'NBG': (-90.035, 29.825),\n", " 'NGF': (-157.768, 21.449),\n", " 'NGU': (-76.289, 36.938),\n", " 'NIP': (-81.681, 30.236),\n", " 'NJK': (-115.67200000000001, 32.829),\n", " 'NKX': (-117.14299999999999, 32.868),\n", " 'NPA': (-87.319, 30.353),\n", " 'NQA': (-89.87, 35.357),\n", " 'NQX': (-81.689, 24.576),\n", " 'NTD': (-119.12100000000001, 34.12),\n", " 'NTU': (-76.033, 36.821),\n", " 'NUQ': (-122.04799999999999, 37.415),\n", " 'NUW': (-122.656, 48.352),\n", " 'NZC': (-81.876, 30.219),\n", " 'NZY': (-117.215, 32.699),\n", " 'OAK': (-122.221, 37.721),\n", " 'OFF': (-95.913, 41.118),\n", " 'OGG': (-156.431, 20.899),\n", " 'OGS': (-75.46600000000001, 44.681999999999995),\n", " 'OKC': (-97.601, 35.393),\n", " 'OMA': (-95.89399999999999, 41.302),\n", " 'OME': (-165.445, 64.512),\n", " 'ONT': (-117.601, 34.056),\n", " 'OPF': (-80.278, 25.906999999999996),\n", " 'ORD': (-87.904, 41.979),\n", " 'ORF': (-76.20100000000001, 36.894),\n", " 'ORL': (-81.333, 28.545),\n", " 'ORT': (-141.929, 62.961000000000006),\n", " 'OTZ': (-162.59799999999998, 66.884),\n", " 'PAE': (-122.281, 47.906000000000006),\n", " 'PAM': (-85.57600000000001, 30.07),\n", " 'PAQ': (-149.089, 61.595),\n", " 'PBG': (-73.468, 44.651),\n", " 'PBI': (-80.096, 26.683000000000003),\n", " 'PCA': (-98.78200000000001, 20.077),\n", " 'PDX': (-122.59700000000001, 45.589),\n", " 'PHF': (-76.493, 37.132),\n", " 'PHL': (-75.241, 39.872),\n", " 'PHN': (-82.529, 42.911),\n", " 'PHX': (-112.008, 33.434),\n", " 'PIE': (-82.68700000000001, 27.910999999999998),\n", " 'PIT': (-80.233, 40.491),\n", " 'PIZ': (-163.005, 69.733),\n", " 'PML': (-161.819, 59.011),\n", " 'PNE': (-75.01100000000001, 40.082),\n", " 'PNS': (-87.18700000000001, 30.473000000000003),\n", " 'POB': (-79.014, 35.171),\n", " 'PPG': (-170.71, -14.331),\n", " 'PQI': (-68.045, 46.68899999999999),\n", " 'PRC': (-112.419, 34.654),\n", " 'PSE': (-66.563, 18.008),\n", " 'PSP': (-116.507, 33.829),\n", " 'PUB': (-104.49600000000001, 38.289),\n", " 'PVD': (-71.428, 41.724),\n", " 'PWM': (-70.309, 43.646),\n", " 'RCA': (-103.103, 44.145),\n", " 'RDU': (-78.78699999999999, 35.876999999999995),\n", " 'RIC': (-77.319, 37.505),\n", " 'RIV': (-117.259, 33.881),\n", " 'RME': (-75.407, 43.233999999999995),\n", " 'RNO': (-119.76799999999999, 39.498000000000005),\n", " 'ROC': (-77.672, 43.119),\n", " 'ROP': (145.243, 14.174000000000001),\n", " 'ROW': (-104.531, 33.301),\n", " 'RSW': (-81.755, 26.535999999999998),\n", " 'SAC': (-121.493, 38.513000000000005),\n", " 'SAF': (-106.088, 35.617),\n", " 'SAN': (-117.189, 32.733000000000004),\n", " 'SAT': (-98.47, 29.534000000000002),\n", " 'SAV': (-81.202, 32.126999999999995),\n", " 'SBY': (-75.51, 38.34),\n", " 'SCC': (-148.465, 70.195),\n", " 'SCK': (-121.23899999999999, 37.894),\n", " 'SEA': (-122.309, 47.449),\n", " 'SFB': (0.0, 0.0),\n", " 'SFO': (-122.375, 37.619),\n", " 'SFZ': (-71.491, 41.92100000000001),\n", " 'SGY': (-135.316, 59.46),\n", " 'SHV': (-93.82600000000001, 32.446),\n", " 'SIG': (-66.098, 18.457),\n", " 'SIT': (-135.361, 57.047),\n", " 'SJC': (-121.929, 37.361999999999995),\n", " 'SJT': (-100.49600000000001, 31.358),\n", " 'SJU': (-66.002, 18.439),\n", " 'SKF': (-98.581, 29.384),\n", " 'SLC': (-111.978, 40.788000000000004),\n", " 'SMF': (-121.59100000000001, 38.695),\n", " 'SNA': (-117.868, 33.676),\n", " 'SNP': (-170.22, 57.167),\n", " 'SPB': (-122.86200000000001, 45.773),\n", " 'SPN': (145.72899999999998, 15.119000000000002),\n", " 'SPS': (-98.492, 33.989000000000004),\n", " 'SSC': (-80.473, 33.973),\n", " 'STL': (-90.36, 38.748000000000005),\n", " 'STT': (-64.973, 18.337),\n", " 'STX': (-64.798, 17.702),\n", " 'SUU': (-121.927, 38.263000000000005),\n", " 'SUX': (-96.384, 42.402),\n", " 'SVN': (-81.146, 32.01),\n", " 'SVW': (-155.57399999999998, 61.097),\n", " 'SWF': (-74.105, 41.504),\n", " 'SYA': (174.114, 52.711999999999996),\n", " 'SYR': (-76.10600000000001, 43.111000000000004),\n", " 'SZL': (-93.54799999999999, 38.73),\n", " 'TAL': (-152.109, 65.17399999999999),\n", " 'TBN': (-92.141, 37.741),\n", " 'TEB': (-74.061, 40.85),\n", " 'TIK': (-97.38600000000001, 35.415),\n", " 'TKA': (-150.094, 62.32),\n", " 'TKF': (0.0, 0.0),\n", " 'TLH': (-84.35, 30.396),\n", " 'TLJ': (-155.976, 62.894),\n", " 'TMB': (-80.433, 25.648000000000003),\n", " 'TNC': (-167.922, 65.563),\n", " 'TNT': (-80.89699999999999, 25.862),\n", " 'TPA': (-82.53299999999999, 27.975),\n", " 'TTN': (-74.813, 40.277),\n", " 'TUL': (-95.88799999999999, 36.198),\n", " 'TUS': (-110.941, 32.116),\n", " 'TXK': (-93.991, 33.454),\n", " 'TYR': (-95.402, 32.354),\n", " 'TYS': (-83.993, 35.812),\n", " 'UAM': (144.93, 13.584000000000001),\n", " 'UNK': (-160.799, 63.888000000000005),\n", " 'UTO': (-153.704, 65.993),\n", " 'VAD': (-83.193, 30.968000000000004),\n", " 'VCV': (-117.37899999999999, 34.593),\n", " 'VDZ': (-146.248, 61.13399999999999),\n", " 'VPS': (-86.525, 30.483),\n", " 'VQS': (0.0, 0.0),\n", " 'VRB': (-80.418, 27.656),\n", " 'WRB': (-83.59200000000001, 32.64),\n", " 'WRI': (-74.594, 40.016),\n", " 'WWD': (-74.908, 39.008),\n", " 'YAK': (-139.66, 59.503),\n", " 'YIP': (-83.53, 42.238),\n", " 'YNG': (-80.679, 41.261),\n", " 'YUM': (-114.60600000000001, 32.656)}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pos_dict" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise\n", "\n", "Using the position dictionary `pos_dict` create a plot of the airports, only the nodes not the edges.\n", "\n", "- As we don't have coordinates for all the airports we have to create a subgraph first.\n", "- Use `nx.subgraph(Graph, iterable of nodes)` to create the subgraph\n", "- Use `nx.draw_networkx_nodes(G, pos)` to map the nodes. \n", "\n", "or \n", "\n", "- Just use a scatter plot :)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(20, 9))\n", "G = nx.subgraph(pass_2015, pos_dict.keys())\n", "nx.draw_networkx_nodes(G, pos=pos_dict, node_size=10, alpha=0.6, node_color='b')\n", "# nx.draw_networkx_edges(G, pos=pos_dict, width=0.1, arrows=False)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(20, 9))\n", "x = [i[0] for i in pos_dict.values()]\n", "y = [i[1] for i in pos_dict.values()]\n", "plt.scatter(x, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What about degree distribution of this network?" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.hist(list(nx.degree_centrality(pass_2015).values()))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot a log log plot to get a better overview of this." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d = {}\n", "for i, j in dict(nx.degree(pass_2015)).items():\n", " if j in d:\n", " d[j] += 1\n", " else:\n", " d[j] = 1\n", "x = np.log2(list((d.keys())))\n", "y = np.log2(list(d.values()))\n", "plt.scatter(x, y, alpha=0.4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Directed Graphs\n", "\n", "![title](images/pagerank.png)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "G = nx.DiGraph()\n", "\n", "G.add_edge(1, 2, weight=1)\n", "\n", "# print(G.edges())\n", "# G[1][2]\n", "# G[2][1]\n", "# G.is_directed()\n", "# type(G)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G.add_edges_from([(1, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2)])\n", "nx.draw_circular(G, with_labels=True)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "InDegreeView({1: 0, 2: 6, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0})" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.in_degree()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: 0.0826448180198328,\n", " 2: 0.5041310918810031,\n", " 3: 0.0826448180198328,\n", " 4: 0.0826448180198328,\n", " 5: 0.0826448180198328,\n", " 6: 0.0826448180198328,\n", " 7: 0.0826448180198328}" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.pagerank(G)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G.add_edge(5, 6)\n", "nx.draw_circular(G, with_labels=True)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: 0.08024854052495894,\n", " 2: 0.4844028780560986,\n", " 3: 0.08024854052495894,\n", " 4: 0.08024854052495894,\n", " 5: 0.08024854052495894,\n", " 6: 0.11435441931910648,\n", " 7: 0.08024854052495894}" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.pagerank(G)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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7bfp27ev198/UKkIi4hH5OXlsWPHDtd13bS0NNq2bYvD4WDQoEE0bNgwYDoqT3a/BZ599ln69OlDq1at3LrfkipXrhzJycn069cPu93uN9flfZ2KsIi4zXfffefqdFevXk2NGjWw2+2MGjWKTp06ERYWZjqi23my+y2wefNmPvjgA4+tCS6pDh06cMsttzBq1Chmz55tNEugUBEWkUuWnZ3Nhg0bXMuHfvzxR7p3747D4WD69Olce+21piN6jDe6X4AzZ84QGxvLjBkzqFy5stv3f7FeeuklGjZsSP/+/WnRooXpOH5PRVhESsyyLHbv3u0qulu2bKFJkybY7XZee+01mjdv7tZ7GPsqb3S/BWbOnEnNmjW5++67PfYeF6NatWpMmTKF2NhYPv74YyPXpwOJ1gmLSLF++umnc9bshoSEuNbsdu3a1Se6M2/xVvdbYP/+/bRo0YJPPvmE66+//rL3dynrhAtjWRbdunXj9ttvZ9iwYZedK5jpI4yInOPMmTNs2bLFdW33yy+/pHPnztjtdkaOHMmNN94YMBOqLoY3u19wFrrBgwczfPhwtxRgd7LZbCQlJdG+fXv69u0b0JcdPE1FWETYu3evq9Ndv349N9xwAw6Hg6lTp9KuXTvKlStnOqIx3u5+C7zzzjvs27ePd955x+PvdSnq1avHoEGDGDp0qM9m9AcqwiJB6Ndffz1nze6JEyew2+3cfffdvPLKK0RERJiO6BO83f0W+OWXXxg2bBhLlizx6Q9AiYmJREVFsWzZMm677TbTcfySirBIEMjPz2fnzp2ubnfnzp20bt0ah8PBO++8Q6NGjYLyFHNRTHW/BUaPHo3dbqdjx45ee89LERoayvz583n00Ufp2rUr5cuXNx3J76gIiwSoH3744Zw1uxEREdjtdp599lk6d+5MeHi46Yg+yVT3W2DHjh0sXbqU3bt3e/V9L1X37t3p2LEjY8eOZerUqabj+B0VYZEAkZOTw0cffeTqdr/77ju6deuGw+HgpZdeonbt2qYj+jTT3S847zIWGxvLlClTqFatmlff+3JMnz6dRo0a8cADD9C4cWPTcfyKirCIn7Isi//+97+uNbubNm0iKioKu93OwoULadmyZVCs2XUH091vgXnz5lGpUiUefPBBI+9/qa666irGjx9PXFwcmzZt8vnnO/sSrRMW8SM///wza9as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KbEffviBxo0bk5qaSoMGDUzHEfF7KsIiUmJ33303N910ExMm/OEu4yJyCTQxS0RKZMWKFezYsYPXX3/ddBSRgKEiLCIXdPLkSQYNGkRSUhJhYWEXfoGIlIhOR4vIBSUmJrJv3z7++c9/mo4iElBUhEWkWJ999hldunQhPT2dGjVqmI4jElB0xywRKVJ+fj5xcXG88MILKsAiHqAiLCJF+tvf/saZM2eIjY01HUUkIOl0tIgU6vDhw0RGRpKSkkKTJk1MxxEJSCrCIlKo/v37ExERwfTp001HEQlYWqIkIn+wdu1aUlNT9YAGEQ/TNWEROcepU6cYOHAgc+bMoUKFCqbjiAQ0FWEROcfkyZNp0KABt99+u+koIgFP14RFxOXLL7+kXbt27Nq1i1q1apmOIxLw1AmLCACWZTFw4ECee+45FWARL1ERFhEA3njjDY4cOcKQIUNMRxEJGjodLRIsDh92Ptg9PR2ysqByZYiKggEDOFK6NA0aNOD999+nVatWppOKBA0VYZFAt20bTJoEK1Y4f5+T8/vPwsLAsth51VWsbtmSEf/3f2YyigQpFWGRQJaUBAkJkJ0NxQz1PKBUWBi26dNh4EDv5RMJcrpZh0igKijAJ09ecNPS4CzUCQnOb6gQi3iFOmGRQLRtG0RH/6EAn3/rjWwgHphz9jfDwyE1FVq08GhEEdHsaJHANGmSs7M9z/Gzvn4EwoC7zt8oO9v5ehHxOHXCIoHm8GGoU+fcCViFeB14AdgL2M7/YWgoHDgAERGeySgigDphkcCzaFGJNnsd6E8hBRjAZivxfkTk0qkIiwSa9PQLdsHfAKnAQ0VtkJ0NGRluDiYi51MRFgk0WVkX3OTvQAfgT8VtdPSomwKJSFFUhEUCTeXKF9xkMcV0wQWqVnVHGhEphoqwSKCJinJOrCrCZuB7CpkVfbawMGjUyM3BROR8mh0tEmguMDs6FjiJ85R0kTQ7WsQr1AmLBJorr4SePZ0znAuRzAUKsM0GMTEqwCJeoE5YJBAVccesEtEds0S8Rp2wSCBq2RKmTXMW1IsRHu58nQqwiFfoAQ4igargIQwleIoSNptzMta0aXp4g4gX6XS0SKDbvt15L+jly53F9ux7Sv/2PGFiYiAxUR2wiJepCIsEi8xM560oMzKcN+KoWtW5DOnhhzUJS8QQFWERERFDNDFLRETEEBVhERERQ1SERUREDFERFhERMURFWERExBAVYREREUNUhEVERAxRERYRETFERVhERMQQFWERERFDVIRFREQMUREWERExREVYRETEEBVhERERQ1SERUREDFERFhERMURFWERExBAVYREREUNUhEVERAxRERYRETFERVhERMQQFWERERFDVIRFREQMUREWERExREVYRETEEBVhERERQ1SERUREDFERFhERMURFWERExBAVYREREUNUhEVERAxRERYRETFERVhERMQQFWERERFDVIRFREQMUREWERExREVYRETEEBVhERERQ/4fBq0LY07o0TEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G.add_edge(2, 8)\n", "nx.draw_circular(G, with_labels=True)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: 0.05378612718073915,\n", " 2: 0.3246687852772877,\n", " 3: 0.05378612718073915,\n", " 4: 0.05378612718073915,\n", " 5: 0.05378612718073915,\n", " 6: 0.0766454192258098,\n", " 7: 0.05378612718073915,\n", " 8: 0.3297551595932067}" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.pagerank(G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Moving back to Airports" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ANC', 0.010425531156396332),\n", " ('HPN', 0.008715287139161587),\n", " ('FAI', 0.007865131822111036),\n", " ('DFW', 0.007168038232113773),\n", " ('DEN', 0.006557279519803018),\n", " ('ATL', 0.006367579588749718),\n", " ('ORD', 0.006178836107660135),\n", " ('YIP', 0.005821525504523931),\n", " ('ADQ', 0.005482597083474197),\n", " ('MSP', 0.005481962582230961)]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.pagerank(pass_2015, weight=None).items(), key=lambda x:x[1], reverse=True)[:10]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ANC', 0.28907458480586606),\n", " ('FAI', 0.08042857784594384),\n", " ('SEA', 0.06745549919241699),\n", " ('HPN', 0.06046810178534726),\n", " ('ORD', 0.045544143864829294),\n", " ('ADQ', 0.040170160000905696),\n", " ('DEN', 0.038543251364241436),\n", " ('BFI', 0.03811277548952854),\n", " ('MSP', 0.03774809342340624),\n", " ('TEB', 0.036229439542316354)]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.betweenness_centrality(pass_2015).items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ATL', 0.3643595863166269),\n", " ('ORD', 0.354813046937152),\n", " ('DFW', 0.3420843277645187),\n", " ('MSP', 0.3261734287987271),\n", " ('DEN', 0.31821797931583135),\n", " ('ANC', 0.3046937151949085),\n", " ('MEM', 0.29196499602227527),\n", " ('LAX', 0.2840095465393795),\n", " ('IAH', 0.28082736674622116),\n", " ('DTW', 0.27446300715990457)]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.degree_centrality(pass_2015).items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "'ANC' is the airport code of Anchorage airport, a place in Alaska, and according to pagerank and betweenness centrality it is the most important airport in this network Isn't that weird? Thoughts?\n", "\n", "related blog post: https://toreopsahl.com/2011/08/12/why-anchorage-is-not-that-important-binary-ties-and-sample-selection/\n", "\n", "Let's look at weighted version, i.e taking into account the number of people flying to these places." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('SEA', 2.2656145673621046e+50),\n", " ('ANC', 1.4996592705774285e+49),\n", " ('CDV', 1.1625885650735055e+49),\n", " ('ADQ', 8.328664868877188e+48),\n", " ('BFI', 6.99097447478957e+48),\n", " ('PHX', 3.84552515586718e+48),\n", " ('PDX', 3.120901981185909e+48),\n", " ('LRD', 4.583490839909188e+47),\n", " ('SIT', 1.7910862390475677e+46),\n", " ('FAI', 1.137539313512378e+46)]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.betweenness_centrality(pass_2015, weight='weight').items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ATL', 0.037535963029303135),\n", " ('ORD', 0.028329766122739346),\n", " ('SEA', 0.028274564067008245),\n", " ('ANC', 0.027127866647567035),\n", " ('DFW', 0.02570050418889442),\n", " ('DEN', 0.025260024346433315),\n", " ('LAX', 0.02394043498608451),\n", " ('PHX', 0.018373176636420224),\n", " ('CLT', 0.01780703930063076),\n", " ('LAS', 0.017649683141049966)]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.pagerank(pass_2015, weight='weight').items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How reachable is this network?\n", "\n", "We calculate the average shortest path length of this network, it gives us an idea about the number of jumps we need to make around the network to go from one airport to any other airport in this network." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "# nx.average_shortest_path_length(pass_2015)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wait, What??? This network is not connected. That seems like a really stupid thing to do." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'ARA',\n", " 'BWI',\n", " 'AL3',\n", " 'OHC',\n", " 'RAP',\n", " 'HOM',\n", " 'LAN',\n", " 'II3',\n", " 'GPM',\n", " 'MQJ',\n", " 'ITO',\n", " 'MSY',\n", " 'CKV',\n", " 'MVL',\n", " 'SWD',\n", " 'UKI',\n", " 'HHH',\n", " 'OLV',\n", " 'SKF',\n", " 'BTT',\n", " 'IYK',\n", " 'RNT',\n", " 'CDC',\n", " 'SPN',\n", " 'SAN',\n", " 'MKE',\n", " 'AMW',\n", " 'IKO',\n", " 'HGR',\n", " 'PBG',\n", " 'IN2',\n", " 'NZY',\n", " 'UIN',\n", " 'GCC',\n", " 'WWA',\n", " 'CSG',\n", " 'GA6',\n", " 'YKM',\n", " 'MTM',\n", " 'LNS',\n", " 'SGR',\n", " 'MER',\n", " 'GUF',\n", " 'ZXU',\n", " 'MDW',\n", " 'NAD',\n", " 'MDT',\n", " 'CT1',\n", " 'CON',\n", " 'GGW',\n", " 'UXI',\n", " 'CVN',\n", " 'CLE',\n", " 'WST',\n", " 'PIR',\n", " 'MEO',\n", " 'AVW',\n", " 'VLD',\n", " 'IGG',\n", " 'SVW',\n", " 'EKO',\n", " 'PNS',\n", " 'ASN',\n", " 'BJI',\n", " '6B0',\n", " '1NY',\n", " 'IMT',\n", " 'LFT',\n", " 'CTZ',\n", " 'HIO',\n", " 'GTR',\n", " 'UXP',\n", " 'FLT',\n", " 'RBG',\n", " 'EDE',\n", " 'UBF',\n", " 'CPX',\n", " 'NY7',\n", " 'KQA',\n", " 'SMF',\n", " 'JMS',\n", " 'CHA',\n", " 'RKS',\n", " 'ACK',\n", " 'AOH',\n", " 'ENW',\n", " 'GAM',\n", " 'KEB',\n", " 'CKB',\n", " 'LWS',\n", " 'MCI',\n", " 'AKI',\n", " 'ANC',\n", " 'SBP',\n", " 'RST',\n", " 'IAH',\n", " 'ONT',\n", " 'PTH',\n", " 'KVL',\n", " 'MBL',\n", " 'MNN',\n", " 'RHI',\n", " 'MHR',\n", " 'CEC',\n", " 'KGX',\n", " 'DJN',\n", " 'WWD',\n", " '1G4',\n", " 'SWF',\n", " 'AK6',\n", " 'HRO',\n", " 'HNS',\n", " 'KOZ',\n", " 'ROW',\n", " 'KWK',\n", " 'CLU',\n", " 'GST',\n", " 'SHG',\n", " 'MFR',\n", " 'PIP',\n", " 'JAN',\n", " 'UOX',\n", " 'TEB',\n", " 'ISN',\n", " 'MQT',\n", " 'PSM',\n", " 'EDF',\n", " 'RWI',\n", " 'EGE',\n", " 'CDV',\n", " 'TKF',\n", " 'HUS',\n", " 'VRB',\n", " 'CZF',\n", " 'KPN',\n", " 'WWT',\n", " 'PIZ',\n", " 'RNO',\n", " 'WRL',\n", " 'GDC',\n", " 'A52',\n", " 'CYS',\n", " 'ELV',\n", " 'AET',\n", " 'SEA',\n", " 'DTO',\n", " 'FRG',\n", " 'CZN',\n", " 'FYV',\n", " 'TX1',\n", " 'NC1',\n", " 'ME2',\n", " 'KAE',\n", " 'PHF',\n", " 'MCK',\n", " 'MLB',\n", " 'ILI',\n", " 'TMB',\n", " 'LPS',\n", " 'KNK',\n", " 'PIT',\n", " 'EGV',\n", " 'MYU',\n", " 'SJU',\n", " 'MEI',\n", " 'FAQ',\n", " 'LUK',\n", " 'SUM',\n", " 'SLE',\n", " 'KEH',\n", " 'MMU',\n", " 'ORV',\n", " 'BOI',\n", " 'BFB',\n", " 'RKD',\n", " 'LKP',\n", " 'LFI',\n", " 'SBD',\n", " 'CHP',\n", " 'GBH',\n", " 'TYE',\n", " 'HAO',\n", " 'LRU',\n", " 'AOO',\n", " 'GBR',\n", " 'KPB',\n", " 'MTN',\n", " 'EAA',\n", " 'PYM',\n", " 'SOW',\n", " 'FOK',\n", " 'LOZ',\n", " 'GYY',\n", " 'GAI',\n", " 'KTN',\n", " 'AKK',\n", " 'STT',\n", " 'PBK',\n", " 'MRN',\n", " 'AK5',\n", " 'VAK',\n", " 'SHH',\n", " 'HUF',\n", " 'PUB',\n", " 'DQK',\n", " 'DE3',\n", " 'SJC',\n", " 'OTZ',\n", " 'AZ3',\n", " 'LZU',\n", " 'A27',\n", " 'ITH',\n", " 'JZT',\n", " 'DDC',\n", " 'MCW',\n", " 'WSN',\n", " 'SEE',\n", " 'BJC',\n", " 'IAD',\n", " 'JAX',\n", " 'LAS',\n", " 'BAD',\n", " 'RSN',\n", " 'INL',\n", " 'WSX',\n", " 'CWI',\n", " 'VT1',\n", " 'FMH',\n", " 'PWM',\n", " 'PPG',\n", " 'GBD',\n", " 'KMO',\n", " 'AGC',\n", " 'LVK',\n", " 'JBR',\n", " 'WLK',\n", " 'ALS',\n", " 'KY1',\n", " 'SNA',\n", " 'AZA',\n", " 'KWT',\n", " 'DUT',\n", " 'XWF',\n", " 'PVC',\n", " 'RIC',\n", " 'WTK',\n", " 'RBY',\n", " 'VZR',\n", " 'SGY',\n", " 'BTV',\n", " 'BAF',\n", " 'WKK',\n", " 'ISO',\n", " 'VZE',\n", " 'KLG',\n", " 'JZU',\n", " 'VQS',\n", " 'TWA',\n", " 'SYR',\n", " 'SFZ',\n", " 'PDX',\n", " 'NJK',\n", " 'MOB',\n", " 'SCH',\n", " 'ONH',\n", " 'LNY',\n", " 'WRI',\n", " 'LGU',\n", " 'WWP',\n", " 'TUS',\n", " 'GRK',\n", " 'ANB',\n", " 'GRF',\n", " 'ROP',\n", " 'MI2',\n", " 'RQZ',\n", " 'KZB',\n", " 'CEM',\n", " 'MSC',\n", " 'ZXN',\n", " 'BFM',\n", " 'HVR',\n", " 'WA7',\n", " 'SKK',\n", " 'HTS',\n", " 'GAL',\n", " 'UGB',\n", " 'HCR',\n", " 'AMA',\n", " 'MLY',\n", " 'AL7',\n", " 'CAE',\n", " 'JAC',\n", " 'CO3',\n", " 'MWH',\n", " 'IN1',\n", " 'CDL',\n", " 'KXA',\n", " 'HRL',\n", " 'MTO',\n", " 'EUG',\n", " 'MGW',\n", " 'PDT',\n", " 'IRK',\n", " 'MIE',\n", " 'CRP',\n", " 'FXE',\n", " 'DNL',\n", " 'CEU',\n", " 'CIC',\n", " 'AKN',\n", " 'JZI',\n", " 'SMO',\n", " 'PTD',\n", " 'ALZ',\n", " 'BIH',\n", " 'DXR',\n", " 'COE',\n", " 'CIK',\n", " 'KPV',\n", " 'STL',\n", " 'MHK',\n", " 'DSM',\n", " 'MCO',\n", " 'SAC',\n", " 'DHB',\n", " 'ORH',\n", " 'ADQ',\n", " 'CLF',\n", " 'ANI',\n", " 'FWA',\n", " 'ISM',\n", " 'GLV',\n", " 'HYA',\n", " 'IAG',\n", " 'PSC',\n", " 'NIN',\n", " 'OOK',\n", " 'APN',\n", " 'TN5',\n", " 'TN1',\n", " 'ZXB',\n", " 'NBG',\n", " 'MZJ',\n", " 'RIV',\n", " 'ACT',\n", " 'FQW',\n", " 'ALB',\n", " 'KWP',\n", " 'MD1',\n", " 'KYK',\n", " 'BRL',\n", " 'TSP',\n", " 'SPI',\n", " 'DVT',\n", " 'FID',\n", " 'CLM',\n", " 'BDY',\n", " 'HYS',\n", " 'TEK',\n", " 'FVQ',\n", " 'SQA',\n", " 'LVD',\n", " 'DFW',\n", " 'ORI',\n", " 'DPA',\n", " 'KSM',\n", " 'PAE',\n", " 'FLG',\n", " 'HOB',\n", " 'BFL',\n", " 'KKB',\n", " 'ABI',\n", " 'EWB',\n", " 'BBD',\n", " 'JLN',\n", " 'EAT',\n", " 'A63',\n", " 'FVX',\n", " 'HTO',\n", " 'KOY',\n", " 'MQY',\n", " 'LEX',\n", " 'LAF',\n", " 'VCV',\n", " 'SSI',\n", " 'HON',\n", " 'CLG',\n", " 'XXN',\n", " 'PUL',\n", " 'OAK',\n", " 'PVD',\n", " 'SFO',\n", " 'AA8',\n", " 'BFD',\n", " 'EKA',\n", " 'PGA',\n", " 'OSU',\n", " 'CMX',\n", " 'LBF',\n", " 'SFB',\n", " 'GSB',\n", " 'MCF',\n", " 'ERI',\n", " 'MGM',\n", " 'IAB',\n", " 'SBY',\n", " 'GVT',\n", " 'KWF',\n", " 'FDY',\n", " 'XXY',\n", " 'VGC',\n", " 'LUP',\n", " 'SCM',\n", " 'MJX',\n", " 'AST',\n", " 'SOV',\n", " 'PEC',\n", " 'PWK',\n", " 'OFF',\n", " 'PNE',\n", " 'TSG',\n", " 'PWT',\n", " 'SNS',\n", " 'RBW',\n", " 'FMY',\n", " 'ADK',\n", " 'VWX',\n", " 'OLE',\n", " 'TRM',\n", " 'F70',\n", " 'PLN',\n", " 'CMH',\n", " 'PGM',\n", " 'TCL',\n", " 'DOV',\n", " 'TIW',\n", " 'CBE',\n", " 'GUS',\n", " 'LCH',\n", " 'MA5',\n", " 'ONP',\n", " 'TRI',\n", " 'CRS',\n", " 'OCF',\n", " 'KCC',\n", " 'DRO',\n", " 'JZY',\n", " 'TKJ',\n", " 'ALW',\n", " 'A02',\n", " 'BMI',\n", " 'APF',\n", " 'YUM',\n", " 'XSD',\n", " 'VNY',\n", " 'PHX',\n", " 'TOG',\n", " 'BCT',\n", " 'SSW',\n", " 'KUK',\n", " 'BYA',\n", " 'TLT',\n", " 'CWA',\n", " 'LWM',\n", " 'PIB',\n", " 'AIA',\n", " 'MRF',\n", " 'PDK',\n", " 'SZL',\n", " 'BFT',\n", " 'CXF',\n", " 'LAL',\n", " 'ZXH',\n", " 'SVA',\n", " 'GPT',\n", " 'DQY',\n", " 'SUN',\n", " 'JCT',\n", " 'LSE',\n", " 'SVC',\n", " 'VUO',\n", " 'LGB',\n", " 'DTW',\n", " 'AFW',\n", " 'MFD',\n", " 'HSV',\n", " 'UGI',\n", " 'EEK',\n", " 'MDH',\n", " 'FRD',\n", " 'CGA',\n", " 'CHU',\n", " 'BQK',\n", " 'BTP',\n", " 'PTW',\n", " 'TYR',\n", " 'LOT',\n", " 'JRV',\n", " 'PRC',\n", " 'SLK',\n", " 'AUO',\n", " 'A43',\n", " 'TLF',\n", " 'TXK',\n", " 'LCI',\n", " 'SEG',\n", " 'MA1',\n", " 'GSH',\n", " 'WAA',\n", " 'MAZ',\n", " 'KTB',\n", " 'SDF',\n", " 'BOS',\n", " 'SXP',\n", " 'PUW',\n", " 'ABY',\n", " 'CVS',\n", " 'AVP',\n", " 'VZY',\n", " 'OKC',\n", " 'ZNC',\n", " 'A2K',\n", " 'LAX',\n", " 'WVI',\n", " 'GEK',\n", " 'ILN',\n", " 'DBQ',\n", " 'DRT',\n", " 'PWA',\n", " 'DQL',\n", " 'BYW',\n", " 'BKE',\n", " 'RLU',\n", " 'IWD',\n", " 'MTH',\n", " 'OLH',\n", " 'FAT',\n", " 'NHZ',\n", " 'AZO',\n", " 'QMN',\n", " 'AKP',\n", " 'KKI',\n", " 'RDU',\n", " 'LIH',\n", " 'BHM',\n", " 'VIS',\n", " 'DQS',\n", " 'BOK',\n", " 'JHM',\n", " 'ICT',\n", " 'NGU',\n", " 'SBN',\n", " 'STP',\n", " 'TVF',\n", " 'EYW',\n", " 'TIK',\n", " 'OXC',\n", " 'KMY',\n", " 'CBA',\n", " 'HLN',\n", " 'VPZ',\n", " 'SAF',\n", " 'BDR',\n", " 'ISP',\n", " 'PAH',\n", " 'WNA',\n", " 'CHD',\n", " 'SUA',\n", " 'GSP',\n", " 'OLU',\n", " 'EXI',\n", " 'SMX',\n", " 'DLH',\n", " 'PSE',\n", " 'HSL',\n", " 'ATL',\n", " 'HKB',\n", " 'TIX',\n", " 'MNT',\n", " 'MKG',\n", " 'HNH',\n", " 'MHM',\n", " 'KPC',\n", " 'SCC',\n", " 'MKL',\n", " 'GFK',\n", " 'NJ1',\n", " 'CPS',\n", " 'MAF',\n", " 'MOT',\n", " 'BLM',\n", " 'HPN',\n", " 'HOU',\n", " 'VCT',\n", " 'ELM',\n", " 'C1A',\n", " 'ACV',\n", " 'STC',\n", " 'SHV',\n", " 'SBM',\n", " 'WGO',\n", " 'BMC',\n", " 'BUR',\n", " 'BIS',\n", " 'AUZ',\n", " 'FNT',\n", " 'CLD',\n", " 'PKA',\n", " 'A29',\n", " 'CSM',\n", " 'BZN',\n", " 'ILG',\n", " 'GRI',\n", " 'UUK',\n", " 'KY3',\n", " 'BDL',\n", " 'OAJ',\n", " 'FTY',\n", " 'BRD',\n", " 'CYF',\n", " '06A',\n", " 'DIO',\n", " 'JZB',\n", " 'ECP',\n", " 'GFL',\n", " 'ATW',\n", " 'EKX',\n", " 'SFM',\n", " 'AWM',\n", " 'TYS',\n", " 'SAT',\n", " 'QQB',\n", " 'TOP',\n", " 'KOA',\n", " 'N1C',\n", " 'HIE',\n", " 'ABL',\n", " 'PPV',\n", " 'RDV',\n", " 'ACY',\n", " 'CIU',\n", " 'RQV',\n", " 'MCG',\n", " 'GUC',\n", " 'IND',\n", " 'MHT',\n", " 'VGT',\n", " 'CLL',\n", " 'BCE',\n", " 'GLH',\n", " 'SHR',\n", " 'A72',\n", " 'CAK',\n", " 'MTJ',\n", " 'OJC',\n", " 'GED',\n", " 'LYH',\n", " 'KOT',\n", " 'ENN',\n", " 'MCC',\n", " 'PSK',\n", " 'KLL',\n", " 'ATT',\n", " 'BIF',\n", " 'HNL',\n", " 'ENA',\n", " 'DUA',\n", " 'ATK',\n", " 'WQU',\n", " 'BKW',\n", " 'ME3',\n", " 'LIT',\n", " 'KAL',\n", " 'YIP',\n", " 'DAB',\n", " 'MEM',\n", " 'SDY',\n", " 'WTL',\n", " 'GLR',\n", " 'A26',\n", " 'KBC',\n", " 'MXY',\n", " 'BET',\n", " 'PHL',\n", " 'ESN',\n", " 'KKA',\n", " 'ABR',\n", " 'HYL',\n", " 'POU',\n", " 'DEC',\n", " 'SVH',\n", " 'NIP',\n", " 'RMP',\n", " 'KCL',\n", " 'FWH',\n", " 'AUK',\n", " 'CLP',\n", " 'WSB',\n", " 'LGC',\n", " 'ADW',\n", " 'WA9',\n", " 'XXP',\n", " 'SBA',\n", " 'HUT',\n", " 'BWD',\n", " 'UXK',\n", " 'TPL',\n", " 'HVC',\n", " 'GRB',\n", " 'CRW',\n", " 'BVY',\n", " 'APC',\n", " 'CVO',\n", " 'AKB',\n", " 'FLL',\n", " 'LEB',\n", " 'VZA',\n", " 'MIA',\n", " 'TUL',\n", " 'CNM',\n", " 'NUP',\n", " 'CHS',\n", " 'BRO',\n", " 'TNT',\n", " 'CPR',\n", " 'JZE',\n", " 'AOS',\n", " 'MSS',\n", " 'KYU',\n", " 'COD',\n", " 'PIH',\n", " 'GSO',\n", " 'FSD',\n", " 'PTA',\n", " 'ELN',\n", " 'ABE',\n", " 'TPA',\n", " 'TLH',\n", " 'A50',\n", " 'DKK',\n", " 'AUG',\n", " 'YAK',\n", " 'TTD',\n", " 'BLV',\n", " 'UMT',\n", " 'ZXC',\n", " 'IAN',\n", " 'LAM',\n", " 'OSC',\n", " 'BQN',\n", " 'FTW',\n", " 'XWA',\n", " 'FNL',\n", " 'JWY',\n", " 'ORF',\n", " 'SLQ',\n", " 'MBS',\n", " 'SCF',\n", " 'LKV',\n", " 'IFP',\n", " 'LRD',\n", " 'TCT',\n", " 'NGF',\n", " 'HIK',\n", " 'ANV',\n", " 'WA6',\n", " 'MI6',\n", " 'KLW',\n", " 'KPR',\n", " 'WCR',\n", " 'MA2',\n", " 'STS',\n", " 'FSI',\n", " 'CKX',\n", " 'MMH',\n", " 'CHZ',\n", " 'RDM',\n", " 'OFU',\n", " 'MCN',\n", " 'LCK',\n", " 'KWN',\n", " 'RUT',\n", " 'LSF',\n", " 'MFE',\n", " 'CDB',\n", " 'VDZ',\n", " 'SHX',\n", " 'SXQ',\n", " 'EGX',\n", " 'LBE',\n", " 'SUS',\n", " 'ROG',\n", " 'BPT',\n", " 'VEE',\n", " 'WMK',\n", " 'PML',\n", " 'EWR',\n", " 'A07',\n", " 'IGM',\n", " 'OLF',\n", " 'INT',\n", " 'TN9',\n", " 'PAQ',\n", " 'EWN',\n", " 'QQY',\n", " 'DIK',\n", " 'RBD',\n", " 'FNR',\n", " 'ESD',\n", " 'ORT',\n", " 'GEG',\n", " 'LKE',\n", " 'ELY',\n", " '08A',\n", " 'A3K',\n", " 'CHO',\n", " 'PGV',\n", " 'KKH',\n", " 'MRI',\n", " 'TBN',\n", " 'HDN',\n", " 'NPT',\n", " 'NKX',\n", " 'ASE',\n", " 'KCQ',\n", " 'PBX',\n", " 'GON',\n", " 'FKL',\n", " 'KTS',\n", " 'FPR',\n", " 'HCB',\n", " 'LPR',\n", " 'WBQ',\n", " 'EEN',\n", " 'GYR',\n", " 'MSV',\n", " 'ALO',\n", " 'OGS',\n", " 'DOF',\n", " 'TNC',\n", " 'PVU',\n", " 'RCE',\n", " 'GDV',\n", " 'RDB',\n", " 'BWG',\n", " 'ATY',\n", " 'AHN',\n", " 'KCG',\n", " 'TTN',\n", " 'PDB',\n", " 'BFF',\n", " 'DRG',\n", " 'WHD',\n", " 'EFD',\n", " 'MCE',\n", " 'XNA',\n", " 'NNL',\n", " 'BKC',\n", " 'WQZ',\n", " 'CNO',\n", " 'OMA',\n", " 'HOP',\n", " 'MOD',\n", " 'RAC',\n", " 'DMN',\n", " 'CIG',\n", " 'MMI',\n", " 'EIL',\n", " 'DCK',\n", " 'NQA',\n", " 'NCN',\n", " 'A1K',\n", " 'SCE',\n", " 'UXR',\n", " 'TOL',\n", " 'SNP',\n", " 'AIN',\n", " 'IPL',\n", " 'FRY',\n", " 'ZXT',\n", " 'NZC',\n", " 'TUP',\n", " 'CDW',\n", " 'LUR',\n", " 'SRV',\n", " 'CEF',\n", " 'SKJ',\n", " 'CLT',\n", " 'JST',\n", " 'OWB',\n", " 'EAR',\n", " 'DLG',\n", " 'SVS',\n", " 'MWA',\n", " 'LA2',\n", " 'DAL',\n", " 'TKA',\n", " 'HVN',\n", " 'PSP',\n", " 'ADS',\n", " 'BID',\n", " 'MLL',\n", " 'KPY',\n", " 'CNY',\n", " 'LEW',\n", " 'VPS',\n", " 'KCR',\n", " 'YNG',\n", " 'ART',\n", " 'CYM',\n", " 'SVN',\n", " 'MYR',\n", " 'WRB',\n", " 'MYK',\n", " 'A83',\n", " 'CDR',\n", " 'LNK',\n", " 'DLS',\n", " 'A20',\n", " 'DHN',\n", " 'AGS',\n", " 'DAY',\n", " 'MNZ',\n", " 'TIQ',\n", " 'NUL',\n", " 'NKI',\n", " 'SKW',\n", " 'HPB',\n", " 'HLM',\n", " 'KNW',\n", " 'MLU',\n", " 'IKV',\n", " 'XWH',\n", " 'HFD',\n", " 'ARC',\n", " 'UST',\n", " 'MT2',\n", " 'RSJ',\n", " 'VEL',\n", " 'ILM',\n", " 'TKE',\n", " 'PHN',\n", " 'VAD',\n", " 'FOE',\n", " 'CEW',\n", " 'GNU',\n", " 'IPT',\n", " 'GKN',\n", " 'SOP',\n", " 'PQS',\n", " 'BTI',\n", " 'PA7',\n", " 'ENV',\n", " 'SSC',\n", " 'SYB',\n", " 'FBK',\n", " 'PCA',\n", " 'RFD',\n", " 'SJT',\n", " 'VZM',\n", " 'PRB',\n", " 'KGK',\n", " 'DGB',\n", " 'VA6',\n", " 'MSO',\n", " 'BGR',\n", " 'ALN',\n", " 'PSG',\n", " 'GUM',\n", " 'LNI',\n", " 'KNB',\n", " 'SUX',\n", " 'TLA',\n", " 'SYA',\n", " 'LSV',\n", " 'CVG',\n", " 'PHO',\n", " 'GCK',\n", " 'RDD',\n", " 'RME',\n", " 'MTP',\n", " 'ROA',\n", " 'PCT',\n", " 'GGE',\n", " 'PKB',\n", " 'PBI',\n", " 'COS',\n", " 'ORL',\n", " 'ME4',\n", " 'FBS',\n", " 'SGU',\n", " 'NUQ',\n", " 'QQN',\n", " 'BTM',\n", " 'UES',\n", " 'DE2',\n", " '7AK',\n", " 'TAL',\n", " 'BED',\n", " ...},\n", " {'SPB', 'SSB'},\n", " {'AIK'}]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(nx.weakly_connected_components(pass_2015))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SPB, SSB, AIK anyone?" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0YEARORIGINDESTUNIQUE_CARRIER_NAMEPASSENGERS
4333384333382015AIKAIK{'Wright Air Service'}0.0
\n", "
" ], "text/plain": [ " Unnamed: 0 YEAR ORIGIN DEST UNIQUE_CARRIER_NAME PASSENGERS\n", "433338 433338 2015 AIK AIK {'Wright Air Service'} 0.0" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pass_air_data[(pass_air_data['YEAR'] == 2015) & (pass_air_data['ORIGIN'] == 'AIK')]" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "pass_2015.remove_nodes_from(['SPB', 'SSB', 'AIK'])" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.is_weakly_connected(pass_2015)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.is_strongly_connected(pass_2015)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Strongly vs weakly connected graphs." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G = nx.DiGraph()\n", "G.add_edge(1, 2)\n", "G.add_edge(2, 3)\n", "G.add_edge(3, 1)\n", "nx.draw(G)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G.add_edge(3, 4)\n", "nx.draw(G)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.is_strongly_connected(G)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'BCE'},\n", " {'WA3'},\n", " {'WA9'},\n", " {'TIW'},\n", " {'RQV'},\n", " {'SUA'},\n", " {'POU'},\n", " {'MA5'},\n", " {'MXF'},\n", " {'TSP'},\n", " {'MSV'},\n", " {'AST'},\n", " {'XXU'},\n", " {'OR2'},\n", " {'CLG'},\n", " {'QQN'},\n", " {'WVI'},\n", " {'CO3'},\n", " {'BOK'},\n", " {'XXY'},\n", " {'ZXC'},\n", " {'ZXT'},\n", " {'C1A'},\n", " {'ELN'},\n", " {'BKE'},\n", " {'EKI'},\n", " {'MA4'},\n", " {'MI6'},\n", " {'TMB'},\n", " {'XWF'},\n", " {'LZU'},\n", " {'GUF'},\n", " {'N1Y'},\n", " {'DKK'},\n", " {'TIX'},\n", " {'MRF'},\n", " {'VAD'},\n", " {'ARA',\n", " 'BWI',\n", " 'AL3',\n", " 'OHC',\n", " 'RAP',\n", " 'HOM',\n", " 'LAN',\n", " 'II3',\n", " 'MQJ',\n", " 'ITO',\n", " 'MSY',\n", " 'CKV',\n", " 'MVL',\n", " 'SWD',\n", " 'UKI',\n", " 'OLV',\n", " 'HHH',\n", " 'SKF',\n", " 'BTT',\n", " 'IYK',\n", " 'RNT',\n", " 'CDC',\n", " 'IKO',\n", " 'AMW',\n", " 'MKE',\n", " 'SAN',\n", " 'SPN',\n", " 'HGR',\n", " 'IN2',\n", " 'PBG',\n", " 'NZY',\n", " 'GCC',\n", " 'UIN',\n", " 'WWA',\n", " 'CSG',\n", " 'GA6',\n", " 'YKM',\n", " 'MTM',\n", " 'LNS',\n", " 'MER',\n", " 'SGR',\n", " 'ZXU',\n", " 'MDW',\n", " 'NAD',\n", " 'MDT',\n", " 'CT1',\n", " 'CON',\n", " 'GGW',\n", " 'UXI',\n", " 'CVN',\n", " 'CLE',\n", " 'WST',\n", " 'PIR',\n", " 'MEO',\n", " 'AVW',\n", " 'VLD',\n", " 'IGG',\n", " 'SVW',\n", " 'EKO',\n", " 'PNS',\n", " 'ASN',\n", " 'BJI',\n", " '6B0',\n", " '1NY',\n", " 'IMT',\n", " 'LFT',\n", " 'CTZ',\n", " 'HIO',\n", " 'GTR',\n", " 'FLT',\n", " 'RBG',\n", " 'EDE',\n", " 'UBF',\n", " 'CPX',\n", " 'KQA',\n", " 'NY7',\n", " 'SMF',\n", " 'JMS',\n", " 'CHA',\n", " 'ACK',\n", " 'AOH',\n", " 'RKS',\n", " 'ENW',\n", " 'GAM',\n", " 'KEB',\n", " 'CKB',\n", " 'LWS',\n", " 'MCI',\n", " 'AKI',\n", " 'ANC',\n", " 'GCK',\n", " 'SBP',\n", " 'RST',\n", " 'IAH',\n", " 'PTH',\n", " 'KVL',\n", " 'ONT',\n", " 'MNN',\n", " 'MBL',\n", " 'MHR',\n", " 'RHI',\n", " 'CEC',\n", " 'KGX',\n", " 'WWD',\n", " '1G4',\n", " 'AK6',\n", " 'SWF',\n", " 'HRO',\n", " 'HNS',\n", " 'KOZ',\n", " 'ROW',\n", " 'KWK',\n", " 'CLU',\n", " 'GST',\n", " 'SHG',\n", " 'MFR',\n", " 'PIP',\n", " 'JAN',\n", " 'FBK',\n", " 'UOX',\n", " 'ISN',\n", " 'TEB',\n", " 'EDF',\n", " 'PSM',\n", " 'HUS',\n", " 'CDV',\n", " 'EGE',\n", " 'RWI',\n", " 'TKF',\n", " 'MQT',\n", " 'KPN',\n", " 'VRB',\n", " 'WWT',\n", " 'CZF',\n", " 'PIZ',\n", " 'WRL',\n", " 'RNO',\n", " 'GDC',\n", " 'A52',\n", " 'CYS',\n", " 'ELV',\n", " 'AET',\n", " 'SEA',\n", " 'DTO',\n", " 'FRG',\n", " 'CZN',\n", " 'FYV',\n", " 'TX1',\n", " 'NC1',\n", " 'ME2',\n", " 'KAE',\n", " 'MCK',\n", " 'PHF',\n", " 'ILI',\n", " 'MLB',\n", " 'LPS',\n", " 'MYU',\n", " 'EGV',\n", " 'FAQ',\n", " 'PIT',\n", " 'KNK',\n", " 'SJU',\n", " 'KEH',\n", " 'MEI',\n", " 'LUK',\n", " 'SLE',\n", " 'MMU',\n", " 'BFB',\n", " 'ORV',\n", " 'BOI',\n", " 'LKP',\n", " 'RKD',\n", " 'CHP',\n", " 'LFI',\n", " 'GBH',\n", " 'SBD',\n", " 'TYE',\n", " 'AOO',\n", " 'LRU',\n", " 'GBR',\n", " 'KPB',\n", " 'MTN',\n", " 'EAA',\n", " 'PYM',\n", " 'SOW',\n", " 'LOZ',\n", " 'FOK',\n", " 'GYY',\n", " 'GAI',\n", " 'KTN',\n", " 'AKK',\n", " 'STT',\n", " 'PBK',\n", " 'MRN',\n", " 'AK5',\n", " 'VAK',\n", " 'SHH',\n", " 'HUF',\n", " 'PUB',\n", " 'DQK',\n", " 'DE3',\n", " 'SJC',\n", " 'OTZ',\n", " 'AZ3',\n", " 'A27',\n", " 'ITH',\n", " 'JZT',\n", " 'MCW',\n", " 'DDC',\n", " 'WSN',\n", " 'SEE',\n", " 'BJC',\n", " 'IAD',\n", " 'JAX',\n", " 'LAS',\n", " 'RSN',\n", " 'INL',\n", " 'BAD',\n", " 'WSX',\n", " 'CWI',\n", " 'VT1',\n", " 'FMH',\n", " 'PWM',\n", " 'PPG',\n", " 'GBD',\n", " 'KMO',\n", " 'AGC',\n", " 'LVK',\n", " 'JBR',\n", " 'WLK',\n", " 'ALS',\n", " 'KY1',\n", " 'KWT',\n", " 'SNA',\n", " 'WTK',\n", " 'DUT',\n", " 'AZA',\n", " 'RBY',\n", " 'RIC',\n", " 'PVC',\n", " 'VZR',\n", " 'VZE',\n", " 'SGY',\n", " 'BTV',\n", " 'BAF',\n", " 'WKK',\n", " 'ISO',\n", " 'KLG',\n", " 'JZU',\n", " 'VQS',\n", " 'TWA',\n", " 'SYR',\n", " 'SFZ',\n", " 'PDX',\n", " 'SCH',\n", " 'MOB',\n", " 'ONH',\n", " 'LNY',\n", " 'WRI',\n", " 'LGU',\n", " 'WWP',\n", " 'TUS',\n", " 'GRK',\n", " 'ANB',\n", " 'ROP',\n", " 'KZB',\n", " 'MI2',\n", " 'RQZ',\n", " 'WA7',\n", " 'MSC',\n", " 'ZXN',\n", " 'HVR',\n", " 'BFM',\n", " 'CEM',\n", " 'SKK',\n", " 'GAL',\n", " 'HTS',\n", " 'UGB',\n", " 'HCR',\n", " 'AMA',\n", " 'MLY',\n", " 'AL7',\n", " 'CAE',\n", " 'JAC',\n", " 'IN1',\n", " 'KXA',\n", " 'MWH',\n", " 'CDL',\n", " 'HRL',\n", " 'MTO',\n", " 'EUG',\n", " 'PDT',\n", " 'IRK',\n", " 'MGW',\n", " 'MIE',\n", " 'CRP',\n", " 'DNL',\n", " 'FXE',\n", " 'CEU',\n", " 'AKN',\n", " 'CIC',\n", " 'JZI',\n", " 'SMO',\n", " 'PTD',\n", " 'ALZ',\n", " 'BIH',\n", " 'CIK',\n", " 'DXR',\n", " 'COE',\n", " 'KPV',\n", " 'STL',\n", " 'MHK',\n", " 'DSM',\n", " 'MCO',\n", " 'DHB',\n", " 'SAC',\n", " 'ORH',\n", " 'ADQ',\n", " 'CLF',\n", " 'ANI',\n", " 'FWA',\n", " 'GLV',\n", " 'PSC',\n", " 'IAG',\n", " 'HYA',\n", " 'NIN',\n", " 'OOK',\n", " 'ZXB',\n", " 'TN5',\n", " 'APN',\n", " 'TN1',\n", " 'MZJ',\n", " 'ACT',\n", " 'RIV',\n", " 'FQW',\n", " 'KWP',\n", " 'ALB',\n", " 'MD1',\n", " 'KYK',\n", " 'BRL',\n", " 'SPI',\n", " 'DVT',\n", " 'FID',\n", " 'CLM',\n", " 'BDY',\n", " 'HYS',\n", " 'TEK',\n", " 'FVQ',\n", " 'SQA',\n", " 'LVD',\n", " 'DFW',\n", " 'ORI',\n", " 'KSM',\n", " 'DPA',\n", " 'PAE',\n", " 'HOB',\n", " 'FLG',\n", " 'BFL',\n", " 'KKB',\n", " 'ABI',\n", " 'EWB',\n", " 'BBD',\n", " 'A63',\n", " 'JLN',\n", " 'EAT',\n", " 'FVX',\n", " 'HTO',\n", " 'KOY',\n", " 'VCV',\n", " 'LEX',\n", " 'MQY',\n", " 'LAF',\n", " 'SSI',\n", " 'HON',\n", " 'PUL',\n", " 'XXN',\n", " 'OAK',\n", " 'PVD',\n", " 'SFO',\n", " 'AA8',\n", " 'BFD',\n", " 'EKA',\n", " 'PGA',\n", " 'OSU',\n", " 'LBF',\n", " 'GPM',\n", " 'KWF',\n", " 'SFB',\n", " 'CMX',\n", " 'MGM',\n", " 'ERI',\n", " 'IAB',\n", " 'SBY',\n", " 'GVT',\n", " 'VGC',\n", " 'FDY',\n", " 'LUP',\n", " 'SCM',\n", " 'MJX',\n", " 'WMO',\n", " 'SOV',\n", " 'PEC',\n", " 'PWK',\n", " 'TSG',\n", " 'PNE',\n", " 'PWT',\n", " 'SNS',\n", " 'FMY',\n", " 'RBW',\n", " 'ADK',\n", " 'OLE',\n", " 'TRM',\n", " 'PLN',\n", " 'CMH',\n", " 'PGM',\n", " 'DOV',\n", " 'TCL',\n", " 'CBE',\n", " 'GUS',\n", " 'ONP',\n", " 'LCH',\n", " 'TRI',\n", " 'CRS',\n", " 'OCF',\n", " 'KCC',\n", " 'TKJ',\n", " 'ALW',\n", " 'DRO',\n", " 'JZY',\n", " 'A02',\n", " 'BMI',\n", " 'APF',\n", " 'YUM',\n", " 'XSD',\n", " 'VNY',\n", " 'PHX',\n", " 'TOG',\n", " 'SSW',\n", " 'BCT',\n", " 'KUK',\n", " 'TLT',\n", " 'BYA',\n", " 'CWA',\n", " 'LWM',\n", " 'PIB',\n", " 'AIA',\n", " 'SZL',\n", " 'PDK',\n", " 'BFT',\n", " 'CXF',\n", " 'ZXH',\n", " 'LAL',\n", " 'SVA',\n", " 'GPT',\n", " 'JCT',\n", " 'SUN',\n", " 'VUO',\n", " 'SVC',\n", " 'LSE',\n", " 'LGB',\n", " 'DTW',\n", " 'EEK',\n", " 'AFW',\n", " 'HSV',\n", " 'MFD',\n", " 'UGI',\n", " 'MDH',\n", " 'FRD',\n", " 'CHU',\n", " 'CGA',\n", " 'BQK',\n", " 'BTP',\n", " 'PTW',\n", " 'A43',\n", " 'LOT',\n", " 'JRV',\n", " 'PRC',\n", " 'AUO',\n", " 'SLK',\n", " 'TYR',\n", " 'TLF',\n", " 'TXK',\n", " 'LCI',\n", " 'SEG',\n", " 'KTB',\n", " 'GSH',\n", " 'MAZ',\n", " 'WAA',\n", " 'BOS',\n", " 'SDF',\n", " 'SXP',\n", " 'PUW',\n", " 'ABY',\n", " 'CVS',\n", " 'VZY',\n", " 'AVP',\n", " 'OKC',\n", " 'ZNC',\n", " 'A2K',\n", " 'LAX',\n", " 'BYW',\n", " 'PWA',\n", " 'DBQ',\n", " 'ILN',\n", " 'DRT',\n", " 'DQL',\n", " 'GEK',\n", " 'RLU',\n", " 'IWD',\n", " 'MTH',\n", " 'OLH',\n", " 'FAT',\n", " 'NHZ',\n", " 'AKP',\n", " 'KKI',\n", " 'AZO',\n", " 'RDU',\n", " 'VIS',\n", " 'BHM',\n", " 'DQS',\n", " 'LIH',\n", " 'JHM',\n", " 'ICT',\n", " 'TVF',\n", " 'SBN',\n", " 'EYW',\n", " 'TIK',\n", " 'NGU',\n", " 'OXC',\n", " 'STP',\n", " 'KMY',\n", " 'CBA',\n", " 'HLN',\n", " 'VPZ',\n", " 'SAF',\n", " 'BDR',\n", " 'ISP',\n", " 'PAH',\n", " 'WNA',\n", " 'CHD',\n", " 'GSP',\n", " 'OLU',\n", " 'EXI',\n", " 'SMX',\n", " 'DLH',\n", " 'PSE',\n", " 'HSL',\n", " 'ATL',\n", " 'HKB',\n", " 'MNT',\n", " 'HNH',\n", " 'MKG',\n", " 'MHM',\n", " 'KPC',\n", " 'SCC',\n", " 'NJ1',\n", " 'GFK',\n", " 'MKL',\n", " 'CPS',\n", " 'MAF',\n", " 'MOT',\n", " 'BLM',\n", " 'VCT',\n", " 'HOU',\n", " 'HPN',\n", " 'ELM',\n", " 'WGO',\n", " 'ACV',\n", " 'STC',\n", " 'SHV',\n", " 'SBM',\n", " 'BMC',\n", " 'BUR',\n", " 'PKA',\n", " 'BIS',\n", " 'FNT',\n", " 'AUZ',\n", " 'CLD',\n", " 'A29',\n", " 'CSM',\n", " 'BZN',\n", " 'ILG',\n", " 'UUK',\n", " 'GRI',\n", " 'FTY',\n", " 'BDL',\n", " 'OAJ',\n", " 'CYF',\n", " '06A',\n", " 'BRD',\n", " 'DIO',\n", " 'JZB',\n", " 'ECP',\n", " 'GFL',\n", " 'ATW',\n", " 'EKX',\n", " 'SFM',\n", " 'TYS',\n", " 'SAT',\n", " 'QQB',\n", " 'TOP',\n", " 'KOA',\n", " 'PPV',\n", " 'N1C',\n", " 'ABL',\n", " 'RDV',\n", " 'ACY',\n", " 'CIU',\n", " 'MCG',\n", " 'GUC',\n", " 'IND',\n", " 'MHT',\n", " 'VGT',\n", " 'CLL',\n", " 'GLH',\n", " 'SHR',\n", " 'A72',\n", " 'CAK',\n", " 'GED',\n", " 'OJC',\n", " 'MTJ',\n", " 'LYH',\n", " 'KOT',\n", " 'MCC',\n", " 'PSK',\n", " 'ENN',\n", " 'KLL',\n", " 'ATT',\n", " 'BIF',\n", " 'HNL',\n", " 'ENA',\n", " 'DUA',\n", " 'ATK',\n", " 'WQU',\n", " 'BKW',\n", " 'ME3',\n", " 'KAL',\n", " 'LIT',\n", " 'YIP',\n", " 'SDY',\n", " 'MEM',\n", " 'DAB',\n", " 'WTL',\n", " 'A26',\n", " 'GLR',\n", " 'KBC',\n", " 'BET',\n", " 'PHL',\n", " 'ESN',\n", " 'HYL',\n", " 'ABR',\n", " 'KKA',\n", " 'RMP',\n", " 'DEC',\n", " 'AUK',\n", " 'FWH',\n", " 'SVH',\n", " 'NIP',\n", " 'KCL',\n", " 'CLP',\n", " 'WSB',\n", " 'LGC',\n", " 'ADW',\n", " 'XXP',\n", " 'SBA',\n", " 'HUT',\n", " 'BWD',\n", " 'UXK',\n", " 'TPL',\n", " 'HVC',\n", " 'AKB',\n", " 'GRB',\n", " 'CRW',\n", " 'CVO',\n", " 'APC',\n", " 'BVY',\n", " 'FLL',\n", " 'LEB',\n", " 'VZA',\n", " 'NUP',\n", " 'CNM',\n", " 'MIA',\n", " 'TUL',\n", " 'CHS',\n", " 'BRO',\n", " 'TNT',\n", " 'CPR',\n", " 'JZE',\n", " 'AOS',\n", " 'MSS',\n", " 'KYU',\n", " 'PIH',\n", " 'COD',\n", " 'GSO',\n", " 'FSD',\n", " 'PTA',\n", " 'ABE',\n", " 'TPA',\n", " 'TLH',\n", " 'A50',\n", " 'AUG',\n", " 'YAK',\n", " 'TTD',\n", " 'BLV',\n", " 'UMT',\n", " 'IAN',\n", " 'LAM',\n", " 'FTW',\n", " 'BQN',\n", " 'OSC',\n", " 'XWA',\n", " 'JWY',\n", " 'FNL',\n", " 'ORF',\n", " 'SLQ',\n", " 'MBS',\n", " 'LKV',\n", " 'SCF',\n", " 'IFP',\n", " 'LRD',\n", " 'TCT',\n", " 'HIK',\n", " 'ANV',\n", " 'WA6',\n", " 'KPR',\n", " 'KLW',\n", " 'WCR',\n", " 'MA2',\n", " 'FSI',\n", " 'STS',\n", " 'CKX',\n", " 'MMH',\n", " 'CHZ',\n", " 'OFU',\n", " 'RDM',\n", " 'LSF',\n", " 'KWN',\n", " 'MCN',\n", " 'LCK',\n", " 'RUT',\n", " 'MFE',\n", " 'CDB',\n", " 'VDZ',\n", " 'SHX',\n", " 'SXQ',\n", " 'EGX',\n", " 'BPT',\n", " 'WMK',\n", " 'LBE',\n", " 'SUS',\n", " 'ROG',\n", " 'VEE',\n", " 'A07',\n", " 'EWR',\n", " 'PML',\n", " 'OLF',\n", " 'IGM',\n", " 'INT',\n", " 'TN9',\n", " 'PAQ',\n", " 'EWN',\n", " 'QQY',\n", " 'ORT',\n", " 'FNR',\n", " 'RBD',\n", " 'ESD',\n", " 'DIK',\n", " 'GEG',\n", " 'LKE',\n", " 'ELY',\n", " '08A',\n", " 'A3K',\n", " 'CHO',\n", " 'PGV',\n", " 'KKH',\n", " 'MRI',\n", " 'TBN',\n", " 'HDN',\n", " 'NPT',\n", " 'ASE',\n", " 'NKX',\n", " 'KCQ',\n", " 'PBX',\n", " 'GON',\n", " 'FKL',\n", " 'KTS',\n", " 'HCB',\n", " 'LPR',\n", " 'WBQ',\n", " 'EEN',\n", " 'DOF',\n", " 'GYR',\n", " 'OGS',\n", " 'ALO',\n", " 'TNC',\n", " 'PVU',\n", " 'RCE',\n", " 'GDV',\n", " 'RDB',\n", " 'PIE',\n", " 'ATY',\n", " 'BWG',\n", " 'AHN',\n", " 'KCG',\n", " 'TTN',\n", " 'WHD',\n", " 'DRG',\n", " 'BFF',\n", " 'PDB',\n", " 'EFD',\n", " 'MCE',\n", " 'XNA',\n", " 'NNL',\n", " 'BKC',\n", " 'WQZ',\n", " 'CNO',\n", " 'HOP',\n", " 'RAC',\n", " 'DMN',\n", " 'MOD',\n", " 'CIG',\n", " 'MMI',\n", " 'OMA',\n", " 'EIL',\n", " 'DCK',\n", " 'NQA',\n", " 'A1K',\n", " 'NCN',\n", " 'SCE',\n", " 'UXR',\n", " 'TOL',\n", " 'SNP',\n", " 'AIN',\n", " 'IPL',\n", " 'FRY',\n", " 'LUR',\n", " 'TUP',\n", " 'NZC',\n", " 'SRV',\n", " 'CEF',\n", " 'SKJ',\n", " 'CLT',\n", " 'JST',\n", " 'OWB',\n", " 'EAR',\n", " 'DLG',\n", " 'SVS',\n", " 'MWA',\n", " 'LA2',\n", " 'DAL',\n", " 'TKA',\n", " 'HVN',\n", " 'PSP',\n", " 'ADS',\n", " 'BID',\n", " 'MLL',\n", " 'KPY',\n", " 'CNY',\n", " 'LEW',\n", " 'KCR',\n", " 'VPS',\n", " 'ART',\n", " 'CYM',\n", " 'YNG',\n", " 'SVN',\n", " 'WRB',\n", " 'MYR',\n", " 'MYK',\n", " 'A83',\n", " 'CDR',\n", " 'LNK',\n", " 'DLS',\n", " 'A20',\n", " 'AGS',\n", " 'NUL',\n", " 'NKI',\n", " 'DAY',\n", " 'MNZ',\n", " 'DHN',\n", " 'TIQ',\n", " 'SKW',\n", " 'HPB',\n", " 'HLM',\n", " 'KNW',\n", " 'IKV',\n", " 'XWH',\n", " 'MLU',\n", " 'HFD',\n", " 'ARC',\n", " 'RSJ',\n", " 'MT2',\n", " 'UST',\n", " 'VEL',\n", " 'TKE',\n", " 'ILM',\n", " 'PHN',\n", " 'CEW',\n", " 'FOE',\n", " 'GNU',\n", " 'IPT',\n", " 'GKN',\n", " 'SOP',\n", " 'PQS',\n", " 'SYB',\n", " 'PCA',\n", " 'ENV',\n", " 'SSC',\n", " 'PA7',\n", " 'BTI',\n", " 'RFD',\n", " 'SJT',\n", " 'VZM',\n", " 'PRB',\n", " 'KGK',\n", " 'DGB',\n", " 'VA6',\n", " 'MSO',\n", " 'BGR',\n", " 'ALN',\n", " 'PSG',\n", " 'GUM',\n", " 'LNI',\n", " 'KNB',\n", " 'SUX',\n", " 'TLA',\n", " 'SYA',\n", " 'PHO',\n", " 'CVG',\n", " 'GGE',\n", " 'RDD',\n", " 'MTP',\n", " 'ME4',\n", " 'ROA',\n", " 'FBS',\n", " 'RME',\n", " 'PKB',\n", " 'PBI',\n", " 'COS',\n", " 'PCT',\n", " 'ORL',\n", " 'MXY',\n", " 'TAL',\n", " '7AK',\n", " 'DE2',\n", " 'BTM',\n", " 'UES',\n", " 'SGU',\n", " 'JRF',\n", " 'WA1',\n", " 'BED',\n", " 'ELI',\n", " 'PTV',\n", " 'SAV',\n", " 'T1X',\n", " 'SLC',\n", " 'JZM',\n", " 'BLI',\n", " 'PTU',\n", " 'FLO',\n", " 'UNK',\n", " 'CMI',\n", " 'SGF',\n", " 'VIK',\n", " 'NTU',\n", " 'T2X',\n", " 'GUP',\n", " 'OTH',\n", " 'ISS',\n", " 'LAW',\n", " 'ARB',\n", " 'SWO',\n", " 'UTO',\n", " 'TVL',\n", " 'KLS',\n", " 'RIL',\n", " 'AGN',\n", " 'SPS',\n", " 'BKL',\n", " 'FAR',\n", " 'MVN',\n", " 'GRR',\n", " 'HII',\n", " 'LIV',\n", " 'RIW',\n", " 'C01',\n", " 'BLD',\n", " 'JNU',\n", " 'AVL',\n", " 'BTL',\n", " 'AK2',\n", " 'SDX',\n", " 'PSF',\n", " 'DEN',\n", " 'LWB',\n", " 'OPF',\n", " 'A04',\n", " 'OME',\n", " 'PA2',\n", " 'BUF',\n", " 'QMA',\n", " ...},\n", " {'LSV'},\n", " {'FFO'},\n", " {'NGF'},\n", " {'NPA'},\n", " {'NUQ'},\n", " {'UXP'},\n", " {'GSB'},\n", " {'VWX'},\n", " {'PAM'},\n", " {'GRF'},\n", " {'FPR'},\n", " {'HAO'},\n", " {'NJK'},\n", " {'DJN'},\n", " {'SUM'},\n", " {'NBG'},\n", " {'OFF'},\n", " {'AWM'},\n", " {'ISM'},\n", " {'KY3'},\n", " {'MMT'},\n", " {'QMN'},\n", " {'CDW'},\n", " {'MA1'},\n", " {'HIE'},\n", " {'B19'},\n", " {'F70'},\n", " {'DQY'}]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(nx.strongly_connected_components(pass_2015))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0YEARORIGINDESTUNIQUE_CARRIER_NAMEPASSENGERS
4502454502452015ONTTSP{'Federal Express Corporation'}0.0
\n", "
" ], "text/plain": [ " Unnamed: 0 YEAR ORIGIN DEST UNIQUE_CARRIER_NAME \\\n", "450245 450245 2015 ONT TSP {'Federal Express Corporation'} \n", "\n", " PASSENGERS \n", "450245 0.0 " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pass_air_data[(pass_air_data['YEAR'] == 2015) & (pass_air_data['DEST'] == 'TSP')]" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "pass_2015_strong = max(nx.strongly_connected_component_subgraphs(pass_2015), key=len)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1190" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(pass_2015_strong)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.174661992635574" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.average_shortest_path_length(pass_2015_strong)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise! (Actually this is a game :D)\n", "\n", "How can we decrease the avg shortest path length of this network?\n", "\n", "Think of an effective way to add new edges to decrease the avg shortest path length.\n", "Let's see if we can come up with a nice way to do this, and the one who gets the highest decrease wins!!!\n", "\n", "The rules are simple:\n", "- You can't add more than 2% of the current edges( ~500 edges)\n", "\n", "[10 mins]" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "sort_degree = sorted(nx.degree_centrality(pass_2015_strong).items(), key=lambda x:x[1], reverse=True)\n", "top_count = 0\n", "for n, v in sort_degree:\n", " count = 0\n", " for node, val in sort_degree:\n", " if node != n:\n", " if node not in pass_2015_strong.adj[n]:\n", " pass_2015_strong.add_edge(n, node)\n", " count += 1\n", " if count == 25:\n", " break\n", " top_count += 1\n", " if top_count == 20:\n", " break" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.0887724307553133" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nx.average_shortest_path_length(pass_2015_strong)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What about airlines? Can we find airline specific reachability?" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'PASSENGERS': 1179941.0,\n", " 'UNIQUE_CARRIER_NAME': \"{'Delta Air Lines Inc.', 'Virgin America', 'American Airlines Inc.', 'Sun Country Airlines d/b/a MN Airlines', 'JetBlue Airways', 'Vision Airlines', 'United Air Lines Inc.'}\",\n", " 'YEAR': 2015}" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "passenger_graph['JFK']['SFO'][25]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "def str_to_list(a):\n", " return a[1:-1].split(', ')" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'Delta Air Lines Inc.'\n", "'Virgin America'\n", "'American Airlines Inc.'\n", "'Sun Country Airlines d/b/a MN Airlines'\n", "'JetBlue Airways'\n", "'Vision Airlines'\n", "'United Air Lines Inc.'\n" ] } ], "source": [ "for i in str_to_list(passenger_graph['JFK']['SFO'][25]['UNIQUE_CARRIER_NAME']):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 52.9 s, sys: 722 ms, total: 53.6 s\n", "Wall time: 56.3 s\n" ] } ], "source": [ "%%time\n", "for origin, dest in passenger_graph.edges():\n", " for key in passenger_graph[origin][dest]:\n", " passenger_graph[origin][dest][key]['airlines'] = str_to_list(passenger_graph[origin][dest][key]['UNIQUE_CARRIER_NAME'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise\n", "\n", "Play around with United Airlines network.\n", "\n", "- Extract a network for United Airlines flights from the metagraph `passenger_graph` for the year 2015\n", "- Make sure it's a weighted network, where weight is the number of passengers.\n", "- Find the number of airports and connections in this network\n", "- Find the most important airport, according to PageRank and degree centrality." ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "united_network = nx.DiGraph()\n", "for origin, dest in passenger_graph.edges():\n", " if 25 in passenger_graph[origin][dest]:\n", " if \"'United Air Lines Inc.'\" in passenger_graph[origin][dest][25]['airlines']:\n", " united_network.add_edge(origin, dest, weight=passenger_graph[origin][dest][25]['PASSENGERS'])" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "134" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(united_network)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1097" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(united_network.edges())" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ORD', 0.09229686412847604),\n", " ('DEN', 0.06951536832747153),\n", " ('LAX', 0.05547087049076451),\n", " ('SFO', 0.04520212084776551),\n", " ('IAH', 0.04398280474534501),\n", " ('EWR', 0.03754166218607773),\n", " ('ATL', 0.034778751100523315),\n", " ('DFW', 0.03419728511206331),\n", " ('PHX', 0.025365344038763896),\n", " ('MSP', 0.022269133819322266)]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.pagerank(united_network, weight='weight').items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('ORD', 1.1729323308270676),\n", " ('DEN', 0.9172932330827067),\n", " ('IAH', 0.8195488721804511),\n", " ('EWR', 0.744360902255639),\n", " ('SFO', 0.5789473684210527),\n", " ('LAX', 0.5338345864661653),\n", " ('IAD', 0.5112781954887218),\n", " ('CLE', 0.39849624060150374),\n", " ('STL', 0.3609022556390977),\n", " ('PHL', 0.3308270676691729)]" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(nx.degree_centrality(united_network).items(), key=lambda x:x[1], reverse=True)[0:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise\n", "\n", "We are in Cleveland so what should we do?\n", "\n", "Obviously we will make a time series of number of passengers flying out of Cleveland with United Airlines over the years.\n", "\n", "There are 2 ways of doing it.\n", "- Create a new multidigraph specifically for this exercise.\n", "\n", "OR\n", "\n", "- exploit the `pass_air_data` dataframe." ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pass_air_data[(pass_air_data.ORIGIN == 'CLE') &\n", " (pass_air_data.UNIQUE_CARRIER_NAME.str.contains('United Air Lines Inc.'))\n", " ].groupby('YEAR')['PASSENGERS'].sum().plot()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }