cleaned up bar maps

This commit is contained in:
H.T. Kruitbosch committed 2018-10-03 16:11:31 +02:00
1 parent ce3c1e9ed1
commit 7da2bfc400
25 files changed
+78972 -8

No files matched your search

+7
View File
@@ -74,3 +74,10 @@ This is a simple example for the created gabmap files.
* [geojson](data/Gabmap_example.geojson)
* [percentages](data/Pronunciation_percentages_example.gabmap.tsv)
* [pronunciation](data/Pronunciations_example.gabmap.tsv)
### Bar Maps per word for Pronounciation Occurence in Frysian Municipalities
For each word, a map illustrates the pronunciation occurrence as measured by the prediction quiz, per Frysian
municipality.
[notebook](notebooks/Bar%20Maps%20per%20word%20for%20Pronounciation%20Occurence%20in%20Frysian%20Municipalities.ipynb)
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+20
View File
@@ -0,0 +1,20 @@
<html><head></head><body> <a href="armen (lichaamsdeel).html">armen (lichaamsdeel)<a><br/>
<a href="avond.html">avond<a><br/>
<a href="bij (insect).html">bij (insect)<a><br/>
<a href="blad (aan een boom).html">blad (aan een boom)<a><br/>
<a href="borst (lichaamsdeel).html">borst (lichaamsdeel)<a><br/>
<a href="dag.html">dag<a><br/>
<a href="deurtje.html">deurtje<a><br/>
<a href="geel.html">geel<a><br/>
<a href="gegaan.html">gegaan<a><br/>
<a href="gezet.html">gezet<a><br/>
<a href="heel.html">heel<a><br/>
<a href="index.html">index<a><br/>
<a href="kaas.html">kaas<a><br/>
<a href="koken.html">koken<a><br/>
<a href="oog.html">oog<a><br/>
<a href="sprak (toe).html">sprak (toe)<a><br/>
<a href="tand.html">tand<a><br/>
<a href="trein.html">trein<a><br/>
<a href="vis.html">vis<a><br/>
<a href="zaterdag.html">zaterdag<a></body></html>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,409 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bar Maps per word for Pronounciation Occurence in Frysian Municipalities\n",
"\n",
"Each map displays the pronounciation occurence in Frysian municipalities for one word. Each municiplaity region is filled with one bar per pronunciation. The area of a bar is proportional to the represented pronunciation."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"sys.path.append('../')\n",
"\n",
"import pandas\n",
"import MySQLdb\n",
"import numpy\n",
"import json\n",
"\n",
"db = MySQLdb.connect(user='root', passwd='Nmmxhjgt1@', db='stimmen', charset='utf8')\n",
"\n",
"%matplotlib notebook\n",
"import folium\n",
"from stimmen.geojson import inject_geojson_regions_into_dataframe\n",
"from stimmen.folium import pronunciation_bars\n",
"from stimmen.latitude_longitude import reverse_latitude_longitude\n",
"from IPython.display import display"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"with open('../data/Friesland_gemeentes.geojson') as f:\n",
" regions = json.load(f)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Answers to how participants state a word should be pronounces.\n",
"\n",
"answers = pandas.read_sql('''\n",
"SELECT prediction_quiz_id, user_lat, user_lng, question_text, answer_text\n",
"FROM core_surveyresult as survey\n",
"INNER JOIN core_predictionquizresult as result ON survey.id = result.survey_result_id\n",
"INNER JOIN core_predictionquizresultquestionanswer as answer\n",
" ON result.id = answer.prediction_quiz_id\n",
"''', db)\n",
"\n",
"answers = inject_geojson_regions_into_dataframe(\n",
" regions, answers,\n",
" latitude_column='user_lat', longitude_column='user_lng',\n",
" region_name_property='gemeente_naam',\n",
" region_name_column='region'\n",
")\n",
"\n",
"zero_latlng_questions = {\n",
" q\n",
" for q, row in answers.groupby('question_text').agg('std').iterrows()\n",
" if row['user_lat'] == 0 and row['user_lng'] == 0\n",
"}\n",
"answers = answers[answers['question_text'].map(lambda x: x not in zero_latlng_questions)]\n",
"\n",
"answers['question_text'] = answers['question_text'].map(lambda x: x.replace('\"', '').replace('*', ''))\n",
"\n",
"answers['answer_text'] = answers['answer_text'].map(lambda x: x[x.find('('):x.find(')')][1:])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7722c5b30a4d4ee38bb4fb3077715b6f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(HBox(children=(FloatProgress(value=0.0, max=1.0), HTML(value='<b>0</b>s passed', placeholder='0…"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"../stimmen/folium.py:139: RuntimeWarning: invalid value encountered in true_divide\n",
" group_percentages = np.array(group_occurrences) / len(region_rows)\n",
"../stimmen/folium.py:140: RuntimeWarning: invalid value encountered in true_divide\n",
" group_boundaries = np.cumsum((0,) + group_occurrences) / len(region_rows)\n"
]
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNTdhNjIyZDM0MDRjNGVjY2IxMmVmY2FhN2NkM2U2MzkgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzU3YTYyMmQzNDA0YzRlY2NiMTJlZmNhYTdjZDNlNjM5IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF81N2E2MjJkMzQwNGM0ZWNjYjEyZWZjYWE3Y2QzZTYzOSA9IEwubWFwKAogICAgICAgICdtYXBfNTdhNjIyZDM0MDRjNGVjY2IxMmVmY2FhN2NkM2U2MzknLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzRiYjM2ZmJjMDI3ODQwZWRhZTQ3YzZkNTJmODY5OTQ0ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzU3YTYyMmQzNDA0YzRlY2NiMTJlZmNhYTdjZDNlNjM5KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9hYzNjNDhmM2M0MWE0ODBkYjQ0YjNkMTMwM2RiYzVkYiA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNTdhNjIyZDM0MDRjNGVjY2IxMmVmY2FhN2NkM2U2MzkpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9jZWE1ODllY2ViZGU0MWQyOGYyMDYxZTgyMWEzY2Y1MSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE0OTE1MjYxNzU4Nzk3LCA2LjEzMDIxNjIxMzg1NTc0M10sIFs1My4xNDQ5OTM0MDg5ODAyMzQsIDYuMTIxNjMyOTE3MTc4NTg1XSwgWzUzLjE0NTc0MDU0ODAxMzE5NCwgNi4xMTg3OTE1NjcyODc5NDJdLCBbNTMuMTQ5NDE5OTY5NjkxNTUsIDYuMTE5MzM4NTU1OTU2NTg2NV0sIFs1My4xNTAxOTYxNDEzNTkwNywgNi4xMTI1MzczODg0NjAxNzFdLCBbNTMuMTUyMTk4MzI5Nzg2NDIsIDYuMTA5MDI1MjQzMTQyMjU2XSwgWzUzLjE1MTc5OTQwODA0OTcyLCA2LjEwNTAxMzA0NjQ0NDAxXSwgWzUzLjE3NTk3NzY1NTQ2NjE4NCwgNi4xMTQ1OTM0ODk4NDQ5NDddLCBbNTMuMTc2MzMxNzQyMzc3MDksIDYuMTA4OTQ2ODE3ODMzMjgxXSwgWzUzLjE3OTM0MDcyOTYxNDA1NCwgNi4xMDQ2MTgzNTgyNjg5NjldLCBbNTMuMTg1NzY0MTEyOTA5NjUsIDYuMDk5NzcyMTE2MjgzMzg1XSwgWzUzLjE5NTc2NTkwMzU1OTQzLCA2LjA4NDA1Mjg5MTM0MTMzOF0sIFs1My4yMDY3MTYwMjM0MzQ5MiwgNi4wNzg1NTgyODc1MTg1MTldLCBbNTMuMjA4NDYzMjUzOTM3MiwgNi4wODQxMDk5ODMxMjg1OThdLCBbNTMuMjEwNjc3NzQyNTMwNjM1LCA2LjA3ODcyMzk2MDQ0OTA4MV0sIFs1My4yMTExNzE0Nzk0NDUxMiwgNi4wODE5MDQ2Njk4MTE1ODRdLCBbNTMuMjEzMTU1MzUwMTE5NDYsIDYuMDgwMTM3Njc4MjM2MDQxXSwgWzUzLjIxNDA4NTc3OTQxNzMyLCA2LjA4MTY5OTc0MTY4MjI4M10sIFs1My4yMTUwMjU5OTQyMjE5MywgNi4wODYyODkwNTA0MDY1MThdLCBbNTMuMjMwMTMyNTUyMzQ5NSwgNi4wMjcyNDQyNDE0MDExMDddLCBbNTMuMjQwOTI0MTAzNzA4NywgNi4wMTk3ODkwMzkxODA2MDhdLCBbNTMuMjQyNzkxNDI4Mjk5OTgsIDYuMDIzMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccd1d7b38>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNjIzN2Y2ZjYxOGJiNGFlYzg1NTJjNGZkYTM3NGVjMTkgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzYyMzdmNmY2MThiYjRhZWM4NTUyYzRmZGEzNzRlYzE5IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF82MjM3ZjZmNjE4YmI0YWVjODU1MmM0ZmRhMzc0ZWMxOSA9IEwubWFwKAogICAgICAgICdtYXBfNjIzN2Y2ZjYxOGJiNGFlYzg1NTJjNGZkYTM3NGVjMTknLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2Q4MjJmNWYyYWRlMDQ2ODc5ZDVmY2ZkYTJjNzQ1NDI3ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzYyMzdmNmY2MThiYjRhZWM4NTUyYzRmZGEzNzRlYzE5KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8zY2I3YWQ0NGU0NmI0NmFhYjUxM2UwYmU0NDk1MTNjNiA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjIzN2Y2ZjYxOGJiNGFlYzg1NTJjNGZkYTM3NGVjMTkpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9mYmE1OTk1YTkzNmU0NjhmYTg4Njk0MDFhYmVkMTBlMiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2OTc1OTUwODc3NTM2NSwgNi4xOTQ2NzExMzI2MTE3MzVdLCBbNTMuMjY3MTg2NzMwMzkwNjUsIDYuMjA3NTEzMDg4OTkyOTE3XSwgWzUzLjIwMDA2NzM4NzY5ODIwNSwgNi4yMDc1MTMwODg5OTI5MTddLCBbNTMuMTk4NjY5NjQxNTMzODU0LCA2LjE5OTIzMDc5NzIwOTQ1OF0sIFs1My4xOTM1ODM4Njg0ODI4NSwgNi4xOTg5NzQyMzUzOTU4MDldLCBbNTMuMTg5Mzk0Mjk4MTc4MTYsIDYuMTkyNDc1MzM1MTUyMzkyXSwgWzUzLjE4MjAzNjkwMDQ5MDA3NSwgNi4xODc5MDk3NDI2MDM5NjJdLCBbNTMuMjYyNzgxNDg2MjY1NTI0LCA2LjE4NzkwOTc0MjYwMzk2Ml0sIFs1My4yNjMzNzc2NzU5NDY1OCwgNi4xOTAzODQ0NzExODQ4NDhdLCBbNTMuMjY1NjczMDgxOTkzMSwgNi4xODc5MDk3NDI2MDM5NjJdLCBbNTMuMjY5MTM5MzA1OTQxMTQsIDYuMTg3OTA5NzQyNjAzOTYyXSwgWzUzLjI2OTg5MDI0Mzg3MzYzLCA2LjE4OTIyMDAwNjkyNzA0NF0sIFs1My4yNjg1ODM3MDI3ODUxNiwgNi4xOTA3MjAxMzMzNDkzNjRdLCBbNTMuMjY5NzU5NTA4Nzc1MzY1LCA2LjE5NDY3MTEzMjYxMTczNV1dXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogbnVsbCwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiI2Q3MDAwMCIsCiAgImZpbGxPcGFjaXR5IjogMC44LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInNtb290aEZhY3RvciI6IDEuMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccd0cce48>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfOTU5Mzc5MTA1ZjExNGYyMWFkODFiYTVkY2I1MzU5NGUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzk1OTM3OTEwNWYxMTRmMjFhZDgxYmE1ZGNiNTM1OTRlIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF85NTkzNzkxMDVmMTE0ZjIxYWQ4MWJhNWRjYjUzNTk0ZSA9IEwubWFwKAogICAgICAgICdtYXBfOTU5Mzc5MTA1ZjExNGYyMWFkODFiYTVkY2I1MzU5NGUnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2Q2ZjZiZjM0ZGE5NzQ4YmViNDRlOGM1ZDZlOGRjNzhjID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzk1OTM3OTEwNWYxMTRmMjFhZDgxYmE1ZGNiNTM1OTRlKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9kYjNjODgyNmVkYTQ0YzJkYmRlOGM2MWU5Njg2ZGE4NCA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfOTU5Mzc5MTA1ZjExNGYyMWFkODFiYTVkY2I1MzU5NGUpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9jN2FhMWEwYWNjNmU0NDZhOWUwNTUwZTFlNjllZjc3MiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbW1s1My4xODM1OTM5Mzc4NDE3MzUsIDYuMTg4ODc1OTUzNTQzMTc2XSwgWzUzLjE3MDgyOTYzMjA2OTcyNiwgNi4xODA5NTUxMzQwMTAzNDddLCBbNTMuMTY4MTUwMzgwMDUzNDA1LCA2LjE3NzMzMDI2NzI2NTY3XSwgWzUzLjE1OTMyNTk1MjM4MjM3NSwgNi4xNzYyMzcwMTY5Mjk4NDZdLCBbNTMuMTU0MzMwMDg3NDUzNCwgNi4xNjE5NzIzNDY3MjQ1OTldLCBbNTMuMjYyNzYzMTU5NzExMzA1LCA2LjE2MTk3MjM0NjcyNDU5OV0sIFs1My4yNjM5NTc2Njc1OTc2MTYsIDYuMTY0MTk1ODI3MDE3NDY1XSwgWzUzLjI1OTA1NDMxMjY5OTc5NiwgNi4xNzk0OTA5NzY1ODM2ODldLCBbNTMuMjU5NjU0NTY3NzczODgsIDYuMTgxMTg0MTAyMzkyMjMyXSwgWzUzLjI2MTA0OTY1NDIyNTM5LCA2LjE4MDcyMTA2Njk0NzE5OF0sIFs1My4yNjMwMTQyNTcyNDMzNywgNi4xODg4NzU5NTM1NDMxNzZdLCBbNTMuMTgzNTkzOTM3ODQxNzM1LCA2LjE4ODg3NTk1MzU0MzE3Nl1dXSwgW1tbNTMuMjY0Nzc2ODg0MTQzNjgsIDYuMTg4ODc1OTUzNTQzMTc2XSwgWzUzLjI2NzgxNTUxMzA2ODQ0LCA2LjE4NTU5OTkzOTc1OTgxMl0sIFs1My4yNjk2OTMwNjAxOTY4OCwgNi4xODg4NzU5NTM1NDMxNzZdLCBbNTMuMjY0Nzc2ODg0MTQzNjgsIDYuMTg4ODc1OTUzNTQzMTc2XV1dXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogbnVsbCwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiI2Q3MDAwMCIsCiAgImZpbGxPcGFjaXR5IjogMC44LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJybLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc1ceac8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfODMxZjhlNjdhZmNiNDQ0NmI4MzE0YWE5YTVlZmU5OTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzgzMWY4ZTY3YWZjYjQ0NDZiODMxNGFhOWE1ZWZlOTk0IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF84MzFmOGU2N2FmY2I0NDQ2YjgzMTRhYTlhNWVmZTk5NCA9IEwubWFwKAogICAgICAgICdtYXBfODMxZjhlNjdhZmNiNDQ0NmI4MzE0YWE5YTVlZmU5OTQnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzYwZTQwMDIxZjFkZjRhNzA4NWU5NTM3YWE4MmNmN2JiID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzgzMWY4ZTY3YWZjYjQ0NDZiODMxNGFhOWE1ZWZlOTk0KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8xOGUyY2ZmN2NhZjE0N2Q3YmU2ZGFiOTQ0MTRmZDAwNSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfODMxZjhlNjdhZmNiNDQ0NmI4MzE0YWE5YTVlZmU5OTQpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9jMWZjYzMyYmYyYjI0MDMwYjkwMTNhNDI0ZjhhYjcyNyA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbW1s1My4yNTkzNDk4NzkzNjMwNiwgNi4yMTk5NDUwMDMwNzc0NzldLCBbNTMuMjU3MjQwMTM4NTQ0NjMsIDYuMjIzOTcxMzgwMDEwMTU2XSwgWzUzLjI1Njk0OTQzMTA5MjMyLCA2LjIzMTY2NTc5MTQzMzk0OV0sIFs1My4yNTUwNDUyOTExMDc3MiwgNi4yMzE1MTMzNjIzMjEwNjldLCBbNTMuMjUzNDgxOTQ4NzQ5MjksIDYuMjM0NTAyNTgxMjI4MzEzNV0sIFs1My4yNTEyMjM3MTA2MjUyOSwgNi4yMzM0Mzk1ODE1NzUwNDFdLCBbNTMuMjUwMDQ4MDMzNDgxMjQsIDYuMjI5MDMzMDU5MTMzMzEzXSwgWzUzLjI0Njk1OTA2NDUzNDM0NCwgNi4yMzEzNDQ1NDg1NDU0OTldLCBbNTMuMjQ1NDgwNzc1MjYyNDksIDYuMjMwNzU5OTUxODQwNzkyXSwgWzUzLjI0NTA3MzAxNzI2MDE2LCA2LjIyNDk4MDc4OTUyNTY2MV0sIFs1My4yNDMwODUxODk5NjgzMywgNi4yMTk5NDUwMDMwNzc0NzldLCBbNTMuMjU5MzQ5ODc5MzYzMDYsIDYuMjE5OTQ1MDAzMDc3NDc5XV1dLCBbW1s1My4yNDA5ODY5MjkyMDczMiwgNi4yMTk5NDUwMDMwNzc0NzldLCBbNTMuMjM4OTIxNzI2MzQ3NTg0LCA2LjIyNDM0MTIyOTI4MjM0XSwgWzUzLjIzODIwMTg2MjIyNjQ1NCwgNi4yMTk5NDUwMDMwNzc0NzldLCBbNTMuMjQwOTg2OTI5MjA3MzIsIDYuMjE5OTQ1MDAzMDc3NDc5XV1dLCBbW1s1My4yMzA2OTQ3MDgxNDcwNTUsIDYuMjE5OTQ1MDAzMDc3NDc5XSwgWzUzLjIyOTY0Mjg0Nzk0NzUsIDYuMjI0MzU0NjE5OTQwNzE3XSwgWzUzLjIyNTE2MDY3NDYxMjQ0LCA2LjIyNDkzNTYxODg4NzIwM10sIFs1My4yMjIxOTYxMjExMjY4OSwgNi4yMjk3MjE0Nzk4MjIyNzc1XSwgWzUzLjIxNzc4MDU3MTk0NTYxLCA2LjIyOTM0NjY0MDQ3OTQ5Ml0sIFs1My4yMTQ5MDQwMTg3MLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2cccecd9b0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZjVjN2VkMWZkMmMxNDc3NGFhZWRkM2ZjNTk4MGFlOGIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2Y1YzdlZDFmZDJjMTQ3NzRhYWVkZDNmYzU5ODBhZThiIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9mNWM3ZWQxZmQyYzE0Nzc0YWFlZGQzZmM1OTgwYWU4YiA9IEwubWFwKAogICAgICAgICdtYXBfZjVjN2VkMWZkMmMxNDc3NGFhZWRkM2ZjNTk4MGFlOGInLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzJhMjcyYTRjYzE5NTQ5MDRhNWQ1ZTk1Mzk5ZDNjNmFhID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2Y1YzdlZDFmZDJjMTQ3NzRhYWVkZDNmYzU5ODBhZThiKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8zZGNlZTU0MzJhMjM0MzIzOGE3ZTk3NzUyYjdlYWM2ZCA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZjVjN2VkMWZkMmMxNDc3NGFhZWRkM2ZjNTk4MGFlOGIpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl83NWZkMmYyMTRiYjU0OGM1YmEwNDhjYWJjMzRmYTQyZiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2ODYyMzQ2Njc3ODIsIDYuMjAwMzQxNjU2Njg4NTI0XSwgWzUzLjI2NTY1OTY2MDI3ODEzLCA2LjIxNTEzNTQxOTczNTYxMV0sIFs1My4yMzY5OTU1MjgwMTU0OSwgNi4yMTUxMzU0MTk3MzU2MTFdLCBbNTMuMjM0MjMzNDY1MDI4MywgNi4yMTM3NjI2MjAwMTMzNjRdLCBbNTMuMjMzMjIzNzkwMTg1MzMsIDYuMjE1MTM1NDE5NzM1NjExXSwgWzUzLjIwNDA5NDU5NzU3NDEsIDYuMjE1MTM1NDE5NzM1NjExXSwgWzUzLjIwMDM2NDk2OTU1NCwgNi4yMDkyNzYzOTg5NzE1MTJdLCBbNTMuMTk4ODU3MTEzNzQ3NjYsIDYuMjAwMzQxNjU2Njg4NTI0XSwgWzUzLjI2ODYyMzQ2Njc3ODIsIDYuMjAwMzQxNjU2Njg4NTI0XV1dLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiBudWxsLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjZDcwMDAwIiwKICAiZmlsbE9wYWNpdHkiOiAwLjgsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEuMCwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwXzNkY2VlNTQzMmEyMzQzMjM4YTdlOTc3NTJiN2VhYzZkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MzZWFkYWFlYmY5ZjRlMDhhYmJiM2JhOTFjNjBmNzhlID0gTC5wb3B1cCh7bLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2d141687f0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYWM0ZmM2MjFjZTA5NDE4ZGIzNmVkODFjOGVjYWMzYjMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2FjNGZjNjIxY2UwOTQxOGRiMzZlZDgxYzhlY2FjM2IzIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9hYzRmYzYyMWNlMDk0MThkYjM2ZWQ4MWM4ZWNhYzNiMyA9IEwubWFwKAogICAgICAgICdtYXBfYWM0ZmM2MjFjZTA5NDE4ZGIzNmVkODFjOGVjYWMzYjMnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzI0NTc1YmMwYjYyNjRkY2ZhM2U4ZmYzYjlmYmE5YWM3ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2FjNGZjNjIxY2UwOTQxOGRiMzZlZDgxYzhlY2FjM2IzKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9mNTU4ZTJkMjc2MzI0ZDdmODhkZGE4MDhiMWI1NjBmZSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfYWM0ZmM2MjFjZTA5NDE4ZGIzNmVkODFjOGVjYWMzYjMpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl85NTkzZGFmOTMwZmM0MzA2YmUyMjViN2RhZjJmNjgxOSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2NzMxMTQ3Njk2MzIyLCA2LjIwNjg5MDQxOTcyMDk3OF0sIFs1My4yNjUyNjcyMTY2ODA1NCwgNi4yMTcwOTQyOTE3NDQyNjhdLCBbNTMuMjU5ODcyNjAyMjgzMzIsIDYuMjE4OTQ3NDAyMDk3MzI1XSwgWzUzLjI1NzYzOTc5NDM1MTQ0LCA2LjIyMzIwODY0ODkxNjYwNDVdLCBbNTMuMjQ0MzczNDgyMTQyMDgsIDYuMjIzMjA4NjQ4OTE2NjA0NV0sIFs1My4yNDIxMjcxMDkyNTk0MzUsIDYuMjE3NTE3ODg1ODU3NjEzXSwgWzUzLjIzOTQ1Mzc3NTQ1MDg4LCA2LjIyMzIwODY0ODkxNjYwNDVdLCBbNTMuMjM4NzM2MjcwOTI5MzIsIDYuMjIzMjA4NjQ4OTE2NjA0NV0sIFs1My4yMzc0NTE0MTQ4ODk2MiwgNi4yMTUzNjIwMDQ0OTM4NDVdLCBbNTMuMjM0MjMzNDY1MDI4MywgNi4yMTM3NjI2MjAwMTMzNjRdLCBbNTMuMjMxMTc4Njk2OTU0NTg2LCA2LjIxNzkxNjAyMTI3MTUyMV0sIFs1My4yMjk5MTYyMDUzMjY5NSwgNi4yMjMyMDg2NDg5MTY2MDQ1XSwgWzUzLjIxMTAwMzQyNTg4OTc2NCwgNi4yMjMyMDg2NDg5MTY2MDQ1XSwgWzUzLjIwNjQ3NjU1MTc5MzIxLCA2LjIxODg3NzMyNjIwODIzOF0sIFs1My4yMDAzNjQ5Njk1NTQsIDYuMjA5Mjc2Mzk4OTcxNTEyXSwgWzUzLjE5OTk2MjMwNDAzMTg0LCA2LjIwNjg5MDQxOTcyMDk3OF0sIFs1My4yNjczMTE0NzY5NjMyMiwgNi4yMDY4OTA0MTk3MjA5NzhdXV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6IG51bGwsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiNkNzAwMDAiLAogICJmaWxsT3BhY2l0eSI6IDAuOCwKICAiZmlsbLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2cccbd45f8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYzY0MDIzMWNiNGI5NDY3ZGIyMmI5NGFlZjE1OWEzNWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2M2NDAyMzFjYjRiOTQ2N2RiMjJiOTRhZWYxNTlhMzViIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9jNjQwMjMxY2I0Yjk0NjdkYjIyYjk0YWVmMTU5YTM1YiA9IEwubWFwKAogICAgICAgICdtYXBfYzY0MDIzMWNiNGI5NDY3ZGIyMmI5NGFlZjE1OWEzNWInLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2U4NGJlYmNiNGRhYzQxNDZhMjNhNzljY2JiMjYxNzJlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2M2NDAyMzFjYjRiOTQ2N2RiMjJiOTRhZWYxNTlhMzViKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8zMmI4MjRmMjk3ZjQ0ODRlOTc1NGQ1Y2E0ODU3Y2JlZSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfYzY0MDIzMWNiNGI5NDY3ZGIyMmI5NGFlZjE1OWEzNWIpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8xNjFhYjk2YzgyZmQ0NGUwYTBjMWY5YTBjNjcwNTRjMSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2NjA2NDAxMTIzNzUsIDYuMjEzMTE3MTEyNDQwMzYyXSwgWzUzLjI2NTM3MTQ1MjY3OTQzLCA2LjIxNjU3NDAwMDQ2NzMzXSwgWzUzLjIzNzY0OTg3NDI4OTkzNiwgNi4yMTY1NzQwMDA0NjczM10sIFs1My4yMzc0NTE0MTQ4ODk2MiwgNi4yMTUzNjIwMDQ0OTM4NDVdLCBbNTMuMjM0MjMzNDY1MDI4MywgNi4yMTM3NjI2MjAwMTMzNjRdLCBbNTMuMjMyMTY1NzM0MzM3MjIsIDYuMjE2NTc0MDAwNDY3MzNdLCBbNTMuMjA1MDEwMzQyOTIxNjk2LCA2LjIxNjU3NDAwMDQ2NzMzXSwgWzUzLjIwMjgwOTgyMDUxOTI2LCA2LjIxMzExNzExMjQ0MDM2Ml0sIFs1My4yNjYwNjQwMTEyMzc1LCA2LjIxMzExNzExMjQ0MDM2Ml1dXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogbnVsbCwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiI2Q3MDAwMCIsCiAgImZpbGxPcGFjaXR5IjogMC44LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF8zMmI4MjRmMjk3ZjQ0ODRlOTc1NGQ1Y2E0ODU3Y2JlZSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZTBhZWJhM2VhN2U0NTMwYTUxMGYxZDcyZmQ5MjMyZiA9IEwucG9wdXAoeLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccca4b780>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYzU5NzUyMGI5ZTQ2NDA3MGE1OTk2ODAzNzQ5NWYwMzYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2M1OTc1MjBiOWU0NjQwNzBhNTk5NjgwMzc0OTVmMDM2IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9jNTk3NTIwYjllNDY0MDcwYTU5OTY4MDM3NDk1ZjAzNiA9IEwubWFwKAogICAgICAgICdtYXBfYzU5NzUyMGI5ZTQ2NDA3MGE1OTk2ODAzNzQ5NWYwMzYnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzM0NTcyOGZjZjJiNDRhYWViNGZlNzQxODcyZTYwMzc1ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2M1OTc1MjBiOWU0NjQwNzBhNTk5NjgwMzc0OTVmMDM2KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF83Y2IwNmY1MzljNTE0NmRmODJhYmRkNTgzY2Q5M2Y4MiA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfYzU5NzUyMGI5ZTQ2NDA3MGE1OTk2ODAzNzQ5NWYwMzYpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl84YmE4ZjA0YzIzY2Q0MTA5Yjc3ODFiMWE4ZTc4MjZmNSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbW1s1My4yNTk4NDQ5MDM5NzE2OCwgNi4yMTkwMDAyNjM0OTI0NjldLCBbNTMuMjU3NjM5Nzk0MzUxNDQsIDYuMjIzMjA4NjQ4OTE2NjA0NV0sIFs1My4yNDQzNzM0ODIxNDIwOCwgNi4yMjMyMDg2NDg5MTY2MDQ1XSwgWzUzLjI0MjcxMjI2MzI4NjQ2LCA2LjIxOTAwMDI2MzQ5MjQ2OV0sIFs1My4yNTk4NDQ5MDM5NzE2OCwgNi4yMTkwMDAyNjM0OTI0NjldXV0sIFtbWzUzLjI0MTQzMDczNjg3MzY1LCA2LjIxOTAwMDI2MzQ5MjQ2OV0sIFs1My4yMzk0NTM3NzU0NTA4OCwgNi4yMjMyMDg2NDg5MTY2MDQ1XSwgWzUzLjIzODczNjI3MDkyOTMyLCA2LjIyMzIwODY0ODkxNjYwNDVdLCBbNTMuMjM4MDQ3MTY0OTcwMzYsIDYuMjE5MDAwMjYzNDkyNDY5XSwgWzUzLjI0MTQzMDczNjg3MzY1LCA2LjIxOTAwMDI2MzQ5MjQ2OV1dXSwgW1tbNTMuMjMwOTIwMDY0MjI2NTYsIDYuMjE5MDAwMjYzNDkyNDY5XSwgWzUzLjIyOTkxNjIwNTMyNjk1LCA2LjIyMzIwODY0ODkxNjYwNDVdLCBbNTMuMjExMDAzNDI1ODg5NzY0LCA2LjIyMzIwODY0ODkxNjYwNDVdLCBbNTMuMjA2NjA1MDM5NDczNTIsIDYuMjE5MDAwMjYzNDkyNDY5XSwgWzUzLjIzMDkyMDA2NDIyNjU2LCA2LjIxOTAwMDI2MzQ5MjQ2OV1dXV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6IG51bGwsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiNkNzAwMDAiLAogICJmaWxsT3BhY2l0eSI6IDAuOCwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc32f588>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMjA4YWE2MmMwMjkyNDU2ZWE0YjcxMzIyZmUyODI2MjAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzIwOGFhNjJjMDI5MjQ1NmVhNGI3MTMyMmZlMjgyNjIwIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF8yMDhhYTYyYzAyOTI0NTZlYTRiNzEzMjJmZTI4MjYyMCA9IEwubWFwKAogICAgICAgICdtYXBfMjA4YWE2MmMwMjkyNDU2ZWE0YjcxMzIyZmUyODI2MjAnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2Y3MDkzNGEyODcwNTRiOWFhNzVhMmQ4OGRiYWY4OTkxID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzIwOGFhNjJjMDI5MjQ1NmVhNGI3MTMyMmZlMjgyNjIwKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9lOWYzM2RhOTVmMzI0OWI5OGM1NTQyNDJhZDQxY2ZiNSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfMjA4YWE2MmMwMjkyNDU2ZWE0YjcxMzIyZmUyODI2MjApOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9kNWNmNzExNGUwNzU0MjZkOTk4NzBmMmZhMDM4MzU5NyA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2NjU3MTYwMDczOTY5LCA2LjIxMDU4MzQ5MjY0NDE5OV0sIFs1My4yNjU5MzQ5NjMwNTg5OCwgNi4yMTM3NjEyNTMwNjY1MDVdLCBbNTMuMjAzMjE5ODU1NzQ5NTMsIDYuMjEzNzYxMjUzMDY2NTA1XSwgWzUzLjIwMTE5NzAxNTI4MDIxNSwgNi4yMTA1ODM0OTI2NDQxOTldLCBbNTMuMjY2NTcxNjAwNzM5NjksIDYuMjEwNTgzNDkyNjQ0MTk5XV1dLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiBudWxsLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjZDcwMDAwIiwKICAiZmlsbE9wYWNpdHkiOiAwLjgsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEuMCwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwX2U5ZjMzZGE5NWYzMjQ5Yjk4YzU1NDI0MmFkNDFjZmI1KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIzZjkzZTkwZTlhZTQ5ZmViYTIyOWEzNGFkNmI5ZWRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTBkZWZjOGQ0YzVlNDdiZDkzNTViMDhlNjcxNDRkYzIgPSAkKCc8ZGl2IGlkPSJodG1sXzUwZGVmYzhkNGM1ZTQ3YmQ5MLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc3c0eb8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNTVjZTRhMzQxYmVkNGYwNWFhNTZkN2Y3YmJlNDlkZmMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzU1Y2U0YTM0MWJlZDRmMDVhYTU2ZDdmN2JiZTQ5ZGZjIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF81NWNlNGEzNDFiZWQ0ZjA1YWE1NmQ3ZjdiYmU0OWRmYyA9IEwubWFwKAogICAgICAgICdtYXBfNTVjZTRhMzQxYmVkNGYwNWFhNTZkN2Y3YmJlNDlkZmMnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2ZhZGYzYmE1OGMzNDQwZjI5ZDE0NDg0ZTY1YTViODFlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzU1Y2U0YTM0MWJlZDRmMDVhYTU2ZDdmN2JiZTQ5ZGZjKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9hNjY4ZGQ2YWQ0MzQ0MzQxYmEwM2ExODdkOTQ2MjRmYSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNTVjZTRhMzQxYmVkNGYwNWFhNTZkN2Y3YmJlNDlkZmMpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8yMTZiZWMzMDYzMDA0Njc2Yjg4ODZlMjZjNDU4YWFhNSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE0Nzc1ODQzMTI3NzY2NiwgNi4xMjczMzkwNTIzOTIzMDRdLCBbNTMuMTQ0OTkzNDA4OTgwMjM0LCA2LjEyMTYzMjkxNzE3ODU4NV0sIFs1My4xNDU3NDA1NDgwMTMxOTQsIDYuMTE4NzkxNTY3Mjg3OTQyXSwgWzUzLjE0OTQxOTk2OTY5MTU1LCA2LjExOTMzODU1NTk1NjU4NjVdLCBbNTMuMTUwMTk2MTQxMzU5MDcsIDYuMTEyNTM3Mzg4NDYwMTcxXSwgWzUzLjE1MjE5ODMyOTc4NjQyLCA2LjEwOTAyNTI0MzE0MjI1Nl0sIFs1My4xNTE3OTk0MDgwNDk3MiwgNi4xMDUwMTMwNDY0NDQwMV0sIFs1My4xNzU5Nzc2NTU0NjYxODQsIDYuMTE0NTkzNDg5ODQ0OTQ3XSwgWzUzLjE3NjMzMTc0MjM3NzA5LCA2LjEwODk0NjgxNzgzMzI4MV0sIFs1My4xNzkzNDA3Mjk2MTQwNTQsIDYuMTA0NjE4MzU4MjY4OTY5XSwgWzUzLjE4NTc2NDExMjkwOTY1LCA2LjA5OTc3MjExNjI4MzM4NV0sIFs1My4xOTU3NjU5MDM1NTk0MywgNi4wODQwNTI4OTEzNDEzMzhdLCBbNTMuMjA2NzE2MDIzNDM0OTIsIDYuMDc4NTU4Mjg3NTE4NTE5XSwgWzUzLjIwODQ2MzI1MzkzNzIsIDYuMDg0MTA5OTgzMTI4NTk4XSwgWzUzLjIxMDY3Nzc0MjUzMDYzNSwgNi4wNzg3MjM5NjA0NDkwODFdLCBbNTMuMjExMTcxNDc5NDQ1MTIsIDYuMDgxOTA0NjY5ODExNTg0XSwgWzUzLjIxMzE1NTM1MDExOTQ2LCA2LjA4MDEzNzY3ODIzNjA0MV0sIFs1My4yMTQwODU3Nzk0MTczMiwgNi4wODE2OTk3NDE2ODIyODNdLCBbNTMuMjE1MDI1OTk0MjIxOTMsIDYuMDg2Mjg5MDUwNDA2NTE4XSwgWzUzLjIzMDEzMjU1MjM0OTUsIDYuMDI3MjQ0MjQxNDAxMTA3XSwgWzUzLjI0MDkyNDEwMzcwODcsIDYuMDE5Nzg5MDM5MTgwNjA4XSwgWzUzLjI0Mjc5MTQyODI5OTk4LCA2LjAyMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccd72f8d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZjQwNjlhNWZjZWRkNDM0YWJlOTA2NGUwZDFmMzBjYzMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2Y0MDY5YTVmY2VkZDQzNGFiZTkwNjRlMGQxZjMwY2MzIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9mNDA2OWE1ZmNlZGQ0MzRhYmU5MDY0ZTBkMWYzMGNjMyA9IEwubWFwKAogICAgICAgICdtYXBfZjQwNjlhNWZjZWRkNDM0YWJlOTA2NGUwZDFmMzBjYzMnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzcyOTc1M2UxYmY0ZTRlNTFhMzkxMjE3YTdjYjFlMGJlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2Y0MDY5YTVmY2VkZDQzNGFiZTkwNjRlMGQxZjMwY2MzKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8zM2VjYzhjZmQwYTk0OTAzYjlmZmU0ODY4MzIyZmZjZSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZjQwNjlhNWZjZWRkNDM0YWJlOTA2NGUwZDFmMzBjYzMpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8zZTBiYzY0NDNkMzU0MTdkOGRlMDFmZmY5NzZiYzhlNyA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbW1s1My4yNjU2NTk2NjAyNzgxMywgNi4yMTUxMzU0MTk3MzU2MTFdLCBbNTMuMjY1MjY3MjE2NjgwNTQsIDYuMjE3MDk0MjkxNzQ0MjY4XSwgWzUzLjI2NDU5NDE0OTQ0MzY5LCA2LjIxNzMyNTQ5Nzg2NDQ5N10sIFs1My4yMzc3NzI5Mjg5MjU0NjYsIDYuMjE3MzI1NDk3ODY0NDk3XSwgWzUzLjIzNzQ1MTQxNDg4OTYyLCA2LjIxNTM2MjAwNDQ5Mzg0NV0sIFs1My4yMzY5OTU1MjgwMTU0OSwgNi4yMTUxMzU0MTk3MzU2MTFdLCBbNTMuMjY1NjU5NjYwMjc4MTMsIDYuMjE1MTM1NDE5NzM1NjExXV1dLCBbW1s1My4yMzMyMjM3OTAxODUzMywgNi4yMTUxMzU0MTk3MzU2MTFdLCBbNTMuMjMxNjEzMDE4NTk1NjgsIDYuMjE3MzI1NDk3ODY0NDk3XSwgWzUzLjIwNTQ4ODcxNzM1NzAxLCA2LjIxNzMyNTQ5Nzg2NDQ5N10sIFs1My4yMDQwOTQ1OTc1NzQxLCA2LjIxNTEzNTQxOTczNTYxMV0sIFs1My4yMzMyMjM3OTAxODUzMywgNi4yMTUxMzU0MTk3MzU2MTFdXV1dLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiBudWxsLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjZDcwMDAwIiwKICAiZmlsbE9wYWNpdHkiOiAwLjgsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEuMCwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhmZLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc61a470>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfOWQ2YjFiNjg5ZjA3NGUyYTk5OGVlNTc4OGI4YTViMzEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzlkNmIxYjY4OWYwNzRlMmE5OThlZTU3ODhiOGE1YjMxIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF85ZDZiMWI2ODlmMDc0ZTJhOTk4ZWU1Nzg4YjhhNWIzMSA9IEwubWFwKAogICAgICAgICdtYXBfOWQ2YjFiNjg5ZjA3NGUyYTk5OGVlNTc4OGI4YTViMzEnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2IxZWY1YmRjZDNjZjQxM2I5ZDVhMTUxZmYyNzgyYWQ0ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzlkNmIxYjY4OWYwNzRlMmE5OThlZTU3ODhiOGE1YjMxKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9iODY4MmQxNWNjOTA0Y2Y0ODIzYzIyMjljZDIzYmU1ZSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfOWQ2YjFiNjg5ZjA3NGUyYTk5OGVlNTc4OGI4YTViMzEpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8xZjAzNzZjZmE1NTQ0YzgxOWY1YWVjZjczNzhjNzExNSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbW1s1My4yNjQ1OTQxNDk0NDM2OSwgNi4yMTczMjU0OTc4NjQ0OTddLCBbNTMuMjU5ODcyNjAyMjgzMzIsIDYuMjE4OTQ3NDAyMDk3MzI1XSwgWzUzLjI1ODgyMTEwMzA3NjU3LCA2LjIyMDk1NDE1NjcyNTEwM10sIFs1My4yNDM0ODM1NDM0Njk0MjQsIDYuMjIwOTU0MTU2NzI1MTAzXSwgWzUzLjI0MjEyNzEwOTI1OTQzNSwgNi4yMTc1MTc4ODU4NTc2MTNdLCBbNTMuMjQwNTEyODYxOTI3MzcsIDYuMjIwOTU0MTU2NzI1MTAzXSwgWzUzLjIzODM2NzEwNzAyMjczLCA2LjIyMDk1NDE1NjcyNTEwM10sIFs1My4yMzc3NzI5Mjg5MjU0NjYsIDYuMjE3MzI1NDk3ODY0NDk3XSwgWzUzLjI2NDU5NDE0OTQ0MzY5LCA2LjIxNzMyNTQ5Nzg2NDQ5N11dXSwgW1tbNTMuMjMxNjEzMDE4NTk1NjgsIDYuMjE3MzI1NDk3ODY0NDk3XSwgWzUzLjIzMTE3ODY5Njk1NDU4NiwgNi4yMTc5MTYwMjEyNzE1MjFdLCBbNTMuMjMwNDUzOTg2ODgwMzEsIDYuMjIwOTU0MTU2NzI1MTAzXSwgWzUzLjIwODY0NzE0NzQ1MjQ5LCA2LjIyMDk1NDE1NjcyNTEwM10sIFs1My4yMDY0NzY1NTE3OTMyMSwgNi4yMTg4NzczMjYyMDgyMzhdLCBbNTMuMjA1NDg4NzE3MzU3MDEsIDYuMjE3MzI1NDk3ODY0NDk3XSwgWzUzLjIzMTYxMzAxODU5NTY4LCA2LjIxNzMyNTQ5Nzg2NDQ5N11dXV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6IG51bGwsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiNkNzAwMDAiLAogICJmaWxsT3BhY2l0eSI6IDAuOCwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc6b1438>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMzc1ZjBlNjRiNDI2NGVhZGI5NjM5MDYzNTNkNTJmMmUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzM3NWYwZTY0YjQyNjRlYWRiOTYzOTA2MzUzZDUyZjJlIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF8zNzVmMGU2NGI0MjY0ZWFkYjk2MzkwNjM1M2Q1MmYyZSA9IEwubWFwKAogICAgICAgICdtYXBfMzc1ZjBlNjRiNDI2NGVhZGI5NjM5MDYzNTNkNTJmMmUnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzg5Y2ZhYzJlNjQ0OTQ0Mzg4ZDQzOTYyNWI2Zjk1N2EyID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzM3NWYwZTY0YjQyNjRlYWRiOTYzOTA2MzUzZDUyZjJlKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9iODAwZGUyOWFhYTQ0YmY0OTE2ZWY3MmUzZTFlMjU2OCA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfMzc1ZjBlNjRiNDI2NGVhZGI5NjM5MDYzNTNkNTJmMmUpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl83YmMxMDIyY2MyNDQ0MzA2OWVlZGNlZTQyNzZmMTQ2YyA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE1MDg2ODYzNTgxNDc0NiwgNi4xNTE5NjY2OTU2NjUxNzZdLCBbNTMuMTU3ODI3NDQyMzgxMDksIDYuMTQ4MTE4MzIwMjA0MzI3XSwgWzUzLjE0NDk5MzQwODk4MDIzNCwgNi4xMjE2MzI5MTcxNzg1ODVdLCBbNTMuMTQ1NzQwNTQ4MDEzMTk0LCA2LjExODc5MTU2NzI4Nzk0Ml0sIFs1My4xNDk0MTk5Njk2OTE1NSwgNi4xMTkzMzg1NTU5NTY1ODY1XSwgWzUzLjE1MDE5NjE0MTM1OTA3LCA2LjExMjUzNzM4ODQ2MDE3MV0sIFs1My4xNTIxOTgzMjk3ODY0MiwgNi4xMDkwMjUyNDMxNDIyNTZdLCBbNTMuMTUxNzk5NDA4MDQ5NzIsIDYuMTA1MDEzMDQ2NDQ0MDFdLCBbNTMuMTc1OTc3NjU1NDY2MTg0LCA2LjExNDU5MzQ4OTg0NDk0N10sIFs1My4xNzYzMzE3NDIzNzcwOSwgNi4xMDg5NDY4MTc4MzMyODFdLCBbNTMuMTc5MzQwNzI5NjE0MDU0LCA2LjEwNDYxODM1ODI2ODk2OV0sIFs1My4xODU3NjQxMTI5MDk2NSwgNi4wOTk3NzIxMTYyODMzODVdLCBbNTMuMTk1NzY1OTAzNTU5NDMsIDYuMDg0MDUyODkxMzQxMzM4XSwgWzUzLjIwNjcxNjAyMzQzNDkyLCA2LjA3ODU1ODI4NzUxODUxOV0sIFs1My4yMDg0NjMyNTM5MzcyLCA2LjA4NDEwOTk4MzEyODU5OF0sIFs1My4yMTA2Nzc3NDI1MzA2MzUsIDYuMDc4NzIzOTYwNDQ5MDgxXSwgWzUzLjIxMTE3MTQ3OTQ0NTEyLCA2LjA4MTkwNDY2OTgxMTU4NF0sIFs1My4yMTMxNTUzNTAxMTk0NiwgNi4wODAxMzc2NzgyMzYwNDFdLCBbNTMuMjE0MDg1Nzc5NDE3MzIsIDYuMDgxNjk5NzQxNjgyMjgzXSwgWzUzLjIxNTAyNTk5NDIyMTkzLCA2LjA4NjI4OTA1MDQwNjUxOF0sIFs1My4yMzAxMzI1NTIzNDk1LCA2LjAyNzI0NDI0MTQwMTEwN10sIFs1My4yNDA5MjQxMDM3MDg3LCA2LjAxOLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc1b9400>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZjAyNTYyYWZjY2VjNDJmMDhjYWJiNDkyN2Q2NGMwZDkgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2YwMjU2MmFmY2NlYzQyZjA4Y2FiYjQ5MjdkNjRjMGQ5IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9mMDI1NjJhZmNjZWM0MmYwOGNhYmI0OTI3ZDY0YzBkOSA9IEwubWFwKAogICAgICAgICdtYXBfZjAyNTYyYWZjY2VjNDJmMDhjYWJiNDkyN2Q2NGMwZDknLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzljM2VkM2NkOGY2OTQ1Mzk5ZmI3ZTU5MDM2ZDNkMzYxID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2YwMjU2MmFmY2NlYzQyZjA4Y2FiYjQ5MjdkNjRjMGQ5KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF83NDI1ZDMwZjFkNTM0MjAzYWI1Y2I3N2VkOWJhNDkyNSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZjAyNTYyYWZjY2VjNDJmMDhjYWJiNDkyN2Q2NGMwZDkpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl9lMGM0Y2M3NGQxMTg0OGFlYmZkMDY0MzAyNjQ5OWQyMiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2OTc1OTUwODc3NTM2NSwgNi4xOTQ2NzExMzI2MTE3MzVdLCBbNTMuMjY4MDI5ODQ1MTU2OTk1LCA2LjIwMzMwNDcwMzU2ODc4Ml0sIFs1My4xOTkzNTcxNjcwNTY1NywgNi4yMDMzMDQ3MDM1Njg3ODJdLCBbNTMuMTk4NjY5NjQxNTMzODU0LCA2LjE5OTIzMDc5NzIwOTQ1OF0sIFs1My4xOTM1ODM4Njg0ODI4NSwgNi4xOTg5NzQyMzUzOTU4MDldLCBbNTMuMTg5Mzk0Mjk4MTc4MTYsIDYuMTkyNDc1MzM1MTUyMzkyXSwgWzUzLjE4ODM2ODg1MjM4Njg0LCA2LjE5MTgzOTAwMDQyMzQzNDVdLCBbNTMuMjY4OTE2Njc0NDAwODM1LCA2LjE5MTgzOTAwMDQyMzQzNDVdLCBbNTMuMjY5NzU5NTA4Nzc1MzY1LCA2LjE5NDY3MTEzMjYxMTczNV1dXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogbnVsbCwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiI2Q3MDAwMCIsCiAgImZpbGxPcGFjaXR5IjogMC44LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF83NDI1ZDMwZjFkNTM0MjAzYWI1Y2I3N2VkOWJhNDkyNSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNWVkZTlhODNjYjk0YmFiODJkMWFjOGU5MzgyMTE0ZLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc084fd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNjBhOThhMWVlZmFjNGMwYjhiODk5MmI5NjczMDJmYWYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzYwYTk4YTFlZWZhYzRjMGI4Yjg5OTJiOTY3MzAyZmFmIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF82MGE5OGExZWVmYWM0YzBiOGI4OTkyYjk2NzMwMmZhZiA9IEwubWFwKAogICAgICAgICdtYXBfNjBhOThhMWVlZmFjNGMwYjhiODk5MmI5NjczMDJmYWYnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzYyYWNhYzVkMjU0ZjRkNzdhNTA3YWUzOGFkYWI0YWQ5ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzYwYTk4YTFlZWZhYzRjMGI4Yjg5OTJiOTY3MzAyZmFmKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8wN2EzMjgyNTRhYTk0N2IwOGM1ZjQ2MjYyYzNhYzdhOCA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjBhOThhMWVlZmFjNGMwYjhiODk5MmI5NjczMDJmYWYpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8wMjQzZDMxNjJlYWQ0MzdiODhkYzhjZDRhNjY2NzQwOSA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE1Njk5MjEwOTUxOTI5NCwgNi4xNjk1NzMyMDYxMTMwODddLCBbNTMuMTUwODMyNzg3MDIwODQ2LCA2LjE1MTk4NjUyMDg0ODkxMTVdLCBbNTMuMTU3ODI3NDQyMzgxMDksIDYuMTQ4MTE4MzIwMjA0MzI3XSwgWzUzLjE0NDk5MzQwODk4MDIzNCwgNi4xMjE2MzI5MTcxNzg1ODVdLCBbNTMuMTQ1NzQwNTQ4MDEzMTk0LCA2LjExODc5MTU2NzI4Nzk0Ml0sIFs1My4xNDk0MTk5Njk2OTE1NSwgNi4xMTkzMzg1NTU5NTY1ODY1XSwgWzUzLjE1MDE5NjE0MTM1OTA3LCA2LjExMjUzNzM4ODQ2MDE3MV0sIFs1My4xNTIxOTgzMjk3ODY0MiwgNi4xMDkwMjUyNDMxNDIyNTZdLCBbNTMuMTUxNzk5NDA4MDQ5NzIsIDYuMTA1MDEzMDQ2NDQ0MDFdLCBbNTMuMTc1OTc3NjU1NDY2MTg0LCA2LjExNDU5MzQ4OTg0NDk0N10sIFs1My4xNzYzMzE3NDIzNzcwOSwgNi4xMDg5NDY4MTc4MzMyODFdLCBbNTMuMTc5MzQwNzI5NjE0MDU0LCA2LjEwNDYxODM1ODI2ODk2OV0sIFs1My4xODU3NjQxMTI5MDk2NSwgNi4wOTk3NzIxMTYyODMzODVdLCBbNTMuMTk1NzY1OTAzNTU5NDMsIDYuMDg0MDUyODkxMzQxMzM4XSwgWzUzLjIwNjcxNjAyMzQzNDkyLCA2LjA3ODU1ODI4NzUxODUxOV0sIFs1My4yMDg0NjMyNTM5MzcyLCA2LjA4NDEwOTk4MzEyODU5OF0sIFs1My4yMTA2Nzc3NDI1MzA2MzUsIDYuMDc4NzIzOTYwNDQ5MDgxXSwgWzUzLjIxMTE3MTQ3OTQ0NTEyLCA2LjA4MTkwNDY2OTgxMTU4NF0sIFs1My4yMTMxNTUzNTAxMTk0NiwgNi4wODAxMzc2NzgyMzYwNDFdLCBbNTMuMjE0MDg1Nzc5NDE3MzIsIDYuMDgxNjk5NzQxNjgyMjgzXSwgWzUzLjIxNTAyNTk5NDIyMTkzLCA2LjA4NjI4OTA1MDQwNjUxOF0sIFs1My4yMzAxMzI1NTIzNDk1LCA2LLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc8c0470>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZTg4MzM5ZmJiZjE2NDNmZWFmMzdkN2U4YmZlYjg0YzIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2U4ODMzOWZiYmYxNjQzZmVhZjM3ZDdlOGJmZWI4NGMyIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lODgzMzlmYmJmMTY0M2ZlYWYzN2Q3ZThiZmViODRjMiA9IEwubWFwKAogICAgICAgICdtYXBfZTg4MzM5ZmJiZjE2NDNmZWFmMzdkN2U4YmZlYjg0YzInLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2FjMDQ2YWU4MDdiMjRiNzU4NTk3NjE5MjZkMjYyMDI4ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2U4ODMzOWZiYmYxNjQzZmVhZjM3ZDdlOGJmZWI4NGMyKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF80YmYxNTM4OTdiNDQ0ZGIxODRiN2FhODBjODczNzNkMSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTg4MzM5ZmJiZjE2NDNmZWFmMzdkN2U4YmZlYjg0YzIpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8xMDBhODdjMzAxYzA0ODIyYTkyYmYzZjFlYTk0ZTM4MiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE1NzA4MDc1MTY4MDkxLCA2LjE0NjU3NzM4NTc1OTc3ODVdLCBbNTMuMTQ0OTkzNDA4OTgwMjM0LCA2LjEyMTYzMjkxNzE3ODU4NV0sIFs1My4xNDU3NDA1NDgwMTMxOTQsIDYuMTE4NzkxNTY3Mjg3OTQyXSwgWzUzLjE0OTQxOTk2OTY5MTU1LCA2LjExOTMzODU1NTk1NjU4NjVdLCBbNTMuMTUwMTk2MTQxMzU5MDcsIDYuMTEyNTM3Mzg4NDYwMTcxXSwgWzUzLjE1MjE5ODMyOTc4NjQyLCA2LjEwOTAyNTI0MzE0MjI1Nl0sIFs1My4xNTE3OTk0MDgwNDk3MiwgNi4xMDUwMTMwNDY0NDQwMV0sIFs1My4xNzU5Nzc2NTU0NjYxODQsIDYuMTE0NTkzNDg5ODQ0OTQ3XSwgWzUzLjE3NjMzMTc0MjM3NzA5LCA2LjEwODk0NjgxNzgzMzI4MV0sIFs1My4xNzkzNDA3Mjk2MTQwNTQsIDYuMTA0NjE4MzU4MjY4OTY5XSwgWzUzLjE4NTc2NDExMjkwOTY1LCA2LjA5OTc3MjExNjI4MzM4NV0sIFs1My4xOTU3NjU5MDM1NTk0MywgNi4wODQwNTI4OTEzNDEzMzhdLCBbNTMuMjA2NzE2MDIzNDM0OTIsIDYuMDc4NTU4Mjg3NTE4NTE5XSwgWzUzLjIwODQ2MzI1MzkzNzIsIDYuMDg0MTA5OTgzMTI4NTk4XSwgWzUzLjIxMDY3Nzc0MjUzMDYzNSwgNi4wNzg3MjM5NjA0NDkwODFdLCBbNTMuMjExMTcxNDc5NDQ1MTIsIDYuMDgxOTA0NjY5ODExNTg0XSwgWzUzLjIxMzE1NTM1MDExOTQ2LCA2LjA4MDEzNzY3ODIzNjA0MV0sIFs1My4yMTQwODU3Nzk0MTczMiwgNi4wODE2OTk3NDE2ODIyODNdLCBbNTMuMjE1MDI1OTk0MjIxOTMsIDYuMDg2Mjg5MDUwNDA2NTE4XSwgWzUzLjIzMDEzMjU1MjM0OTUsIDYuMDI3MjQ0MjQxNDAxMTA3XSwgWzUzLjI0MDkyNDEwMzcwODcsIDYuMDE5Nzg5MDM5MTgwNjA4XSwgWzUzLjI0Mjc5MTQyODI5OTk4LCA2LjAyMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2cc7e63828>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNzVjZDQyZDQzNWU3NDFjNWI3NTZhNDY4YjhjNGQ5YzggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzc1Y2Q0MmQ0MzVlNzQxYzViNzU2YTQ2OGI4YzRkOWM4IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF83NWNkNDJkNDM1ZTc0MWM1Yjc1NmE0NjhiOGM0ZDljOCA9IEwubWFwKAogICAgICAgICdtYXBfNzVjZDQyZDQzNWU3NDFjNWI3NTZhNDY4YjhjNGQ5YzgnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzVkYTQ2YmU3Mzg3MTRkYTI4YjZlNzgzODMzMDEzZjRlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzc1Y2Q0MmQ0MzVlNzQxYzViNzU2YTQ2OGI4YzRkOWM4KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF80NTdjMGM3ZTAxYWY0ZTYxOWIxYzZjZDJhZDIxNTMyNyA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNzVjZDQyZDQzNWU3NDFjNWI3NTZhNDY4YjhjNGQ5YzgpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl85OTIwNTI1MGQ1YmQ0YjA0YWJjNTAxMzEyODcwODgwNiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjI2ODI3MDczNTA5MDI0LCA2LjIwMjEwMjMwNzczMzMxNF0sIFs1My4yNjUyNjcyMTY2ODA1NCwgNi4yMTcwOTQyOTE3NDQyNjhdLCBbNTMuMjU5ODcyNjAyMjgzMzIsIDYuMjE4OTQ3NDAyMDk3MzI1XSwgWzUzLjI1OTg0NDkwMzk3MTY4LCA2LjIxOTAwMDI2MzQ5MjQ2OV0sIFs1My4yNDI3MTIyNjMyODY0NiwgNi4yMTkwMDAyNjM0OTI0NjldLCBbNTMuMjQyMTI3MTA5MjU5NDM1LCA2LjIxNzUxNzg4NTg1NzYxM10sIFs1My4yNDE0MzA3MzY4NzM2NSwgNi4yMTkwMDAyNjM0OTI0NjldLCBbNTMuMjM4MDQ3MTY0OTcwMzYsIDYuMjE5MDAwMjYzNDkyNDY5XSwgWzUzLjIzNzQ1MTQxNDg4OTYyLCA2LjIxNTM2MjAwNDQ5Mzg0NV0sIFs1My4yMzQyMzM0NjUwMjgzLCA2LjIxMzc2MjYyMDAxMzM2NF0sIFs1My4yMzExNzg2OTY5NTQ1ODYsIDYuMjE3OTE2MDIxMjcxNTIxXSwgWzUzLjIzMDkyMDA2NDIyNjU2LCA2LjIxOTAwMDI2MzQ5MjQ2OV0sIFs1My4yMDY2MDUwMzk0NzM1MiwgNi4yMTkwMDAyNjM0OTI0NjldLCBbNTMuMjA2NDc2NTUxNzkzMjEsIDYuMjE4ODc3MzI2MjA4MjM4XSwgWzUzLjIwMDM2NDk2OTU1NCwgNi4yMDkyNzYzOTg5NzE1MTJdLCBbNTMuMTk5MTU0MjQ2ODczMjQsIDYuMjAyMTAyMzA3NzMzMzE0XSwgWzUzLjI2ODI3MDczNTA5MDI0LCA2LjIwMjEwMjMwNzczMzMxNF1dXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogbnVsbCwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiI2Q3MDAwMCIsCiAgImZpbGxPcGFjaXR5IjogMC44LAogICJmaWxsUnVsZSI6ILine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccc4f4d68>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZDA1NTkwYzRmOWE2NGJjY2E5NzNlYmUzMmQxNjAzMDIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2QwNTU5MGM0ZjlhNjRiY2NhOTczZWJlMzJkMTYwMzAyIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9kMDU1OTBjNGY5YTY0YmNjYTk3M2ViZTMyZDE2MDMwMiA9IEwubWFwKAogICAgICAgICdtYXBfZDA1NTkwYzRmOWE2NGJjY2E5NzNlYmUzMmQxNjAzMDInLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzgyOWY0M2M2ODg5YjQ3ZTdiMDg4OGZlZjhiMTI2ZTRhID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2QwNTU5MGM0ZjlhNjRiY2NhOTczZWJlMzJkMTYwMzAyKTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF85NzBiOWQ3YTJjNWE0MjhlYmEwYjcwNDFiYzAxNDAzMSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZDA1NTkwYzRmOWE2NGJjY2E5NzNlYmUzMmQxNjAzMDIpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl84Y2I5YzVjN2QzNmY0Y2NiOTdhYTIyZTgzOTQ5Y2VkMiA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE1ODUxMTExNjQ2MDg0LCA2LjE3MzkxMDQxOTY2MjQ1MV0sIFs1My4xNTA4MzI3ODcwMjA4NDYsIDYuMTUxOTg2NTIwODQ4OTExNV0sIFs1My4xNTc4Mjc0NDIzODEwOSwgNi4xNDgxMTgzMjAyMDQzMjddLCBbNTMuMTQ0OTkzNDA4OTgwMjM0LCA2LjEyMTYzMjkxNzE3ODU4NV0sIFs1My4xNDU3NDA1NDgwMTMxOTQsIDYuMTE4NzkxNTY3Mjg3OTQyXSwgWzUzLjE0OTQxOTk2OTY5MTU1LCA2LjExOTMzODU1NTk1NjU4NjVdLCBbNTMuMTUwMTk2MTQxMzU5MDcsIDYuMTEyNTM3Mzg4NDYwMTcxXSwgWzUzLjE1MjE5ODMyOTc4NjQyLCA2LjEwOTAyNTI0MzE0MjI1Nl0sIFs1My4xNTE3OTk0MDgwNDk3MiwgNi4xMDUwMTMwNDY0NDQwMV0sIFs1My4xNzU5Nzc2NTU0NjYxODQsIDYuMTE0NTkzNDg5ODQ0OTQ3XSwgWzUzLjE3NjMzMTc0MjM3NzA5LCA2LjEwODk0NjgxNzgzMzI4MV0sIFs1My4xNzkzNDA3Mjk2MTQwNTQsIDYuMTA0NjE4MzU4MjY4OTY5XSwgWzUzLjE4NTc2NDExMjkwOTY1LCA2LjA5OTc3MjExNjI4MzM4NV0sIFs1My4xOTU3NjU5MDM1NTk0MywgNi4wODQwNTI4OTEzNDEzMzhdLCBbNTMuMjA2NzE2MDIzNDM0OTIsIDYuMDc4NTU4Mjg3NTE4NTE5XSwgWzUzLjIwODQ2MzI1MzkzNzIsIDYuMDg0MTA5OTgzMTI4NTk4XSwgWzUzLjIxMDY3Nzc0MjUzMDYzNSwgNi4wNzg3MjM5NjA0NDkwODFdLCBbNTMuMjExMTcxNDc5NDQ1MTIsIDYuMDgxOTA0NjY5ODExNTg0XSwgWzUzLjIxMzE1NTM1MDExOTQ2LCA2LjA4MDEzNzY3ODIzNjA0MV0sIFs1My4yMTQwODU3Nzk0MTczMiwgNi4wODE2OTk3NDE2ODIyODNdLCBbNTMuMjE1MDI1OTk0MjIxOTMsIDYuMDg2Mjg5MDUwNDA2NTE4XSwgWzUzLjIzMDEzMjU1MjM0OTUsIDYuMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccd82d828>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNzA1MThiNDkxMGFjNDgyNjk1N2QxOWIwODllNTUzZDcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzcwNTE4YjQ5MTBhYzQ4MjY5NTdkMTliMDg5ZTU1M2Q3IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF83MDUxOGI0OTEwYWM0ODI2OTU3ZDE5YjA4OWU1NTNkNyA9IEwubWFwKAogICAgICAgICdtYXBfNzA1MThiNDkxMGFjNDgyNjk1N2QxOWIwODllNTUzZDcnLCB7CiAgICAgICAgY2VudGVyOiBbNTMuMTc5ODAzMzczMzkxNDMsIDUuOTAzNjk0MTM5NjA4NjgzXSwKICAgICAgICB6b29tOiAxMCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzZjYThmOTMxMjJhZjRkNzBiY2ZmZGNhMjRiODJlZjRjID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzcwNTE4YjQ5MTBhYzQ4MjY5NTdkMTliMDg5ZTU1M2Q3KTsKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF8yMmI4NjNjZjU0OWI0MzUyODQyZDhmZmZlYTUwOGY5NSA9IEwuZmVhdHVyZUdyb3VwKAogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNzA1MThiNDkxMGFjNDgyNjk1N2QxOWIwODllNTUzZDcpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgcG9seWdvbl8xNmM3MzQ2YzQ2Nzk0MGRiOWFmMDcyMTE0M2M3ZDBjNyA9IEwucG9seWdvbigKICAgICAgICAgICAgICAgIFtbWzUzLjE1NDk5MTgzMzA1MTcsIDYuMTYzODYxODI1ODk0NjE4XSwgWzUzLjE1MDgzMjc4NzAyMDg0NiwgNi4xNTE5ODY1MjA4NDg5MTE1XSwgWzUzLjE1NzgyNzQ0MjM4MTA5LCA2LjE0ODExODMyMDIwNDMyN10sIFs1My4xNDQ5OTM0MDg5ODAyMzQsIDYuMTIxNjMyOTE3MTc4NTg1XSwgWzUzLjE0NTc0MDU0ODAxMzE5NCwgNi4xMTg3OTE1NjcyODc5NDJdLCBbNTMuMTQ5NDE5OTY5NjkxNTUsIDYuMTE5MzM4NTU1OTU2NTg2NV0sIFs1My4xNTAxOTYxNDEzNTkwNywgNi4xMTI1MzczODg0NjAxNzFdLCBbNTMuMTUyMTk4MzI5Nzg2NDIsIDYuMTA5MDI1MjQzMTQyMjU2XSwgWzUzLjE1MTc5OTQwODA0OTcyLCA2LjEwNTAxMzA0NjQ0NDAxXSwgWzUzLjE3NTk3NzY1NTQ2NjE4NCwgNi4xMTQ1OTM0ODk4NDQ5NDddLCBbNTMuMTc2MzMxNzQyMzc3MDksIDYuMTA4OTQ2ODE3ODMzMjgxXSwgWzUzLjE3OTM0MDcyOTYxNDA1NCwgNi4xMDQ2MTgzNTgyNjg5NjldLCBbNTMuMTg1NzY0MTEyOTA5NjUsIDYuMDk5NzcyMTE2MjgzMzg1XSwgWzUzLjE5NTc2NTkwMzU1OTQzLCA2LjA4NDA1Mjg5MTM0MTMzOF0sIFs1My4yMDY3MTYwMjM0MzQ5MiwgNi4wNzg1NTgyODc1MTg1MTldLCBbNTMuMjA4NDYzMjUzOTM3MiwgNi4wODQxMDk5ODMxMjg1OThdLCBbNTMuMjEwNjc3NzQyNTMwNjM1LCA2LjA3ODcyMzk2MDQ0OTA4MV0sIFs1My4yMTExNzE0Nzk0NDUxMiwgNi4wODE5MDQ2Njk4MTE1ODRdLCBbNTMuMjEzMTU1MzUwMTE5NDYsIDYuMDgwMTM3Njc4MjM2MDQxXSwgWzUzLjIxNDA4NTc3OTQxNzMyLCA2LjA4MTY5OTc0MTY4MjI4M10sIFs1My4yMTUwMjU5OTQyMjE5MywgNi4wODYyODkwNTA0MDY1MThdLCBbNTMuMjMwMTMyNTUyMzQ5NSwgNi4wMLine truncated
],
"text/plain": [
"<folium.folium.Map at 0x7f2ccd0f04a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for word_index, (word, word_rows) in enumerate(answers.groupby('question_text')):\n",
" m = folium.Map(\n",
" (word_rows['user_lat'].median(), word_rows['user_lng'].median()),\n",
" tiles='stamentoner', zoom_start=10)\n",
"\n",
" for pronunciation, feature_group in pronunciation_bars(\n",
" regions, word_rows,\n",
" region_name_property='gemeente_naam',\n",
" region_name_column='region',\n",
" group_column='answer_text',\n",
" cutoff_percentage=0.1,\n",
" normalize_area=True,\n",
" progress_bar=word_index == 0\n",
" ).items():\n",
" feature_group.add_to(m)\n",
" \n",
" for feature in regions['features']:\n",
" folium.Polygon(\n",
" reverse_latitude_longitude(feature['geometry']['coordinates']),\n",
" fill_color=None, color='#000000'\n",
" ).add_to(m)\n",
"\n",
" folium.map.LayerControl('topright', collapsed=False).add_to(m)\n",
" display(m)\n",
" m.save('../maps/bar-maps/{}.html'.format(word))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import glob\n",
"with open('../maps/bar-maps/index.html', 'w') as f:\n",
" f.write('<html><head></head><body>' + \n",
" '<br/>\\n'.join(\n",
" '\\t<a href=\"{}\">{}<a>'.format(fn, fn[:-5].replace('_', ' '))\n",
" for fn in sorted(\n",
" glob.glob('../maps/bar-maps/*.html')\n",
" )\n",
" for fn in [fn[len('../maps/bar-maps/'):]]\n",
" ) + \"</body></html>\")"
]
}
],
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
+13 -7
View File
@@ -35,15 +35,15 @@
"comboBox_Label": null,
"comboBox_ObjectType": 1,
"heightWidget": {
"comboData": 1,
"comboText": "Absolute value",
"comboData": 101,
"comboText": " \"distance 1\"",
"editText": "0",
"type": 4
},
"labelHeightWidget": {
"comboData": 2,
"comboText": "Height from point",
"editText": "7309.11282486",
"editText": "7500",
"type": 6
},
"radioButton_IntersectingFeatures": true,
@@ -62,12 +62,12 @@
"styleWidget2": {
"comboData": 1,
"comboText": "Fixed value",
"editText": "1000",
"editText": "300",
"type": 1
},
"styleWidget3": {
"comboData": 103,
"comboText": "\"distance1\"",
"comboData": 101,
"comboText": "\"distance 1\"",
"editText": "300",
"type": 1
},
@@ -77,5 +77,11 @@
}
},
"PluginVersion": "1.4.2",
"Template": "3DViewer.html"
"Template": "3DViewer.html",
"WORLD": {
"lineEdit_BaseSize": "100",
"lineEdit_Color": "",
"lineEdit_zFactor": "1.5",
"lineEdit_zShift": "0"
}
}
+172
View File
@@ -0,0 +1,172 @@
import folium
from jupyter_progressbar import ProgressBar
from pygeoif.geometry import mapping
from shapely.geometry.geo import shape, box
from stimmen.cbs import data_file
from html import escape
import numpy as np
from stimmen.latitude_longitude import reverse_latitude_longitude
def get_palette(n, no_black=True, no_white=True):
with open(data_file('data', 'glasbey', '{}_colors.txt'.format(n + no_black + no_white))) as f:
return [
'#%02x%02x%02x' % tuple(int(c) for c in line.replace('\n', '').split(','))
for line in f
if not no_black or line != '0,0,0\n'
if not no_white or line != '255,255,255\n'
]
def colored_name(name, color):
return '<span style=\\"color:{}; \\">{}</span>'.format(color, name)
def region_area_cdf(region_shape, resolution=10000):
xmin, ymin, xmax, ymax = region_shape.bounds
shape_area = region_shape.area
spaces = np.linspace(xmin, xmax, resolution + 1)
return np.array([
box(xmin, ymin, xmax_, ymax).intersection(region_shape).area / shape_area
for xmax_ in spaces
])
# Only slightly faster than region_area_cdf.
# def fast_sliced_shape_areas(region_shape, recursions=13):
# results = np.zeros(2 ** recursions)
# xmin, ymin, xmax, ymax = region_shape.bounds
# total = 0
#
# def f(shape_, xmin, ymin, xmax, ymax, recursions, results_):
# nonlocal total
# shape_ = box(xmin, ymin, xmax, ymax).intersection(shape_)
# if recursions == 0:
# assert results_.shape == (1,)
# results_[0] = shape_.area
# total += shape_.area
# else:
# xmiddle = xmin + (xmax - xmin) / 2
# middle_index = len(results_) // 2
# f(shape_, xmin, ymin, xmiddle, ymax, recursions - 1, results_[:middle_index])
# f(shape_, xmiddle, ymin, xmax, ymax, recursions - 1, results_[middle_index:])
#
# f(region_shape, xmin, ymin, xmax, ymax, recursions, results)
# return results / results.sum() * region_shape.area
def area_adjust_boundaries(region_shape, boundaries, region_cdf_cache=None, resolution=10000):
"""Adjust the boundaries from percentage of the width of a shape, to percentage of the area of a shape"""
if region_cdf_cache is None:
region_cdf_cache = region_area_cdf(region_shape, resolution)
elif not isinstance(region_cdf_cache, np.ndarray):
region_cdf_cache = np.array(region_cdf_cache)
return width_adjust_boundaries(
region_shape,
np.abs(region_cdf_cache[None, :] - boundaries[:, None]).argmin(axis=1) / resolution
)
def width_adjust_boundaries(region_shape, boundaries):
xmin, _, xmax, _ = region_shape.bounds
return boundaries * (xmax - xmin) + xmin
def pronunciation_bars(
regions, dataframe,
region_name_property, region_name_column,
group_column='answer_text',
cutoff_percentage=0.05,
normalize_area=True,
progress_bar=False,
):
# all values of group_column that appear at least cutoff_percentage in one of the regions
relevant_groups = {
group
for region_name, region_rows in dataframe.groupby(region_name_column)
for group, aggregation in region_rows.groupby(
group_column).agg({group_column: len}).iterrows()
if aggregation[group_column] >= cutoff_percentage * len(region_rows)
}
group_to_color = dict(zip(relevant_groups, get_palette(len(relevant_groups))))
group_to_color['other'] = '#ccc'
n_other = len(dataframe) - sum(
sum(dataframe[group_column] == group_value)
for group_value in relevant_groups
)
# Each FeatureGroup represents all polygons (one for each region) of the relevant_groups
feature_groups = {
group_value: folium.FeatureGroup(
name=colored_name(
'{value} ({amount})'.format(value=escape(group_value), amount=amount),
color
),
overlay=True
)
for group_value, color in group_to_color.items()
for amount in [
sum(dataframe[group_column] == group_value)
if group_value != 'other' else
n_other
] # alias
}
progress_bar = ProgressBar if progress_bar else lambda x: x
# for each region, create the bar-polygons.
for feature in progress_bar(regions['features']):
region_name = feature['properties'][region_name_property]
region_rows = dataframe[dataframe[region_name_column] == region_name]
region_shape = shape(feature['geometry'])
_, ymin, _, ymax = region_shape.bounds
group_values_occurrence = {
group_value: aggregation[group_column]
for group_value, aggregation in region_rows.groupby(group_column).agg({group_column: len}).iterrows()
if group_value in relevant_groups
}
group_values_occurrence['other'] = len(region_rows) - sum(group_values_occurrence.values())
group_values, group_occurrences = zip(*sorted(
group_values_occurrence.items(),
key=lambda x: (x[0] == 'other', -x[1])
))
group_percentages = np.array(group_occurrences) / len(region_rows)
group_boundaries = np.cumsum((0,) + group_occurrences) / len(region_rows)
if normalize_area:
if '__region_shape_cdf_cache' not in feature['properties']:
feature['properties']['__region_shape_cdf_cache'] = region_area_cdf(region_shape).tolist()
group_boundaries = area_adjust_boundaries(
region_shape, group_boundaries,
region_cdf_cache=feature['properties']['__region_shape_cdf_cache']
)
else:
group_boundaries = width_adjust_boundaries(region_shape, group_boundaries)
for group_value, percentage, count, left_boundary, right_boundary in zip(
group_values,
group_percentages,
group_occurrences,
group_boundaries[:-1], group_boundaries[1:]
):
if count == 0 or left_boundary == right_boundary:
continue
bar_shape = region_shape.intersection(box(left_boundary, ymin, right_boundary, ymax))
if bar_shape.area == 0:
continue
polygon = folium.Polygon(
reverse_latitude_longitude(mapping(bar_shape)['coordinates']),
fill_color=group_to_color[group_value],
fill_opacity=0.8,
color=None,
popup='{} ({}, {: 3d}%)'.format(group_value, count, int(round(100 * percentage)))
)
polygon.add_to(feature_groups[group_value])
return feature_groups
+38 -1
View File
@@ -1,5 +1,6 @@
from pygeoif.geometry import mapping
from shapely.geometry import shape
from shapely.geometry.point import Point
def merge_features(geojson, condition, aggregate={}):
@@ -40,4 +41,40 @@ def merge_features(geojson, condition, aggregate={}):
'geometry': mapping(union),
'properties': properties
})
return geojson
return geojson
def inject_geojson_regions_into_dataframe(
geojson, dataframe,
latitude_column='latitude', longitude_column='longitude',
region_name_property='name',
region_name_column='region'
):
"""adds a region_name_column column to the dataframe with the region name as specified
in the region_name_property of the geojson, by checking which geojson feature geometrically
contains the longitude and latitude of the dataframe's row. This allows for faster cross
reference between the geojson and the dataframe compared to always checking shape-point
containment when cross referencing. Operates in place."""
shapes = {
feature['properties'][region_name_property]: shape(feature['geometry'])
for feature in geojson['features']
}
def get_region_name(point):
nonlocal shapes
for region_name, region_shape in shapes.items():
if region_shape.contains(point):
return region_name
point_to_region_name = {
(latitude, longitude): get_region_name(point)
for latitude, longitude in set(zip(dataframe[latitude_column], dataframe[longitude_column]))
for point in [Point(longitude, latitude)] # alias
}
dataframe[region_name_column] = [
point_to_region_name[(latitude, longitude)]
for latitude, longitude in zip(dataframe[latitude_column], dataframe[longitude_column])
]
return dataframe