Last active
November 10, 2019 03:57
-
-
Save saturnglave/00fb4a29d0c894f44702ef21771d7e1b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#coding:utf-8\n", | |
"import folium\n", | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"flags = pd.DataFrame({\n", | |
" 'number':['1_Kyoto','2_Одеса','3_Dayton','4_Istanbul','5_AbuDhabi','6_KualaLumpur','7_AzisAbeba','8_Loja','9_Amsterdam','10_SleepyHollow','11_Kodiak','12_Alexandria'],\n", | |
" 'latitude':[35.028309,46.469391,39.758949,41.015137,24.466667,3.140853,\n", | |
" 9.005401,-3.989038,52.377956,41.085651,57.790001,31.205753],\n", | |
" 'longtude':[135.753082,30.740883,-84.191605,28.979530,54.366669,101.693207,\n", | |
" 38.763611,-79.203560,4.897070,-73.858467,-152.407227,29.924526]\n", | |
"})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>number</th>\n", | |
" <th>latitude</th>\n", | |
" <th>longtude</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td>0</td>\n", | |
" <td>1_Kyoto</td>\n", | |
" <td>35.028309</td>\n", | |
" <td>135.753082</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>1</td>\n", | |
" <td>2_Одеса</td>\n", | |
" <td>46.469391</td>\n", | |
" <td>30.740883</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>2</td>\n", | |
" <td>3_Dayton</td>\n", | |
" <td>39.758949</td>\n", | |
" <td>-84.191605</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>3</td>\n", | |
" <td>4_Istanbul</td>\n", | |
" <td>41.015137</td>\n", | |
" <td>28.979530</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>4</td>\n", | |
" <td>5_AbuDhabi</td>\n", | |
" <td>24.466667</td>\n", | |
" <td>54.366669</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>5</td>\n", | |
" <td>6_KualaLumpur</td>\n", | |
" <td>3.140853</td>\n", | |
" <td>101.693207</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>6</td>\n", | |
" <td>7_AzisAbeba</td>\n", | |
" <td>9.005401</td>\n", | |
" <td>38.763611</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>7</td>\n", | |
" <td>8_Loja</td>\n", | |
" <td>-3.989038</td>\n", | |
" <td>-79.203560</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>8</td>\n", | |
" <td>9_Amsterdam</td>\n", | |
" <td>52.377956</td>\n", | |
" <td>4.897070</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>9</td>\n", | |
" <td>10_SleepyHollow</td>\n", | |
" <td>41.085651</td>\n", | |
" <td>-73.858467</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>10</td>\n", | |
" <td>11_Kodiak</td>\n", | |
" <td>57.790001</td>\n", | |
" <td>-152.407227</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>11</td>\n", | |
" <td>12_Alexandria</td>\n", | |
" <td>31.205753</td>\n", | |
" <td>29.924526</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" number latitude longtude\n", | |
"0 1_Kyoto 35.028309 135.753082\n", | |
"1 2_Одеса 46.469391 30.740883\n", | |
"2 3_Dayton 39.758949 -84.191605\n", | |
"3 4_Istanbul 41.015137 28.979530\n", | |
"4 5_AbuDhabi 24.466667 54.366669\n", | |
"5 6_KualaLumpur 3.140853 101.693207\n", | |
"6 7_AzisAbeba 9.005401 38.763611\n", | |
"7 8_Loja -3.989038 -79.203560\n", | |
"8 9_Amsterdam 52.377956 4.897070\n", | |
"9 10_SleepyHollow 41.085651 -73.858467\n", | |
"10 11_Kodiak 57.790001 -152.407227\n", | |
"11 12_Alexandria 31.205753 29.924526" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"flags" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"flag_map = folium.Map(location=[35.028309, 135.753082], zoom_start=5)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"for i, r in flags.iterrows():\n", | |
" folium.Marker(location=[r['latitude'], r['longtude']], popup=r['number']).add_to(flag_map)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9iOThmZWNiY2I4MDQ0ZTRkOGM3M2NhODJiNDk5NDVlMCB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTAiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFszNS4wMjgzMDksIDEzNS43NTMwODJdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogNSwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzFkNzkwZDMxYzNjZTRiOTg5NTM1ZWU1YWExNjhlOGVlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9iOThmZWNiY2I4MDQ0ZTRkOGM3M2NhODJiNDk5NDVlMCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl84ZTNiNWZiZTg1NTU0ZDA1OGFhZGYxNzQ1ZTZhNjNhZCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM1LjAyODMwOSwgMTM1Ljc1MzA4Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9iOThmZWNiY2I4MDQ0ZTRkOGM3M2NhODJiNDk5NDVlMCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfY2UxZDRmMGY0YWJiNGE1OGE0NDUwNjhiMzU3YWUzYmQgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2QyNzMyMzcwOGM1OTQ5Y2RiMjQ5MGRhZmYxODE4NzBjID0gJChgPGRpdiBpZD0iaHRtbF9kMjczMjM3MDhjNTk0OWNkYjI0OTBkYWZmMTgxODcwYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MV9LeW90bzwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jZTFkNGYwZjRhYmI0YTU4YTQ0NTA2OGIzNTdhZTNiZC5zZXRDb250ZW50KGh0bWxfZDI3MzIzNzA4YzU5NDljZGIyNDkwZGFmZjE4MTg3MGMpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfOGUzYjVmYmU4NTU1NGQwNThhYWRmMTc0NWU2YTYzYWQuYmluZFBvcHVwKHBvcHVwX2NlMWQ0ZjBmNGFiYjRhNThhNDQ1MDY4YjM1N2FlM2JkKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2FmOGQwYTZkOTY4MDRhYTg4NjIyNTUzNDczYWFhZTMwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDYuNDY5MzkxLCAzMC43NDA4ODNdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzUzYThmNWJlYzkwZjQ1YzhhODYzNDQ1OWU1MDg0MGEzID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9jNDhiY2U3YzA4MWY0ZTUwODQ5ZmIxZjgxZjkyMDBhOCA9ICQoYDxkaXYgaWQ9Imh0bWxfYzQ4YmNlN2MwODFmNGU1MDg0OWZiMWY4MWY5MjAwYTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjJf0J7QtNC10YHQsDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF81M2E4ZjViZWM5MGY0NWM4YTg2MzQ0NTllNTA4NDBhMy5zZXRDb250ZW50KGh0bWxfYzQ4YmNlN2MwODFmNGU1MDg0OWZiMWY4MWY5MjAwYTgpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYWY4ZDBhNmQ5NjgwNGFhODg2MjI1NTM0NzNhYWFlMzAuYmluZFBvcHVwKHBvcHVwXzUzYThmNWJlYzkwZjQ1YzhhODYzNDQ1OWU1MDg0MGEzKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2VhNjI0ZGQzOTVmYzQzZTc4OWQzNTZmY2Y1NmQ2YzhiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzkuNzU4OTQ5LCAtODQuMTkxNjA1XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF81MzlmNWU4NDI2MjM0ODM1ODIzOGE0OWQ1MzJlZTMzNSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfNDc2YzlkNjgzY2FjNDQyOGIxM2IxZDY3OWVhMjdjY2IgPSAkKGA8ZGl2IGlkPSJodG1sXzQ3NmM5ZDY4M2NhYzQ0MjhiMTNiMWQ2NzllYTI3Y2NiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4zX0RheXRvbjwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF81MzlmNWU4NDI2MjM0ODM1ODIzOGE0OWQ1MzJlZTMzNS5zZXRDb250ZW50KGh0bWxfNDc2YzlkNjgzY2FjNDQyOGIxM2IxZDY3OWVhMjdjY2IpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZWE2MjRkZDM5NWZjNDNlNzg5ZDM1NmZjZjU2ZDZjOGIuYmluZFBvcHVwKHBvcHVwXzUzOWY1ZTg0MjYyMzQ4MzU4MjM4YTQ5ZDUzMmVlMzM1KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzRkNzVhMjQ1NzdiYTQwYWViZDU5YWQxOWYxNDMwMjUyID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMDE1MTM3LCAyOC45Nzk1M10sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9iOThmZWNiY2I4MDQ0ZTRkOGM3M2NhODJiNDk5NDVlMCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMWMyMTgwMzQwZTVhNDJhNWFjMDNmNmQ3ZGYxODg5MGIgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzViMWVlYWE5MGM4NTRlYzliYzVmOGMyOWVjMWMxNGJkID0gJChgPGRpdiBpZD0iaHRtbF81YjFlZWFhOTBjODU0ZWM5YmM1ZjhjMjllYzFjMTRiZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+NF9Jc3RhbmJ1bDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8xYzIxODAzNDBlNWE0MmE1YWMwM2Y2ZDdkZjE4ODkwYi5zZXRDb250ZW50KGh0bWxfNWIxZWVhYTkwYzg1NGVjOWJjNWY4YzI5ZWMxYzE0YmQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNGQ3NWEyNDU3N2JhNDBhZWJkNTlhZDE5ZjE0MzAyNTIuYmluZFBvcHVwKHBvcHVwXzFjMjE4MDM0MGU1YTQyYTVhYzAzZjZkN2RmMTg4OTBiKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzljMjkxYzNkNjEzNTQ2NThiNTAwODg5YjAzNjhmN2RkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMjQuNDY2NjY3LCA1NC4zNjY2NjldLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2IyOGUyNjhkNGUzNDQwNGViMzQ3MzJlZGZlMWE5OGM4ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF85NThmODc0NGQ3ZjY0N2Q1ODJjMGFjYzgyNzg5YmJlZCA9ICQoYDxkaXYgaWQ9Imh0bWxfOTU4Zjg3NDRkN2Y2NDdkNTgyYzBhY2M4Mjc4OWJiZWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjVfQWJ1RGhhYmk8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYjI4ZTI2OGQ0ZTM0NDA0ZWIzNDczMmVkZmUxYTk4Yzguc2V0Q29udGVudChodG1sXzk1OGY4NzQ0ZDdmNjQ3ZDU4MmMwYWNjODI3ODliYmVkKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzljMjkxYzNkNjEzNTQ2NThiNTAwODg5YjAzNjhmN2RkLmJpbmRQb3B1cChwb3B1cF9iMjhlMjY4ZDRlMzQ0MDRlYjM0NzMyZWRmZTFhOThjOCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8zOGQzN2Y4MDk1Mzg0NTVjYjhlYWE3NjU4NmIzMjMxNCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzMuMTQwODUzLCAxMDEuNjkzMjA3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF85YmY5MDQ1MTcyY2E0YzI1YWU4NjA4M2M2NWYzYTI1OSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfOWUzNDgyNzVlMjEwNDg4YWIyMTViNTQ0ZDQxYTk0OTcgPSAkKGA8ZGl2IGlkPSJodG1sXzllMzQ4Mjc1ZTIxMDQ4OGFiMjE1YjU0NGQ0MWE5NDk3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij42X0t1YWxhTHVtcHVyPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzliZjkwNDUxNzJjYTRjMjVhZTg2MDgzYzY1ZjNhMjU5LnNldENvbnRlbnQoaHRtbF85ZTM0ODI3NWUyMTA0ODhhYjIxNWI1NDRkNDFhOTQ5Nyk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8zOGQzN2Y4MDk1Mzg0NTVjYjhlYWE3NjU4NmIzMjMxNC5iaW5kUG9wdXAocG9wdXBfOWJmOTA0NTE3MmNhNGMyNWFlODYwODNjNjVmM2EyNTkpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYjM3YzIyNmFmMTM4NDg3YTk0NGZhNDkxZGMyYjE1MGEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs5LjAwNTQwMSwgMzguNzYzNjExXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF83N2M2ZTI0MTVhMTU0MzkwYThmMmQwMDgxYzgxNDZkOSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfNDY0MzkwOWU4NTRkNDlhYjg3ODJhMDBiNzE2YmY3YTIgPSAkKGA8ZGl2IGlkPSJodG1sXzQ2NDM5MDllODU0ZDQ5YWI4NzgyYTAwYjcxNmJmN2EyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij43X0F6aXNBYmViYTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF83N2M2ZTI0MTVhMTU0MzkwYThmMmQwMDgxYzgxNDZkOS5zZXRDb250ZW50KGh0bWxfNDY0MzkwOWU4NTRkNDlhYjg3ODJhMDBiNzE2YmY3YTIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYjM3YzIyNmFmMTM4NDg3YTk0NGZhNDkxZGMyYjE1MGEuYmluZFBvcHVwKHBvcHVwXzc3YzZlMjQxNWExNTQzOTBhOGYyZDAwODFjODE0NmQ5KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzZlMzFmYjJmMGVkMjQ4NDc4MGY5YzM5ZjM4ZjA0ZGE1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbLTMuOTg5MDM4LCAtNzkuMjAzNTZdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2VkOWIzY2IzZjNmYjRiYjU5OGE4N2ExMjkyZGU5OWJlID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hNWZlM2RkNTMzODE0ZjlmODVhOGMwODRkNTE2ZmJmZCA9ICQoYDxkaXYgaWQ9Imh0bWxfYTVmZTNkZDUzMzgxNGY5Zjg1YThjMDg0ZDUxNmZiZmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjhfTG9qYTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9lZDliM2NiM2YzZmI0YmI1OThhODdhMTI5MmRlOTliZS5zZXRDb250ZW50KGh0bWxfYTVmZTNkZDUzMzgxNGY5Zjg1YThjMDg0ZDUxNmZiZmQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNmUzMWZiMmYwZWQyNDg0NzgwZjljMzlmMzhmMDRkYTUuYmluZFBvcHVwKHBvcHVwX2VkOWIzY2IzZjNmYjRiYjU5OGE4N2ExMjkyZGU5OWJlKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzRhNDNiMjFlMTM0MTQ4YjNiOThkYTUyODlhYjMzYzAxID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTIuMzc3OTU2LCA0Ljg5NzA3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9mZTQ3NmJhN2YxYWE0ZTFjYmMwNzI3YmI3MzU2NGY4NyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMTlmNTRhN2M4NzRlNDViOTg3Y2VhYzkxOGE5MmE3ODYgPSAkKGA8ZGl2IGlkPSJodG1sXzE5ZjU0YTdjODc0ZTQ1Yjk4N2NlYWM5MThhOTJhNzg2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij45X0Ftc3RlcmRhbTwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9mZTQ3NmJhN2YxYWE0ZTFjYmMwNzI3YmI3MzU2NGY4Ny5zZXRDb250ZW50KGh0bWxfMTlmNTRhN2M4NzRlNDViOTg3Y2VhYzkxOGE5MmE3ODYpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNGE0M2IyMWUxMzQxNDhiM2I5OGRhNTI4OWFiMzNjMDEuYmluZFBvcHVwKHBvcHVwX2ZlNDc2YmE3ZjFhYTRlMWNiYzA3MjdiYjczNTY0Zjg3KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzUxZTUwNDBjMGUxNzRmZjA4MmRjOGU1ZDczMjQ1N2JiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMDg1NjUxLCAtNzMuODU4NDY3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I5OGZlY2JjYjgwNDRlNGQ4YzczY2E4MmI0OTk0NWUwKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8yMDljODViOWNlNmY0ZThjYTQ4ZmJmZmYyNDUyMWQ2YyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYTRlMWFiYTZiNGRjNDQ4YTgzZTVmM2FmODRlYzgyODcgPSAkKGA8ZGl2IGlkPSJodG1sX2E0ZTFhYmE2YjRkYzQ0OGE4M2U1ZjNhZjg0ZWM4Mjg3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xMF9TbGVlcHlIb2xsb3c8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMjA5Yzg1YjljZTZmNGU4Y2E0OGZiZmZmMjQ1MjFkNmMuc2V0Q29udGVudChodG1sX2E0ZTFhYmE2YjRkYzQ0OGE4M2U1ZjNhZjg0ZWM4Mjg3KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzUxZTUwNDBjMGUxNzRmZjA4MmRjOGU1ZDczMjQ1N2JiLmJpbmRQb3B1cChwb3B1cF8yMDljODViOWNlNmY0ZThjYTQ4ZmJmZmYyNDUyMWQ2YykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl84YWU5YzZkZmJlMzk0ZmZjODYxMDNkZTk1YWMzZGE1MiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU3Ljc5MDAwMSwgLTE1Mi40MDcyMjddLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzc0NjAwYjMwNTU0NTRjMDY4MWE2N2JiNTkzZWFiZjVkID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xMTA5ODY0YzIzNzU0YTVlOGUwOWRjOGNjYjVkM2IyNyA9ICQoYDxkaXYgaWQ9Imh0bWxfMTEwOTg2NGMyMzc1NGE1ZThlMDlkYzhjY2I1ZDNiMjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjExX0tvZGlhazwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF83NDYwMGIzMDU1NDU0YzA2ODFhNjdiYjU5M2VhYmY1ZC5zZXRDb250ZW50KGh0bWxfMTEwOTg2NGMyMzc1NGE1ZThlMDlkYzhjY2I1ZDNiMjcpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfOGFlOWM2ZGZiZTM5NGZmYzg2MTAzZGU5NWFjM2RhNTIuYmluZFBvcHVwKHBvcHVwXzc0NjAwYjMwNTU0NTRjMDY4MWE2N2JiNTkzZWFiZjVkKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzViYmU5MjFmNjhlZTQ1ZjRhOTgyNGE3ZTM3MWI4ZGRiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzEuMjA1NzUzLCAyOS45MjQ1MjZdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjk4ZmVjYmNiODA0NGU0ZDhjNzNjYTgyYjQ5OTQ1ZTApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzAxYWIxZmQ4ODliNzQzODg5NGYxMjAwNDFiNzhhODFlID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF83MGFiN2YzM2FjYjA0MzdlOTRlZDdlNWY4NmI4YTMxYyA9ICQoYDxkaXYgaWQ9Imh0bWxfNzBhYjdmMzNhY2IwNDM3ZTk0ZWQ3ZTVmODZiOGEzMWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjEyX0FsZXhhbmRyaWE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMDFhYjFmZDg4OWI3NDM4ODk0ZjEyMDA0MWI3OGE4MWUuc2V0Q29udGVudChodG1sXzcwYWI3ZjMzYWNiMDQzN2U5NGVkN2U1Zjg2YjhhMzFjKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzViYmU5MjFmNjhlZTQ1ZjRhOTgyNGE3ZTM3MWI4ZGRiLmJpbmRQb3B1cChwb3B1cF8wMWFiMWZkODg5Yjc0Mzg4OTRmMTIwMDQxYjc4YTgxZSkKICAgICAgICA7CgogICAgICAgIAogICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>" | |
], | |
"text/plain": [ | |
"<folium.folium.Map at 0x7fbff60636a0>" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"flag_map" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#flag: picoCTF{KODIAK_ALASKA}" | |
] | |
} | |
], | |
"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.7.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment