Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Mayer
CircularGreenSimCity
Commits
4ed3f015
Commit
4ed3f015
authored
Jul 22, 2024
by
Eric Duminil
Browse files
Klimabaeume open data
parent
6fed29db
Changes
4
Show whitespace changes
Inline
Side-by-side
python_scripts/parse_wurzburg_open_data/.gitignore
0 → 100644
View file @
4ed3f015
input/*.parquet
\ No newline at end of file
python_scripts/parse_wurzburg_open_data/Parse parquet.ipynb
0 → 100644
View file @
4ed3f015
{
"cells": [
{
"cell_type": "code",
"execution_count": 14,
"id": "761e55bc",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "ccefa7cc",
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "c8c647de",
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_parquet('input/wuerzburg_trees.parquet', engine='fastparquet')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "8ce189f0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>species_german</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" <th>soil_composition</th>\n",
" <th>vol_water_content_30</th>\n",
" <th>vol_water_content_100</th>\n",
" <th>permittivity_30</th>\n",
" <th>permittivity_100</th>\n",
" <th>conductivity_30</th>\n",
" <th>conductivity_100</th>\n",
" <th>usable_field_capacity_30</th>\n",
" <th>usable_field_capacity_100</th>\n",
" <th>temperature_30</th>\n",
" <th>temperature_100</th>\n",
" <th>battery_percentage</th>\n",
" <th>timestamp</th>\n",
" <th>koordinaten</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>23631</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>Stadt-Linde</td>\n",
" <td>49.793440</td>\n",
" <td>9.940730</td>\n",
" <td>Boden Ringpark</td>\n",
" <td>37.0</td>\n",
" <td>27.0</td>\n",
" <td>22.34</td>\n",
" <td>15.17</td>\n",
" <td>19.3</td>\n",
" <td>21.8</td>\n",
" <td>117.647059</td>\n",
" <td>58.823529</td>\n",
" <td>25.06</td>\n",
" <td>23.19</td>\n",
" <td>59.0</td>\n",
" <td>2023-07-12 10:18:26</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00o\\xbb\\xd0\\\\\\xa7\\xe1#@K\\x...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5463.1</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>Ulme New Horizon</td>\n",
" <td>49.796000</td>\n",
" <td>9.932720</td>\n",
" <td>Eigensubstrat Gartenamt</td>\n",
" <td>45.0</td>\n",
" <td>33.0</td>\n",
" <td>30.84</td>\n",
" <td>18.86</td>\n",
" <td>20.9</td>\n",
" <td>0.0</td>\n",
" <td>176.190476</td>\n",
" <td>119.047619</td>\n",
" <td>25.26</td>\n",
" <td>25.12</td>\n",
" <td>56.0</td>\n",
" <td>2023-07-12 10:04:33</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00v\\xa6\\xd0y\\x8d\\xdd#@\\xd9...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>58413</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>Ulme New Horizon</td>\n",
" <td>49.796580</td>\n",
" <td>9.941690</td>\n",
" <td>Boden-Sand-Lehm 4</td>\n",
" <td>22.0</td>\n",
" <td>34.0</td>\n",
" <td>11.81</td>\n",
" <td>20.14</td>\n",
" <td>0.0</td>\n",
" <td>19.1</td>\n",
" <td>55.555556</td>\n",
" <td>122.222222</td>\n",
" <td>26.51</td>\n",
" <td>24.40</td>\n",
" <td>58.0</td>\n",
" <td>2023-07-12 10:57:41</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\xc3\\xf0\\x111%\\xe2#@\\xe7...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>Spitz-Ahorn</td>\n",
" <td>49.782000</td>\n",
" <td>9.956770</td>\n",
" <td>VulkaTree</td>\n",
" <td>44.0</td>\n",
" <td>31.0</td>\n",
" <td>30.32</td>\n",
" <td>17.33</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>139.130435</td>\n",
" <td>82.608696</td>\n",
" <td>24.94</td>\n",
" <td>19.20</td>\n",
" <td>59.0</td>\n",
" <td>2023-07-12 10:47:32</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00}\\x96\\xe7\\xc1\\xdd\\xe9#@j...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5540</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>Stadt-Linde</td>\n",
" <td>49.793180</td>\n",
" <td>9.933190</td>\n",
" <td>Boden-Sand-Lehm 4</td>\n",
" <td>35.0</td>\n",
" <td>36.0</td>\n",
" <td>20.65</td>\n",
" <td>21.61</td>\n",
" <td>19.2</td>\n",
" <td>0.0</td>\n",
" <td>127.777778</td>\n",
" <td>133.333333</td>\n",
" <td>23.13</td>\n",
" <td>19.85</td>\n",
" <td>60.0</td>\n",
" <td>2023-07-12 10:06:59</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\x92\\xe8e\\x14\\xcb\\xdd#@\\...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158720</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" <td>VulkaTree</td>\n",
" <td>59.0</td>\n",
" <td>NaN</td>\n",
" <td>53.11</td>\n",
" <td>NaN</td>\n",
" <td>38.1</td>\n",
" <td>NaN</td>\n",
" <td>137.837838</td>\n",
" <td>NaN</td>\n",
" <td>24.10</td>\n",
" <td>NaN</td>\n",
" <td>57.0</td>\n",
" <td>2024-07-22 10:23:46</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\x96j*<\\x06\\xdf#@.\\xd3\\x...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158721</th>\n",
" <td>5463.1</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>Ulme New Horizon</td>\n",
" <td>49.796000</td>\n",
" <td>9.932720</td>\n",
" <td>Eigensubstrat Gartenamt</td>\n",
" <td>36.0</td>\n",
" <td>33.0</td>\n",
" <td>22.05</td>\n",
" <td>19.29</td>\n",
" <td>19.5</td>\n",
" <td>0.0</td>\n",
" <td>90.322581</td>\n",
" <td>80.645161</td>\n",
" <td>23.42</td>\n",
" <td>21.82</td>\n",
" <td>29.0</td>\n",
" <td>2024-07-22 11:25:45</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00v\\xa6\\xd0y\\x8d\\xdd#@\\xd9...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158722</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" <td>VulkaTree</td>\n",
" <td>59.0</td>\n",
" <td>NaN</td>\n",
" <td>53.06</td>\n",
" <td>NaN</td>\n",
" <td>38.2</td>\n",
" <td>NaN</td>\n",
" <td>137.837838</td>\n",
" <td>NaN</td>\n",
" <td>24.10</td>\n",
" <td>NaN</td>\n",
" <td>57.0</td>\n",
" <td>2024-07-22 11:24:16</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\x96j*<\\x06\\xdf#@.\\xd3\\x...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158723</th>\n",
" <td>Gartenamt_Kontroll_2</td>\n",
" <td>Unbekannt</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.797012</td>\n",
" <td>10.001281</td>\n",
" <td>Eigensubstrat Gartenamt</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.00</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>-25.806452</td>\n",
" <td>NaN</td>\n",
" <td>0.00</td>\n",
" <td>NaN</td>\n",
" <td>77.0</td>\n",
" <td>2024-07-22 11:35:41</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\xf8\\xa7\\x00...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>158724</th>\n",
" <td>65851</td>\n",
" <td>Fraxinus Angustifolia Raywood</td>\n",
" <td>Esche Raywood</td>\n",
" <td>49.791200</td>\n",
" <td>9.927240</td>\n",
" <td>VulkaTree</td>\n",
" <td>49.0</td>\n",
" <td>37.0</td>\n",
" <td>37.43</td>\n",
" <td>22.84</td>\n",
" <td>0.0</td>\n",
" <td>19.8</td>\n",
" <td>110.810811</td>\n",
" <td>78.378378</td>\n",
" <td>25.76</td>\n",
" <td>21.08</td>\n",
" <td>31.0</td>\n",
" <td>2024-07-22 11:35:44</td>\n",
" <td>b'\\x01\\x01\\x00\\x00\\x00\\t\\x16\\x873\\xbf\\xda#@0L\\...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>158725 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin species_german \\\n",
"0 23631 Tilia Cordata Greenspire Stadt-Linde \n",
"1 5463.1 Ulmus New Horizon Ulme New Horizon \n",
"2 58413 Ulmus New Horizon Ulme New Horizon \n",
"3 58753 Acer Platanoides Spitz-Ahorn \n",
"4 5540 Tilia Cordata Greenspire Stadt-Linde \n",
"... ... ... ... \n",
"158720 05_Ersatz_3_7023.2 Unbekannt Unbekannt \n",
"158721 5463.1 Ulmus New Horizon Ulme New Horizon \n",
"158722 05_Ersatz_3_7023.2 Unbekannt Unbekannt \n",
"158723 Gartenamt_Kontroll_2 Unbekannt Unbekannt \n",
"158724 65851 Fraxinus Angustifolia Raywood Esche Raywood \n",
"\n",
" latitude longitude soil_composition vol_water_content_30 \\\n",
"0 49.793440 9.940730 Boden Ringpark 37.0 \n",
"1 49.796000 9.932720 Eigensubstrat Gartenamt 45.0 \n",
"2 49.796580 9.941690 Boden-Sand-Lehm 4 22.0 \n",
"3 49.782000 9.956770 VulkaTree 44.0 \n",
"4 49.793180 9.933190 Boden-Sand-Lehm 4 35.0 \n",
"... ... ... ... ... \n",
"158720 49.791642 9.935594 VulkaTree 59.0 \n",
"158721 49.796000 9.932720 Eigensubstrat Gartenamt 36.0 \n",
"158722 49.791642 9.935594 VulkaTree 59.0 \n",
"158723 49.797012 10.001281 Eigensubstrat Gartenamt 0.0 \n",
"158724 49.791200 9.927240 VulkaTree 49.0 \n",
"\n",
" vol_water_content_100 permittivity_30 permittivity_100 \\\n",
"0 27.0 22.34 15.17 \n",
"1 33.0 30.84 18.86 \n",
"2 34.0 11.81 20.14 \n",
"3 31.0 30.32 17.33 \n",
"4 36.0 20.65 21.61 \n",
"... ... ... ... \n",
"158720 NaN 53.11 NaN \n",
"158721 33.0 22.05 19.29 \n",
"158722 NaN 53.06 NaN \n",
"158723 NaN 0.00 NaN \n",
"158724 37.0 37.43 22.84 \n",
"\n",
" conductivity_30 conductivity_100 usable_field_capacity_30 \\\n",
"0 19.3 21.8 117.647059 \n",
"1 20.9 0.0 176.190476 \n",
"2 0.0 19.1 55.555556 \n",
"3 0.0 0.0 139.130435 \n",
"4 19.2 0.0 127.777778 \n",
"... ... ... ... \n",
"158720 38.1 NaN 137.837838 \n",
"158721 19.5 0.0 90.322581 \n",
"158722 38.2 NaN 137.837838 \n",
"158723 0.0 NaN -25.806452 \n",
"158724 0.0 19.8 110.810811 \n",
"\n",
" usable_field_capacity_100 temperature_30 temperature_100 \\\n",
"0 58.823529 25.06 23.19 \n",
"1 119.047619 25.26 25.12 \n",
"2 122.222222 26.51 24.40 \n",
"3 82.608696 24.94 19.20 \n",
"4 133.333333 23.13 19.85 \n",
"... ... ... ... \n",
"158720 NaN 24.10 NaN \n",
"158721 80.645161 23.42 21.82 \n",
"158722 NaN 24.10 NaN \n",
"158723 NaN 0.00 NaN \n",
"158724 78.378378 25.76 21.08 \n",
"\n",
" battery_percentage timestamp \\\n",
"0 59.0 2023-07-12 10:18:26 \n",
"1 56.0 2023-07-12 10:04:33 \n",
"2 58.0 2023-07-12 10:57:41 \n",
"3 59.0 2023-07-12 10:47:32 \n",
"4 60.0 2023-07-12 10:06:59 \n",
"... ... ... \n",
"158720 57.0 2024-07-22 10:23:46 \n",
"158721 29.0 2024-07-22 11:25:45 \n",
"158722 57.0 2024-07-22 11:24:16 \n",
"158723 77.0 2024-07-22 11:35:41 \n",
"158724 31.0 2024-07-22 11:35:44 \n",
"\n",
" koordinaten \n",
"0 b'\\x01\\x01\\x00\\x00\\x00o\\xbb\\xd0\\\\\\xa7\\xe1#@K\\x... \n",
"1 b'\\x01\\x01\\x00\\x00\\x00v\\xa6\\xd0y\\x8d\\xdd#@\\xd9... \n",
"2 b'\\x01\\x01\\x00\\x00\\x00\\xc3\\xf0\\x111%\\xe2#@\\xe7... \n",
"3 b'\\x01\\x01\\x00\\x00\\x00}\\x96\\xe7\\xc1\\xdd\\xe9#@j... \n",
"4 b'\\x01\\x01\\x00\\x00\\x00\\x92\\xe8e\\x14\\xcb\\xdd#@\\... \n",
"... ... \n",
"158720 b'\\x01\\x01\\x00\\x00\\x00\\x96j*<\\x06\\xdf#@.\\xd3\\x... \n",
"158721 b'\\x01\\x01\\x00\\x00\\x00v\\xa6\\xd0y\\x8d\\xdd#@\\xd9... \n",
"158722 b'\\x01\\x01\\x00\\x00\\x00\\x96j*<\\x06\\xdf#@.\\xd3\\x... \n",
"158723 b'\\x01\\x01\\x00\\x00\\x00\\x01\\x00\\x00\\xf8\\xa7\\x00... \n",
"158724 b'\\x01\\x01\\x00\\x00\\x00\\t\\x16\\x873\\xbf\\xda#@0L\\... \n",
"\n",
"[158725 rows x 19 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "57133341",
"metadata": {},
"outputs": [],
"source": [
"interesting_columns = ['tree_number', 'species_latin', 'latitude', 'longitude']"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "4850e91c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.782000</td>\n",
" <td>9.956770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>425</th>\n",
" <td>06_Ersatz_01_58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.781994</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10702</th>\n",
" <td>06_Ersatz_01_58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.781994</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"3 58753 Acer Platanoides 49.782000 9.956770\n",
"425 06_Ersatz_01_58753 Acer Platanoides 49.781994 9.959306\n",
"10702 06_Ersatz_01_58753 Acer Platanoides 49.781994 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>65851</td>\n",
" <td>Fraxinus Angustifolia Raywood</td>\n",
" <td>49.7912</td>\n",
" <td>9.92724</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"7 65851 Fraxinus Angustifolia Raywood 49.7912 9.92724"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>28816</th>\n",
" <td>54838</td>\n",
" <td>Fraxinus Ornus</td>\n",
" <td>49.77794</td>\n",
" <td>9.93879</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"28816 54838 Fraxinus Ornus 49.77794 9.93879"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11925</th>\n",
" <td>8971.1</td>\n",
" <td>Gleditsia Triacanthos Inermis</td>\n",
" <td>49.79037</td>\n",
" <td>9.92953</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11925 8971.1 Gleditsia Triacanthos Inermis 49.79037 9.92953"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>36312</td>\n",
" <td>Robinia Pseudoacacia</td>\n",
" <td>49.7913</td>\n",
" <td>9.96101</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"9 36312 Robinia Pseudoacacia 49.7913 9.96101"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>54976</td>\n",
" <td>Sophora Japonica</td>\n",
" <td>49.78955</td>\n",
" <td>9.93318</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"5 54976 Sophora Japonica 49.78955 9.93318"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>23631</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>49.79344</td>\n",
" <td>9.94073</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5540</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>49.79318</td>\n",
" <td>9.93319</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"0 23631 Tilia Cordata Greenspire 49.79344 9.94073\n",
"4 5540 Tilia Cordata Greenspire 49.79318 9.93319"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.78558</td>\n",
" <td>9.959380</td>\n",
" </tr>\n",
" <tr>\n",
" <th>424</th>\n",
" <td>01_Ersatz_2_58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.78550</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10455</th>\n",
" <td>01_Ersatz_2_58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.78550</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"30 58762 Tilia Tomentosa Brabant 49.78558 9.959380\n",
"424 01_Ersatz_2_58762 Tilia Tomentosa Brabant 49.78550 9.959306\n",
"10455 01_Ersatz_2_58762 Tilia Tomentosa Brabant 49.78550 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>5445</td>\n",
" <td>Tilia Vulgaris Pallida</td>\n",
" <td>49.79619</td>\n",
" <td>9.93103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9075</th>\n",
" <td>42374</td>\n",
" <td>Tilia Vulgaris Pallida</td>\n",
" <td>49.79761</td>\n",
" <td>9.93270</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"8 5445 Tilia Vulgaris Pallida 49.79619 9.93103\n",
"9075 42374 Tilia Vulgaris Pallida 49.79761 9.93270"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5463.1</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>49.79600</td>\n",
" <td>9.93272</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>58413</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>49.79658</td>\n",
" <td>9.94169</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"1 5463.1 Ulmus New Horizon 49.79600 9.93272\n",
"2 58413 Ulmus New Horizon 49.79658 9.94169"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11914</th>\n",
" <td>56822</td>\n",
" <td>Ulmus Rebona</td>\n",
" <td>49.78703</td>\n",
" <td>9.92758</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11914 56822 Ulmus Rebona 49.78703 9.92758"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791660</td>\n",
" <td>9.935570</td>\n",
" </tr>\n",
" <tr>\n",
" <th>430</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10459</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10464</th>\n",
" <td>Gartenamt_Kontroll_2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.797012</td>\n",
" <td>10.001281</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10465</th>\n",
" <td>Gartenamt_Kontroll_1</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.796866</td>\n",
" <td>10.001541</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11431</th>\n",
" <td>Gartenamt_Kontroll_2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.797012</td>\n",
" <td>10.001281</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11446</th>\n",
" <td>Gartenamt_Kontroll_1</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.796866</td>\n",
" <td>10.001541</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10 7023.2 Unbekannt 49.791660 9.935570\n",
"430 05_Ersatz_3_7023.2 Unbekannt 49.791642 9.935594\n",
"10459 05_Ersatz_3_7023.2 Unbekannt 49.791642 9.935594\n",
"10464 Gartenamt_Kontroll_2 Unbekannt 49.797012 10.001281\n",
"10465 Gartenamt_Kontroll_1 Unbekannt 49.796866 10.001541\n",
"11431 Gartenamt_Kontroll_2 Unbekannt 49.797012 10.001281\n",
"11446 Gartenamt_Kontroll_1 Unbekannt 49.796866 10.001541"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: []\n",
"Index: []"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"species = 'species_latin'\n",
"coordinates = ['latitude', 'longitude']\n",
"df[interesting_columns].drop_duplicates().groupby(species).apply(display)"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "beeb0f88",
"metadata": {},
"outputs": [],
"source": [
"lat_min, lon_min, lat_max, lon_max = df[coordinates].agg(['min', 'max']).stack().values"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "4bdd0adb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>28816</th>\n",
" <td>54838</td>\n",
" <td>Fraxinus Ornus</td>\n",
" <td>49.77794</td>\n",
" <td>9.93879</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"28816 54838 Fraxinus Ornus 49.77794 9.93879"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>425</th>\n",
" <td>06_Ersatz_01_58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.781994</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"425 06_Ersatz_01_58753 Acer Platanoides 49.781994 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10702</th>\n",
" <td>06_Ersatz_01_58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.781994</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10702 06_Ersatz_01_58753 Acer Platanoides 49.781994 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>58753</td>\n",
" <td>Acer Platanoides</td>\n",
" <td>49.782</td>\n",
" <td>9.95677</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"3 58753 Acer Platanoides 49.782 9.95677"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>424</th>\n",
" <td>01_Ersatz_2_58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.7855</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"424 01_Ersatz_2_58762 Tilia Tomentosa Brabant 49.7855 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10455</th>\n",
" <td>01_Ersatz_2_58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.7855</td>\n",
" <td>9.959306</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10455 01_Ersatz_2_58762 Tilia Tomentosa Brabant 49.7855 9.959306"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>58762</td>\n",
" <td>Tilia Tomentosa Brabant</td>\n",
" <td>49.78558</td>\n",
" <td>9.95938</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"30 58762 Tilia Tomentosa Brabant 49.78558 9.95938"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11914</th>\n",
" <td>56822</td>\n",
" <td>Ulmus Rebona</td>\n",
" <td>49.78703</td>\n",
" <td>9.92758</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11914 56822 Ulmus Rebona 49.78703 9.92758"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>54976</td>\n",
" <td>Sophora Japonica</td>\n",
" <td>49.78955</td>\n",
" <td>9.93318</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"5 54976 Sophora Japonica 49.78955 9.93318"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11925</th>\n",
" <td>8971.1</td>\n",
" <td>Gleditsia Triacanthos Inermis</td>\n",
" <td>49.79037</td>\n",
" <td>9.92953</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11925 8971.1 Gleditsia Triacanthos Inermis 49.79037 9.92953"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>65851</td>\n",
" <td>Fraxinus Angustifolia Raywood</td>\n",
" <td>49.7912</td>\n",
" <td>9.92724</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"7 65851 Fraxinus Angustifolia Raywood 49.7912 9.92724"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>36312</td>\n",
" <td>Robinia Pseudoacacia</td>\n",
" <td>49.7913</td>\n",
" <td>9.96101</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"9 36312 Robinia Pseudoacacia 49.7913 9.96101"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>430</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"430 05_Ersatz_3_7023.2 Unbekannt 49.791642 9.935594"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10459</th>\n",
" <td>05_Ersatz_3_7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.791642</td>\n",
" <td>9.935594</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10459 05_Ersatz_3_7023.2 Unbekannt 49.791642 9.935594"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>7023.2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.79166</td>\n",
" <td>9.93557</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10 7023.2 Unbekannt 49.79166 9.93557"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5540</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>49.79318</td>\n",
" <td>9.93319</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"4 5540 Tilia Cordata Greenspire 49.79318 9.93319"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>23631</td>\n",
" <td>Tilia Cordata Greenspire</td>\n",
" <td>49.79344</td>\n",
" <td>9.94073</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"0 23631 Tilia Cordata Greenspire 49.79344 9.94073"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5463.1</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>49.796</td>\n",
" <td>9.93272</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"1 5463.1 Ulmus New Horizon 49.796 9.93272"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>5445</td>\n",
" <td>Tilia Vulgaris Pallida</td>\n",
" <td>49.79619</td>\n",
" <td>9.93103</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"8 5445 Tilia Vulgaris Pallida 49.79619 9.93103"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>58413</td>\n",
" <td>Ulmus New Horizon</td>\n",
" <td>49.79658</td>\n",
" <td>9.94169</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"2 58413 Ulmus New Horizon 49.79658 9.94169"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11446</th>\n",
" <td>Gartenamt_Kontroll_1</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.796866</td>\n",
" <td>10.001541</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11446 Gartenamt_Kontroll_1 Unbekannt 49.796866 10.001541"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10465</th>\n",
" <td>Gartenamt_Kontroll_1</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.796866</td>\n",
" <td>10.001541</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10465 Gartenamt_Kontroll_1 Unbekannt 49.796866 10.001541"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10464</th>\n",
" <td>Gartenamt_Kontroll_2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.797012</td>\n",
" <td>10.001281</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"10464 Gartenamt_Kontroll_2 Unbekannt 49.797012 10.001281"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>11431</th>\n",
" <td>Gartenamt_Kontroll_2</td>\n",
" <td>Unbekannt</td>\n",
" <td>49.797012</td>\n",
" <td>10.001281</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"11431 Gartenamt_Kontroll_2 Unbekannt 49.797012 10.001281"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_number</th>\n",
" <th>species_latin</th>\n",
" <th>latitude</th>\n",
" <th>longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>9075</th>\n",
" <td>42374</td>\n",
" <td>Tilia Vulgaris Pallida</td>\n",
" <td>49.79761</td>\n",
" <td>9.9327</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_number species_latin latitude longitude\n",
"9075 42374 Tilia Vulgaris Pallida 49.79761 9.9327"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: []\n",
"Index: []"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[interesting_columns].drop_duplicates().groupby(coordinates).apply(display)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "3c5a8c58",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
" \n",
" <meta http-equiv="content-type" content="text/html; charset=UTF-8" />\n",
" \n",
" <script>\n",
" L_NO_TOUCH = false;\n",
" L_DISABLE_3D = false;\n",
" </script>\n",
" \n",
" <style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>\n",
" <style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>\n",
" <script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>\n",
" <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>\n",
" <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>\n",
" <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"/>\n",
" <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css"/>\n",
" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>\n",
" \n",
" <meta name="viewport" content="width=device-width,\n",
" initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n",
" <style>\n",
" #map_9350a3888a622f76c51f41659ecb4d59 {\n",
" position: relative;\n",
" width: 100.0%;\n",
" height: 100.0%;\n",
" left: 0.0%;\n",
" top: 0.0%;\n",
" }\n",
" .leaflet-container { font-size: 1rem; }\n",
" </style>\n",
" \n",
"</head>\n",
"<body>\n",
" \n",
" \n",
" <div class="folium-map" id="map_9350a3888a622f76c51f41659ecb4d59" ></div>\n",
" \n",
"</body>\n",
"<script>\n",
" \n",
" \n",
" var map_9350a3888a622f76c51f41659ecb4d59 = L.map(\n",
" "map_9350a3888a622f76c51f41659ecb4d59",\n",
" {\n",
" center: [0.0, 0.0],\n",
" crs: L.CRS.EPSG3857,\n",
" zoom: 1,\n",
" zoomControl: true,\n",
" preferCanvas: false,\n",
" }\n",
" );\n",
"\n",
" \n",
"\n",
" \n",
" \n",
" var tile_layer_e730a0e2cfba360def341ce87c82f098 = L.tileLayer(\n",
" "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n",
" {"attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}\n",
" );\n",
" \n",
" \n",
" tile_layer_e730a0e2cfba360def341ce87c82f098.addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" map_9350a3888a622f76c51f41659ecb4d59.fitBounds(\n",
" [[49.77794, 9.92724], [49.79761, 10.001541255042]],\n",
" {}\n",
" );\n",
" \n",
" \n",
" var circle_ea28cc9a57777dd26a4df3528fd52638 = L.circle(\n",
" [49.782, 9.95677],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_d8c1b3dc1b2a51494525dc09eaea5ab3 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_a439d0973c0b7c391ee348033b8c6ab0 = $(`<div id="html_a439d0973c0b7c391ee348033b8c6ab0" style="width: 100.0%; height: 100.0%;">Tree #58753 (Acer Platanoides)</div>`)[0];\n",
" popup_d8c1b3dc1b2a51494525dc09eaea5ab3.setContent(html_a439d0973c0b7c391ee348033b8c6ab0);\n",
" \n",
" \n",
"\n",
" circle_ea28cc9a57777dd26a4df3528fd52638.bindPopup(popup_d8c1b3dc1b2a51494525dc09eaea5ab3)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_ea28cc9a57777dd26a4df3528fd52638.bindTooltip(\n",
" `<div>\n",
" Acer Platanoides\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_b2c2e006a1fedeaf02b42a85a50b3381 = L.circle(\n",
" [49.7819944, 9.95930555555555],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_d4358bfa5acf13e12899c537b54a71fc = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_19ef5186c4bf5ced7547d168caa615db = $(`<div id="html_19ef5186c4bf5ced7547d168caa615db" style="width: 100.0%; height: 100.0%;">Tree #06_Ersatz_01_58753 (Acer Platanoides)</div>`)[0];\n",
" popup_d4358bfa5acf13e12899c537b54a71fc.setContent(html_19ef5186c4bf5ced7547d168caa615db);\n",
" \n",
" \n",
"\n",
" circle_b2c2e006a1fedeaf02b42a85a50b3381.bindPopup(popup_d4358bfa5acf13e12899c537b54a71fc)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_b2c2e006a1fedeaf02b42a85a50b3381.bindTooltip(\n",
" `<div>\n",
" Acer Platanoides\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_668cbc5761ee18877a3f9e69e8ddc9c4 = L.circle(\n",
" [49.7819944, 9.959305555555554],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_be697d7e3b2adb96871ac0c46f875bbc = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_ac8d2deb4777bfd9e303e70c4986d1d9 = $(`<div id="html_ac8d2deb4777bfd9e303e70c4986d1d9" style="width: 100.0%; height: 100.0%;">Tree #06_Ersatz_01_58753 (Acer Platanoides)</div>`)[0];\n",
" popup_be697d7e3b2adb96871ac0c46f875bbc.setContent(html_ac8d2deb4777bfd9e303e70c4986d1d9);\n",
" \n",
" \n",
"\n",
" circle_668cbc5761ee18877a3f9e69e8ddc9c4.bindPopup(popup_be697d7e3b2adb96871ac0c46f875bbc)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_668cbc5761ee18877a3f9e69e8ddc9c4.bindTooltip(\n",
" `<div>\n",
" Acer Platanoides\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_8f7d91dedde081e67e27b5bb0baac0d1 = L.circle(\n",
" [49.7912, 9.92724],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_b5b8840309b53ca4aad91c279e45fa95 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_4d5964f703e01b0cb0843e672ce6b131 = $(`<div id="html_4d5964f703e01b0cb0843e672ce6b131" style="width: 100.0%; height: 100.0%;">Tree #65851 (Fraxinus Angustifolia Raywood)</div>`)[0];\n",
" popup_b5b8840309b53ca4aad91c279e45fa95.setContent(html_4d5964f703e01b0cb0843e672ce6b131);\n",
" \n",
" \n",
"\n",
" circle_8f7d91dedde081e67e27b5bb0baac0d1.bindPopup(popup_b5b8840309b53ca4aad91c279e45fa95)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_8f7d91dedde081e67e27b5bb0baac0d1.bindTooltip(\n",
" `<div>\n",
" Fraxinus Angustifolia Raywood\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_d8952cc66cf18c3ebb5fdec27e8674a2 = L.circle(\n",
" [49.77794, 9.93879],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_8643cab26b4671b2180ad4092e0fbc5a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_a3b94cb3790885a24ca06582ed3f4906 = $(`<div id="html_a3b94cb3790885a24ca06582ed3f4906" style="width: 100.0%; height: 100.0%;">Tree #54838 (Fraxinus Ornus)</div>`)[0];\n",
" popup_8643cab26b4671b2180ad4092e0fbc5a.setContent(html_a3b94cb3790885a24ca06582ed3f4906);\n",
" \n",
" \n",
"\n",
" circle_d8952cc66cf18c3ebb5fdec27e8674a2.bindPopup(popup_8643cab26b4671b2180ad4092e0fbc5a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_d8952cc66cf18c3ebb5fdec27e8674a2.bindTooltip(\n",
" `<div>\n",
" Fraxinus Ornus\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_403f610f5abe026bddeef85ed3e8e9de = L.circle(\n",
" [49.79037, 9.92953],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_895ed01b029ab543640d96a0e540efb7 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_2057aa5403357a7ebf54be60f9596bd4 = $(`<div id="html_2057aa5403357a7ebf54be60f9596bd4" style="width: 100.0%; height: 100.0%;">Tree #8971.1 (Gleditsia Triacanthos Inermis)</div>`)[0];\n",
" popup_895ed01b029ab543640d96a0e540efb7.setContent(html_2057aa5403357a7ebf54be60f9596bd4);\n",
" \n",
" \n",
"\n",
" circle_403f610f5abe026bddeef85ed3e8e9de.bindPopup(popup_895ed01b029ab543640d96a0e540efb7)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_403f610f5abe026bddeef85ed3e8e9de.bindTooltip(\n",
" `<div>\n",
" Gleditsia Triacanthos Inermis\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_e39f46feedcdd258e5744a7ff2e5ccd9 = L.circle(\n",
" [49.7913, 9.96101],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_baa2bafe62d48519181ef79a8000477d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_3fea989b3fe5cfcdb0a63bec892ad565 = $(`<div id="html_3fea989b3fe5cfcdb0a63bec892ad565" style="width: 100.0%; height: 100.0%;">Tree #36312 (Robinia Pseudoacacia)</div>`)[0];\n",
" popup_baa2bafe62d48519181ef79a8000477d.setContent(html_3fea989b3fe5cfcdb0a63bec892ad565);\n",
" \n",
" \n",
"\n",
" circle_e39f46feedcdd258e5744a7ff2e5ccd9.bindPopup(popup_baa2bafe62d48519181ef79a8000477d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_e39f46feedcdd258e5744a7ff2e5ccd9.bindTooltip(\n",
" `<div>\n",
" Robinia Pseudoacacia\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_53ba20bc0fb5f1d74c0137f11b8df8e6 = L.circle(\n",
" [49.78955, 9.93318],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_06031e54c430532815d946896a7dfe5a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_835e48c2edc970005abc13797cdf3c59 = $(`<div id="html_835e48c2edc970005abc13797cdf3c59" style="width: 100.0%; height: 100.0%;">Tree #54976 (Sophora Japonica)</div>`)[0];\n",
" popup_06031e54c430532815d946896a7dfe5a.setContent(html_835e48c2edc970005abc13797cdf3c59);\n",
" \n",
" \n",
"\n",
" circle_53ba20bc0fb5f1d74c0137f11b8df8e6.bindPopup(popup_06031e54c430532815d946896a7dfe5a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_53ba20bc0fb5f1d74c0137f11b8df8e6.bindTooltip(\n",
" `<div>\n",
" Sophora Japonica\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_5c857d1cacf2f1e205d922f3cb964878 = L.circle(\n",
" [49.79344, 9.94073],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_b825f0c6fc55a98d7b4d1de5a8555f27 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_44a82dedf8a07f7a16111a7edcb96d71 = $(`<div id="html_44a82dedf8a07f7a16111a7edcb96d71" style="width: 100.0%; height: 100.0%;">Tree #23631 (Tilia Cordata Greenspire)</div>`)[0];\n",
" popup_b825f0c6fc55a98d7b4d1de5a8555f27.setContent(html_44a82dedf8a07f7a16111a7edcb96d71);\n",
" \n",
" \n",
"\n",
" circle_5c857d1cacf2f1e205d922f3cb964878.bindPopup(popup_b825f0c6fc55a98d7b4d1de5a8555f27)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_5c857d1cacf2f1e205d922f3cb964878.bindTooltip(\n",
" `<div>\n",
" Tilia Cordata Greenspire\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_4b14b01a96c0b4d2a4677be9de8c39f9 = L.circle(\n",
" [49.79318, 9.93319],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_d37dd1a7cacdf26a2d50333ce238cb4d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_d18af1321180e898d7c428b41bd29111 = $(`<div id="html_d18af1321180e898d7c428b41bd29111" style="width: 100.0%; height: 100.0%;">Tree #5540 (Tilia Cordata Greenspire)</div>`)[0];\n",
" popup_d37dd1a7cacdf26a2d50333ce238cb4d.setContent(html_d18af1321180e898d7c428b41bd29111);\n",
" \n",
" \n",
"\n",
" circle_4b14b01a96c0b4d2a4677be9de8c39f9.bindPopup(popup_d37dd1a7cacdf26a2d50333ce238cb4d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_4b14b01a96c0b4d2a4677be9de8c39f9.bindTooltip(\n",
" `<div>\n",
" Tilia Cordata Greenspire\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_1bb201b055a5094e321ddfcee8e9ad16 = L.circle(\n",
" [49.78558, 9.95938],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_e413cf53cca57f73252427cb8b10d007 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_ddd9e202b0044225cdf3f138ba12a0ee = $(`<div id="html_ddd9e202b0044225cdf3f138ba12a0ee" style="width: 100.0%; height: 100.0%;">Tree #58762 (Tilia Tomentosa Brabant)</div>`)[0];\n",
" popup_e413cf53cca57f73252427cb8b10d007.setContent(html_ddd9e202b0044225cdf3f138ba12a0ee);\n",
" \n",
" \n",
"\n",
" circle_1bb201b055a5094e321ddfcee8e9ad16.bindPopup(popup_e413cf53cca57f73252427cb8b10d007)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_1bb201b055a5094e321ddfcee8e9ad16.bindTooltip(\n",
" `<div>\n",
" Tilia Tomentosa Brabant\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_aed21e5a4bd8f247a77567dc4905fb73 = L.circle(\n",
" [49.7855, 9.95930555555555],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_503a093b6383c22b8f72c33c38d18fd9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_b821e16036377d0890d411ee13e1fc8d = $(`<div id="html_b821e16036377d0890d411ee13e1fc8d" style="width: 100.0%; height: 100.0%;">Tree #01_Ersatz_2_58762 (Tilia Tomentosa Brabant)</div>`)[0];\n",
" popup_503a093b6383c22b8f72c33c38d18fd9.setContent(html_b821e16036377d0890d411ee13e1fc8d);\n",
" \n",
" \n",
"\n",
" circle_aed21e5a4bd8f247a77567dc4905fb73.bindPopup(popup_503a093b6383c22b8f72c33c38d18fd9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_aed21e5a4bd8f247a77567dc4905fb73.bindTooltip(\n",
" `<div>\n",
" Tilia Tomentosa Brabant\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_c8f1414d3ba765a2a5e1f0f353a86444 = L.circle(\n",
" [49.7855, 9.959305555555554],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_22cbcacb41d893c3d9d73c1f6e8544f9 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_de59e13478de41be5c75ff6c54322e0c = $(`<div id="html_de59e13478de41be5c75ff6c54322e0c" style="width: 100.0%; height: 100.0%;">Tree #01_Ersatz_2_58762 (Tilia Tomentosa Brabant)</div>`)[0];\n",
" popup_22cbcacb41d893c3d9d73c1f6e8544f9.setContent(html_de59e13478de41be5c75ff6c54322e0c);\n",
" \n",
" \n",
"\n",
" circle_c8f1414d3ba765a2a5e1f0f353a86444.bindPopup(popup_22cbcacb41d893c3d9d73c1f6e8544f9)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_c8f1414d3ba765a2a5e1f0f353a86444.bindTooltip(\n",
" `<div>\n",
" Tilia Tomentosa Brabant\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_2d372fac7381cf287a95a4d8832b0401 = L.circle(\n",
" [49.79619, 9.93103],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_de929362bc966a48f455ea770c0c78a1 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_990b94cda0ee658efb3b391b396a6b95 = $(`<div id="html_990b94cda0ee658efb3b391b396a6b95" style="width: 100.0%; height: 100.0%;">Tree #5445 (Tilia Vulgaris Pallida)</div>`)[0];\n",
" popup_de929362bc966a48f455ea770c0c78a1.setContent(html_990b94cda0ee658efb3b391b396a6b95);\n",
" \n",
" \n",
"\n",
" circle_2d372fac7381cf287a95a4d8832b0401.bindPopup(popup_de929362bc966a48f455ea770c0c78a1)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_2d372fac7381cf287a95a4d8832b0401.bindTooltip(\n",
" `<div>\n",
" Tilia Vulgaris Pallida\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_3921ae83b6176028534ac2b6eab39555 = L.circle(\n",
" [49.79761, 9.9327],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_b1909ef0e7c5662619a2c8dd0d35a26c = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_12ad246dc3cc894728a8812e3cd7dd24 = $(`<div id="html_12ad246dc3cc894728a8812e3cd7dd24" style="width: 100.0%; height: 100.0%;">Tree #42374 (Tilia Vulgaris Pallida)</div>`)[0];\n",
" popup_b1909ef0e7c5662619a2c8dd0d35a26c.setContent(html_12ad246dc3cc894728a8812e3cd7dd24);\n",
" \n",
" \n",
"\n",
" circle_3921ae83b6176028534ac2b6eab39555.bindPopup(popup_b1909ef0e7c5662619a2c8dd0d35a26c)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_3921ae83b6176028534ac2b6eab39555.bindTooltip(\n",
" `<div>\n",
" Tilia Vulgaris Pallida\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_6ba5aee017e71e571b295b67d4a5eb0b = L.circle(\n",
" [49.796, 9.93272],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_54ba3977dbb3a41fa16871e5984e251d = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_e27de976c825c564e8e3d76e09be6bae = $(`<div id="html_e27de976c825c564e8e3d76e09be6bae" style="width: 100.0%; height: 100.0%;">Tree #5463.1 (Ulmus New Horizon)</div>`)[0];\n",
" popup_54ba3977dbb3a41fa16871e5984e251d.setContent(html_e27de976c825c564e8e3d76e09be6bae);\n",
" \n",
" \n",
"\n",
" circle_6ba5aee017e71e571b295b67d4a5eb0b.bindPopup(popup_54ba3977dbb3a41fa16871e5984e251d)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_6ba5aee017e71e571b295b67d4a5eb0b.bindTooltip(\n",
" `<div>\n",
" Ulmus New Horizon\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_004946da88b344ecddb3b7b29a587b4a = L.circle(\n",
" [49.79658, 9.94169],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_ab9b46bfbb79bfd6eee1fb8bf865ba7c = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_4a1650eece60ea4f963347b163284a27 = $(`<div id="html_4a1650eece60ea4f963347b163284a27" style="width: 100.0%; height: 100.0%;">Tree #58413 (Ulmus New Horizon)</div>`)[0];\n",
" popup_ab9b46bfbb79bfd6eee1fb8bf865ba7c.setContent(html_4a1650eece60ea4f963347b163284a27);\n",
" \n",
" \n",
"\n",
" circle_004946da88b344ecddb3b7b29a587b4a.bindPopup(popup_ab9b46bfbb79bfd6eee1fb8bf865ba7c)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_004946da88b344ecddb3b7b29a587b4a.bindTooltip(\n",
" `<div>\n",
" Ulmus New Horizon\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_809236999a55e862c41e3d63dee0f6b2 = L.circle(\n",
" [49.78703, 9.92758],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_4858d40b439aecccc10152462d310b39 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_80f87f1557c87ed6a72a0f03d66f0182 = $(`<div id="html_80f87f1557c87ed6a72a0f03d66f0182" style="width: 100.0%; height: 100.0%;">Tree #56822 (Ulmus Rebona)</div>`)[0];\n",
" popup_4858d40b439aecccc10152462d310b39.setContent(html_80f87f1557c87ed6a72a0f03d66f0182);\n",
" \n",
" \n",
"\n",
" circle_809236999a55e862c41e3d63dee0f6b2.bindPopup(popup_4858d40b439aecccc10152462d310b39)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_809236999a55e862c41e3d63dee0f6b2.bindTooltip(\n",
" `<div>\n",
" Ulmus Rebona\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_0f95f8d24e711f55a06359f26e522118 = L.circle(\n",
" [49.79166, 9.93557],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_240c7853a979ba3818ae400f94e6ec2e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_eb79e21750db4c72910558e354e28822 = $(`<div id="html_eb79e21750db4c72910558e354e28822" style="width: 100.0%; height: 100.0%;">Tree #7023.2 (Unbekannt)</div>`)[0];\n",
" popup_240c7853a979ba3818ae400f94e6ec2e.setContent(html_eb79e21750db4c72910558e354e28822);\n",
" \n",
" \n",
"\n",
" circle_0f95f8d24e711f55a06359f26e522118.bindPopup(popup_240c7853a979ba3818ae400f94e6ec2e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_0f95f8d24e711f55a06359f26e522118.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_72ea4d2b91d056875cd83d3fed17b2ba = L.circle(\n",
" [49.7916417, 9.93559444444444],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_6aadafb210526a2be4f4d1b2183ef18a = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_e8511f0f30dda09f0520c9543b68c3e1 = $(`<div id="html_e8511f0f30dda09f0520c9543b68c3e1" style="width: 100.0%; height: 100.0%;">Tree #05_Ersatz_3_7023.2 (Unbekannt)</div>`)[0];\n",
" popup_6aadafb210526a2be4f4d1b2183ef18a.setContent(html_e8511f0f30dda09f0520c9543b68c3e1);\n",
" \n",
" \n",
"\n",
" circle_72ea4d2b91d056875cd83d3fed17b2ba.bindPopup(popup_6aadafb210526a2be4f4d1b2183ef18a)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_72ea4d2b91d056875cd83d3fed17b2ba.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_964b8134498b159ca641cef170534d77 = L.circle(\n",
" [49.7916417, 9.935594444444444],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_f1887b6b1fa6227fcc7d9b551bc24adb = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_22ca8ae52d3d72439f997212668bd3b2 = $(`<div id="html_22ca8ae52d3d72439f997212668bd3b2" style="width: 100.0%; height: 100.0%;">Tree #05_Ersatz_3_7023.2 (Unbekannt)</div>`)[0];\n",
" popup_f1887b6b1fa6227fcc7d9b551bc24adb.setContent(html_22ca8ae52d3d72439f997212668bd3b2);\n",
" \n",
" \n",
"\n",
" circle_964b8134498b159ca641cef170534d77.bindPopup(popup_f1887b6b1fa6227fcc7d9b551bc24adb)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_964b8134498b159ca641cef170534d77.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_c2477b03a63427736f65c61685b71281 = L.circle(\n",
" [49.79701159928018, 10.001281499862673],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_15efaec90a2aa5220ec22da8f3f3d0a5 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_eea5a79ba849f45cb9e5bc0485f9799f = $(`<div id="html_eea5a79ba849f45cb9e5bc0485f9799f" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_2 (Unbekannt)</div>`)[0];\n",
" popup_15efaec90a2aa5220ec22da8f3f3d0a5.setContent(html_eea5a79ba849f45cb9e5bc0485f9799f);\n",
" \n",
" \n",
"\n",
" circle_c2477b03a63427736f65c61685b71281.bindPopup(popup_15efaec90a2aa5220ec22da8f3f3d0a5)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_c2477b03a63427736f65c61685b71281.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_26ad304fa48d173bc8c0605290ca57fc = L.circle(\n",
" [49.796866164882324, 10.001541255041959],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_7072c6eb8b56a86d12ea0b6792331f56 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_0e01ca4880ceabd52bfca72f9b3607eb = $(`<div id="html_0e01ca4880ceabd52bfca72f9b3607eb" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_1 (Unbekannt)</div>`)[0];\n",
" popup_7072c6eb8b56a86d12ea0b6792331f56.setContent(html_0e01ca4880ceabd52bfca72f9b3607eb);\n",
" \n",
" \n",
"\n",
" circle_26ad304fa48d173bc8c0605290ca57fc.bindPopup(popup_7072c6eb8b56a86d12ea0b6792331f56)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_26ad304fa48d173bc8c0605290ca57fc.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_e65fed9d6ce2e2be0a2a692d4aaeb959 = L.circle(\n",
" [49.7970115992802, 10.0012814998627],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_9927432db8fb63e92bf589c6fdf23e7f = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_dfde0d309a3c74a36614f7e6449a1d46 = $(`<div id="html_dfde0d309a3c74a36614f7e6449a1d46" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_2 (Unbekannt)</div>`)[0];\n",
" popup_9927432db8fb63e92bf589c6fdf23e7f.setContent(html_dfde0d309a3c74a36614f7e6449a1d46);\n",
" \n",
" \n",
"\n",
" circle_e65fed9d6ce2e2be0a2a692d4aaeb959.bindPopup(popup_9927432db8fb63e92bf589c6fdf23e7f)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_e65fed9d6ce2e2be0a2a692d4aaeb959.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
" \n",
" var circle_dcfd774db6aa63b872f32a7bc6ba2721 = L.circle(\n",
" [49.7968661648823, 10.001541255042],\n",
" {"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}\n",
" ).addTo(map_9350a3888a622f76c51f41659ecb4d59);\n",
" \n",
" \n",
" var popup_8cfae5477ff126113a5636c35c05232e = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_d659af9abdd9060500fae9ca7e6b0e6e = $(`<div id="html_d659af9abdd9060500fae9ca7e6b0e6e" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_1 (Unbekannt)</div>`)[0];\n",
" popup_8cfae5477ff126113a5636c35c05232e.setContent(html_d659af9abdd9060500fae9ca7e6b0e6e);\n",
" \n",
" \n",
"\n",
" circle_dcfd774db6aa63b872f32a7bc6ba2721.bindPopup(popup_8cfae5477ff126113a5636c35c05232e)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" circle_dcfd774db6aa63b872f32a7bc6ba2721.bindTooltip(\n",
" `<div>\n",
" Unbekannt\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
"</script>\n",
"</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x220c87e8d90>"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"\n",
"m = folium.Map()\n",
"m.fit_bounds([(lat_min, lon_min), (lat_max, lon_max)])\n",
"\n",
"for same, grouped_df in df[interesting_columns].drop_duplicates().groupby(species):\n",
" for row in grouped_df.itertuples():\n",
" folium.Circle(\n",
" location=[row.latitude, row.longitude],\n",
" tooltip=row.species_latin,\n",
" radius=50, # [m]\n",
" color=\"black\",\n",
" weight=1,\n",
" fill_opacity=0.9,\n",
" opacity=1,\n",
" fill_color=\"green\",\n",
" fill=False, # gets overridden by fill_color\n",
" popup=f\"Tree #{row.tree_number} ({row.species_latin})\",\n",
" ).add_to(m)\n",
" print()\n",
"\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "0de99f00",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe srcdoc=\"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
" \n",
" <meta http-equiv="content-type" content="text/html; charset=UTF-8" />\n",
" \n",
" <script>\n",
" L_NO_TOUCH = false;\n",
" L_DISABLE_3D = false;\n",
" </script>\n",
" \n",
" <style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>\n",
" <style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>\n",
" <script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>\n",
" <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>\n",
" <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>\n",
" <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"/>\n",
" <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css"/>\n",
" <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>\n",
" <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>\n",
" \n",
" <meta name="viewport" content="width=device-width,\n",
" initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n",
" <style>\n",
" #map_384ccd7238decca6988a096ed33a35b1 {\n",
" position: relative;\n",
" width: 100.0%;\n",
" height: 100.0%;\n",
" left: 0.0%;\n",
" top: 0.0%;\n",
" }\n",
" .leaflet-container { font-size: 1rem; }\n",
" </style>\n",
" \n",
"</head>\n",
"<body>\n",
" \n",
" \n",
" <div class="folium-map" id="map_384ccd7238decca6988a096ed33a35b1" ></div>\n",
" \n",
"</body>\n",
"<script>\n",
" \n",
" \n",
" var map_384ccd7238decca6988a096ed33a35b1 = L.map(\n",
" "map_384ccd7238decca6988a096ed33a35b1",\n",
" {\n",
" center: [0.0, 0.0],\n",
" crs: L.CRS.EPSG3857,\n",
" zoom: 1,\n",
" zoomControl: true,\n",
" preferCanvas: false,\n",
" }\n",
" );\n",
"\n",
" \n",
"\n",
" \n",
" \n",
" var tile_layer_c249a9fcabf5008f83a61029825f3877 = L.tileLayer(\n",
" "https://tile.openstreetmap.org/{z}/{x}/{y}.png",\n",
" {"attribution": "\\u0026copy; \\u003ca href=\\"https://www.openstreetmap.org/copyright\\"\\u003eOpenStreetMap\\u003c/a\\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}\n",
" );\n",
" \n",
" \n",
" tile_layer_c249a9fcabf5008f83a61029825f3877.addTo(map_384ccd7238decca6988a096ed33a35b1);\n",
" \n",
" \n",
" var marker_4374a8d4435c899a57a13a15fc19d02b = L.marker(\n",
" [45.3311, -121.7113],\n",
" {}\n",
" ).addTo(map_384ccd7238decca6988a096ed33a35b1);\n",
" \n",
" \n",
" var icon_29c246c533bb4d5e8dd98e290f4311a6 = L.AwesomeMarkers.icon(\n",
" {"extraClasses": "fa-rotate-0", "icon": "info-sign", "iconColor": "white", "markerColor": "green", "prefix": "glyphicon"}\n",
" );\n",
" marker_4374a8d4435c899a57a13a15fc19d02b.setIcon(icon_29c246c533bb4d5e8dd98e290f4311a6);\n",
" \n",
" \n",
" var popup_8747a2720d1c502de365dbb093aa1f51 = L.popup({"maxWidth": "100%"});\n",
"\n",
" \n",
" \n",
" var html_03e45757ec71de818248ddbdfa7f62cf = $(`<div id="html_03e45757ec71de818248ddbdfa7f62cf" style="width: 100.0%; height: 100.0%;">Timberline Lodge</div>`)[0];\n",
" popup_8747a2720d1c502de365dbb093aa1f51.setContent(html_03e45757ec71de818248ddbdfa7f62cf);\n",
" \n",
" \n",
"\n",
" marker_4374a8d4435c899a57a13a15fc19d02b.bindPopup(popup_8747a2720d1c502de365dbb093aa1f51)\n",
" ;\n",
"\n",
" \n",
" \n",
" \n",
" marker_4374a8d4435c899a57a13a15fc19d02b.bindTooltip(\n",
" `<div>\n",
" Click me!\n",
" </div>`,\n",
" {"sticky": true}\n",
" );\n",
" \n",
"</script>\n",
"</html>\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x220c6f2de50>"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"\n",
"m = folium.Map()\n",
"\n",
"\n",
"folium.Marker(\n",
" location=[45.3311, -121.7113],\n",
" tooltip=\"Click me!\",\n",
" popup=\"Timberline Lodge\",\n",
" icon=folium.Icon(color=\"green\"),\n",
").add_to(m)\n",
"\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0a37cc3c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "808b84d9",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
%% Cell type:code id:761e55bc tags:
```
python
import
pandas
as
pd
```
%% Cell type:code id:ccefa7cc tags:
```
python
from
IPython.display
import
display
```
%% Cell type:code id:c8c647de tags:
```
python
df
=
pd
.
read_parquet
(
'input/wuerzburg_trees.parquet'
,
engine
=
'fastparquet'
)
```
%% Cell type:code id:8ce189f0 tags:
```
python
df
```
%% Output
tree_number species_latin species_german \
0 23631 Tilia Cordata Greenspire Stadt-Linde
1 5463.1 Ulmus New Horizon Ulme New Horizon
2 58413 Ulmus New Horizon Ulme New Horizon
3 58753 Acer Platanoides Spitz-Ahorn
4 5540 Tilia Cordata Greenspire Stadt-Linde
... ... ... ...
158720 05_Ersatz_3_7023.2 Unbekannt Unbekannt
158721 5463.1 Ulmus New Horizon Ulme New Horizon
158722 05_Ersatz_3_7023.2 Unbekannt Unbekannt
158723 Gartenamt_Kontroll_2 Unbekannt Unbekannt
158724 65851 Fraxinus Angustifolia Raywood Esche Raywood
latitude longitude soil_composition vol_water_content_30 \
0 49.793440 9.940730 Boden Ringpark 37.0
1 49.796000 9.932720 Eigensubstrat Gartenamt 45.0
2 49.796580 9.941690 Boden-Sand-Lehm 4 22.0
3 49.782000 9.956770 VulkaTree 44.0
4 49.793180 9.933190 Boden-Sand-Lehm 4 35.0
... ... ... ... ...
158720 49.791642 9.935594 VulkaTree 59.0
158721 49.796000 9.932720 Eigensubstrat Gartenamt 36.0
158722 49.791642 9.935594 VulkaTree 59.0
158723 49.797012 10.001281 Eigensubstrat Gartenamt 0.0
158724 49.791200 9.927240 VulkaTree 49.0
vol_water_content_100 permittivity_30 permittivity_100 \
0 27.0 22.34 15.17
1 33.0 30.84 18.86
2 34.0 11.81 20.14
3 31.0 30.32 17.33
4 36.0 20.65 21.61
... ... ... ...
158720 NaN 53.11 NaN
158721 33.0 22.05 19.29
158722 NaN 53.06 NaN
158723 NaN 0.00 NaN
158724 37.0 37.43 22.84
conductivity_30 conductivity_100 usable_field_capacity_30 \
0 19.3 21.8 117.647059
1 20.9 0.0 176.190476
2 0.0 19.1 55.555556
3 0.0 0.0 139.130435
4 19.2 0.0 127.777778
... ... ... ...
158720 38.1 NaN 137.837838
158721 19.5 0.0 90.322581
158722 38.2 NaN 137.837838
158723 0.0 NaN -25.806452
158724 0.0 19.8 110.810811
usable_field_capacity_100 temperature_30 temperature_100 \
0 58.823529 25.06 23.19
1 119.047619 25.26 25.12
2 122.222222 26.51 24.40
3 82.608696 24.94 19.20
4 133.333333 23.13 19.85
... ... ... ...
158720 NaN 24.10 NaN
158721 80.645161 23.42 21.82
158722 NaN 24.10 NaN
158723 NaN 0.00 NaN
158724 78.378378 25.76 21.08
battery_percentage timestamp \
0 59.0 2023-07-12 10:18:26
1 56.0 2023-07-12 10:04:33
2 58.0 2023-07-12 10:57:41
3 59.0 2023-07-12 10:47:32
4 60.0 2023-07-12 10:06:59
... ... ...
158720 57.0 2024-07-22 10:23:46
158721 29.0 2024-07-22 11:25:45
158722 57.0 2024-07-22 11:24:16
158723 77.0 2024-07-22 11:35:41
158724 31.0 2024-07-22 11:35:44
koordinaten
0 b'\x01\x01\x00\x00\x00o\xbb\xd0\\\xa7\xe1#@K\x...
1 b'\x01\x01\x00\x00\x00v\xa6\xd0y\x8d\xdd#@\xd9...
2 b'\x01\x01\x00\x00\x00\xc3\xf0\x111%\xe2#@\xe7...
3 b'\x01\x01\x00\x00\x00}\x96\xe7\xc1\xdd\xe9#@j...
4 b'\x01\x01\x00\x00\x00\x92\xe8e\x14\xcb\xdd#@\...
... ...
158720 b'\x01\x01\x00\x00\x00\x96j*<\x06\xdf#@.\xd3\x...
158721 b'\x01\x01\x00\x00\x00v\xa6\xd0y\x8d\xdd#@\xd9...
158722 b'\x01\x01\x00\x00\x00\x96j*<\x06\xdf#@.\xd3\x...
158723 b'\x01\x01\x00\x00\x00\x01\x00\x00\xf8\xa7\x00...
158724 b'\x01\x01\x00\x00\x00\t\x16\x873\xbf\xda#@0L\...
[158725 rows x 19 columns]
%% Cell type:code id:57133341 tags:
```
python
interesting_columns
=
[
'tree_number'
,
'species_latin'
,
'latitude'
,
'longitude'
]
```
%% Cell type:code id:4850e91c tags:
```
python
species
=
'species_latin'
coordinates
=
[
'latitude'
,
'longitude'
]
df
[
interesting_columns
].
drop_duplicates
().
groupby
(
species
).
apply
(
display
)
```
%% Output
Empty DataFrame
Columns: []
Index: []
%% Cell type:code id:beeb0f88 tags:
```
python
lat_min
,
lon_min
,
lat_max
,
lon_max
=
df
[
coordinates
].
agg
([
'min'
,
'max'
]).
stack
().
values
```
%% Cell type:code id:4bdd0adb tags:
```
python
df
[
interesting_columns
].
drop_duplicates
().
groupby
(
coordinates
).
apply
(
display
)
```
%% Output
Empty DataFrame
Columns: []
Index: []
%% Cell type:code id:3c5a8c58 tags:
```
python
import
folium
m
=
folium
.
Map
()
m
.
fit_bounds
([(
lat_min
,
lon_min
),
(
lat_max
,
lon_max
)])
for
same
,
grouped_df
in
df
[
interesting_columns
].
drop_duplicates
().
groupby
(
species
):
for
row
in
grouped_df
.
itertuples
():
folium
.
Circle
(
location
=
[
row
.
latitude
,
row
.
longitude
],
tooltip
=
row
.
species_latin
,
radius
=
50
,
# [m]
color
=
"black"
,
weight
=
1
,
fill_opacity
=
0.9
,
opacity
=
1
,
fill_color
=
"green"
,
fill
=
False
,
# gets overridden by fill_color
popup
=
f
"Tree #
{
row
.
tree_number
}
(
{
row
.
species_latin
}
)"
,
).
add_to
(
m
)
print
()
m
```
%% Output
<folium.folium.Map at 0x220c87e8d90>
%% Cell type:code id:0de99f00 tags:
```
python
import
folium
m
=
folium
.
Map
()
folium
.
Marker
(
location
=
[
45.3311
,
-
121.7113
],
tooltip
=
"Click me!"
,
popup
=
"Timberline Lodge"
,
icon
=
folium
.
Icon
(
color
=
"green"
),
).
add_to
(
m
)
m
```
%% Output
<folium.folium.Map at 0x220c6f2de50>
%% Cell type:code id:0a37cc3c tags:
```
python
``
`
%%
Cell
type
:
code
id
:
808
b84d9
tags
:
```
python
```
python_scripts/parse_wurzburg_open_data/parse_open_data.py
0 → 100644
View file @
4ed3f015
"""
Würzburger Klimabaeume - Bodenfeuchte
https://opendata.wuerzburg.de/explore/dataset/sls-klimabaeume/export/?disjunctive.species_german
"""
from
pathlib
import
Path
import
requests
import
shutil
import
pandas
as
pd
from
rich
import
print
SCRIPT_DIR
=
Path
(
__file__
).
resolve
().
parent
INPUT_DIR
=
SCRIPT_DIR
/
'input'
INPUT_FILE
=
INPUT_DIR
/
'wuerzburg_trees.parquet'
INPUT_URL
=
"https://opendata.wuerzburg.de/api/explore/v2.1/catalog/datasets/sls-klimabaeume/exports/parquet?lang=en&timezone=Europe%2FBerlin"
USER_AGENT
=
{
'User-agent'
:
'Mozilla/5.0'
}
def
download_file
(
download_url
,
download_path
):
with
requests
.
get
(
download_url
,
stream
=
True
,
headers
=
USER_AGENT
)
as
r
:
with
open
(
download_path
,
'wb'
)
as
f
:
shutil
.
copyfileobj
(
r
.
raw
,
f
)
if
INPUT_FILE
.
exists
()
and
INPUT_FILE
.
stat
().
st_size
>
0
:
print
(
f
"
{
INPUT_FILE
}
already here."
)
else
:
print
(
f
"Downloading
{
INPUT_URL
}
"
)
download_file
(
INPUT_URL
,
INPUT_FILE
)
print
(
" Done"
)
df
=
pd
.
read_parquet
(
INPUT_FILE
,
engine
=
'fastparquet'
)
print
(
df
)
interesting_columns
=
[
'tree_number'
,
'species_latin'
,
'latitude'
,
'longitude'
]
species
=
'species_latin'
coordinates
=
[
'latitude'
,
'longitude'
]
df
[
interesting_columns
].
drop_duplicates
().
groupby
(
species
).
apply
(
print
)
df
[
interesting_columns
].
drop_duplicates
().
groupby
(
coordinates
).
apply
(
print
)
python_scripts/parse_wurzburg_open_data/requirements.txt
0 → 100644
View file @
4ed3f015
pandas
requests
fastparquet
folium
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment