"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "m = folium.Map(\n",
+ " location=(52.264150, 10.526420),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=16,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "# Schloss Braunschweig\n",
+ "castle_popup = \"Ritterbrunnen 1, 38100 Braunschweig\"\n",
+ "castle_tooltip = \"More about the castle\"\n",
+ "\n",
+ "\n",
+ "castle_marker = folium.Marker(\n",
+ " location=(52.2643, 10.529),\n",
+ " popup=castle_popup,\n",
+ " tooltip=castle_tooltip\n",
+ " )\n",
+ "castle_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cadd0223-d6d5-445a-ac7b-ead3b010260f",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-cfc72d893f2572ff",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### HTML Popups\n",
+ "\n",
+ "To do justice to the inner artist as well, markers can also be designed in Folium using the tools of the modern internet.\n",
+ "\n",
+ "The Folium object [Popup](https://python-visualization.github.io/folium/modules.html#folium.map.Popup) can be used to display simple HTML strings. \n",
+ "\n",
+ "Before we get to the main features of HTML for Folium, we will first take a look at the other optional parameters of the Popup object.\n",
+ "\n",
+ "These include:\n",
+ "\n",
+ "- _parse_html_ (bool, default False) not normally needed, forces Folium to interpret the HTML string first. Useful for any customization via JavaScript.\n",
+ "- _max_width_ (int or str, default '100%') sets the maximum width of the popup. For the str parameter it is important to include the '%' character.\n",
+ "- _show_ (bool, default False) if this parameter is set to _True_, the popup will load when the map is opened.\n",
+ "- _sticky_ (bool, default False) if this parameter is set to _True_, the popup will not be closed.\n",
+ "\n",
+ "\n",
+ "Mandatory for creating a popup is the _html_ parameter. This parameter requires a (multi-)string containing HTML code.\n",
+ "\n",
+ "As an example we will create a HBK BS popup which renders the following HTML:\n",
+ "\n",
+ "---\n",
+ "\n",
+ "\n",
+ "
\n",
+ "Johannes-Selenka-Platz 1
\n",
+ "38118 Braunschweig
\n",
+ "Germany, DE
\n",
+ "Visit: hbk-bs.de
\n",
+ "\n",
+ "---\n",
+ "\n",
+ "\n",
+ "and the associated HTML:\n",
+ "\n",
+ "\n",
+ "```html\n",
+ "\n",
+ "\n",
+ "
\n",
+ "Johannes-Selenka-Platz 1
\n",
+ "38118 Braunschweig
\n",
+ "Germany, DE
\n",
+ "Visit: hbk-bs.de
\n",
+ "```\n",
+ "\n",
+ "\n",
+ "Do not let this confuse you. The statements in between `<> & >` are HTML tags, for example `` represents a 'Paragraph' & `` represents a hyperlink. \n",
+ "For the text semantic elements I recommend the following [reference](https://www.w3.org/html/wiki/Elements).\n",
+ "\n",
+ "In Python, no HTML can be displayed directly. For this, the entire HTML must be within a string. To simplify the readability Python offers the multiline string notated with 3 `'''`:\n",
+ "\n",
+ "\n",
+ "\n",
+ "'''\n",
+ "hi I am\n",
+ "\n",
+ "\n",
+ "a\n",
+ "\n",
+ "multiline string\n",
+ "'''\n",
+ "\n",
+ "\n",
+ "And as with the already known string, this one supports all string format options. But more about that later in the Factory Patterns part.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "db9725a6-c438-4a23-9e5b-5b401d412832",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-b683105305025808",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# HBK Braunschweig\n",
+ "hbk_popup_html = folium.Popup(\n",
+ " '''\n",
+ " \n",
+ " \n",
+ "
\n",
+ " Johannes-Selenka-Platz 1
\n",
+ " 38118 Braunschweig
\n",
+ " Germany, DE
\n",
+ " Visit: hbk-bs.de
\n",
+ " ''',\n",
+ " show=True\n",
+ " )\n",
+ "\n",
+ "hbk_tooltip = \"More about the university\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2773d557-e6ca-406c-9de1-b9c0675e0604",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-cf6a889f7ebf8a54",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### Icon\n",
+ "\n",
+ "The last step to complete the marker is the [Icon](https://python-visualization.github.io/folium/modules.html#folium.map.Icon) object.\n",
+ "\n",
+ "Unlike the other objects discussed, this one has no mandatory parameters.\n",
+ "\n",
+ "As usual, here is an explanation of the parameters:\n",
+ "- _color_ (str, default 'blue') sets the color of the marker.\n",
+ "\n",
+ " Possible colors are: \n",
+ " - red, blue, green,\n",
+ " - purple, orange, darkred,\n",
+ " - lightred, beige, darkblue,\n",
+ " - darkgreen, cadetblue, darkpurple,-\n",
+ " - white, pink, lightblue,\n",
+ " - lightgreen, gray, black,\n",
+ " - lightgray\n",
+ " \n",
+ " \n",
+ " or any hexadecimal value noted with '#XXXXXX'.\n",
+ "\n",
+ "- _icon_color_ (str, default 'white') sets the color of the glyphicon. The possible color values are the same as for _color_.\n",
+ "- _angle_ (int, default 0) sets the rotation of the glyphicon. The possible values are limited to the range 0-359 integer.\n",
+ "- _prefix_ (str, default 'glyphicon) can take two values 'fa' for the icons of the website [Font Awesome](https://fontawesome.com/icons) (Attention not all icons are free) and 'glyphicon' for the icons of the website [Bootstrap](https://getbootstrap.com/docs/3.3/components/) (All icons behind this link are free). The value in _prefix_ specifies which website is queried. \n",
+ "- _icon_ (str, default 'info-sign') specifies the name of the icon to be displayed and is therefore dependent on the _prefix_ parameter. The default icon is 'glyphicon glyphicon-info-sign'.\n",
+ "\n",
+ "To design a reasonable icon for the HBK marker the following example should be understood:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "8f79bd13-82f0-478c-8409-1e97d79d4b26",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-5e1cf782bc0512c1",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "hbk_icon = folium.Icon(\n",
+ " color='black',\n",
+ " icon_color='#deddda',\n",
+ " prefix='glyphicon',\n",
+ " icon='glyphicon-home',\n",
+ " angle=0\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4a2ffb76-8045-4cba-a416-5555f521889b",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-8d4b5a5cb9cc90cc",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "After successfully creating the three variables _hbk_tooltip_, _hbk_html_popup_ & _hbk_icon_, we now display the customized marker:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "852785cc-0dff-4c2c-b6bb-20d08e26349f",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-62068ff221befbb2",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "m = folium.Map(\n",
+ " location=(52.258, 10.5),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=16,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "hbk_marker = folium.Marker(\n",
+ " location=(52.257770, 10.502490),\n",
+ " popup=hbk_popup_html,\n",
+ " tooltip=hbk_tooltip,\n",
+ " icon=hbk_icon\n",
+ " )\n",
+ "\n",
+ "hbk_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6a7a1f4d-720b-4152-a90b-c9a194494cbe",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-a6152b205ccf50ed",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "## Exercise 2: Design your own Marker\n",
+ "\n",
+ "In the following exercise you will design your own marker.\n",
+ "\n",
+ "In case of problems, please check the Folium API:\n",
+ "- [Marker](https://python-visualization.github.io/folium/modules.html#folium.map.Marker)\n",
+ "- [Popup](https://python-visualization.github.io/folium/modules.html#folium.map.Popup)\n",
+ "- [Icon](https://python-visualization.github.io/folium/modules.html#folium.map.Icon)\n",
+ "- [Tooltip](https://python-visualization.github.io/folium/modules.html#folium.map.Tooltip)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "093f0526-114f-45da-947a-550f2163030a",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-d5aa18ce07303756",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### 2.1: Defining a Tooltip\n",
+ "\n",
+ "Define a tooltip variable named `tooltip` with the text `More about TU Braunschweig`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "725abb1e-f8c4-4cca-be6f-326f23126062",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-04f53b3f7eb6c201",
+ "locked": false,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "### BEGIN SOLUTION\n",
+ "tooltip = \"More about TU Braunschweig\"\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "d0c93b34-79de-4a90-b595-dec419b3a930",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-bfcb53d3e2aba304",
+ "locked": true,
+ "points": 1,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Your Solutions are tested here...\n",
+ "assert tooltip == \"More about TU Braunschweig\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "97aa8013-defd-408d-8b80-2389ff92904c",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-e943331e564dd5c6",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### 2.2: Defining a Popup\n",
+ "\n",
+ "Define a popup object with HTML text named `tu_popup_html` and the [TU BS Logo](https://www.google.com/url?sa=i&url=https%3A%2F%2Fde.m.wikipedia.org%2Fwiki%2FDatei%3ASiegel_TU_Braunschweig_transparent.svg&psig=AOvVaw3PFFLWsIPyXrT81Jo4F6ot&ust=1669222516763000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCIjR-MqgwvsCFQAAAAAdAAAAABAE).\n",
+ "\n",
+ "Address: _Universitätspl. 2, 38106 Braunschweig_\n",
+ "\n",
+ "Logo URL: https://upload.wikimedia.org/wikipedia/commons/thumb/9/9d/Siegel_TU_Braunschweig_transparent.svg/1200px-Siegel_TU_Braunschweig_transparent.svg.png\n",
+ "\n",
+ "You can also use the Template from the Explanation.\n",
+ "\n",
+ "You can find a HTML reference [here](https://www.w3.org/html/wiki/Elements). If you write better in Markdown I recommend the following [converter](https://markdowntohtml.com/) and this [Markdown reference](https://www.markdownguide.org/cheat-sheet/)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "599b4313-9d53-46d8-be0e-dbf0ab707105",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-1f5f10be1f0c3e95",
+ "locked": false,
+ "points": 1,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "### BEGIN SOLUTION\n",
+ "tu_popup_html = folium.Popup(\n",
+ " '''\n",
+ " \n",
+ " \n",
+ "
\n",
+ " Universitätspl. 2
\n",
+ " 38106 Braunschweigg
\n",
+ " Germany, DE
\n",
+ " Visit: tu-bs.de
\n",
+ " ''',\n",
+ " show=False\n",
+ " )\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "541653fa-f882-4f15-90bb-2ad7665d380f",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-d0ad985cc098c85f",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "### 2.3 Defining an Icon\n",
+ "\n",
+ "Next, a _red_ icon named `tu_icon` should be defined.\n",
+ "\n",
+ "The color for the glyphicon should be a gray hexcode that you can choose freely. To make the color selection easier you can use the [Color Picker](https://htmlcolorcodes.com/color-picker/).\n",
+ "\n",
+ "As glyph, _glyphicon-education_, should be used."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "7adb36ce-9012-4a9a-b025-2b7a91b4d2ac",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-3ec775c00a9d80a2",
+ "locked": false,
+ "points": 4,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "tu_icon = None\n",
+ "### BEGIN SOLUTION\n",
+ "tu_icon = folium.Icon(\n",
+ " color='red',\n",
+ " icon_color='#eeeeee',\n",
+ " prefix='glyphicon',\n",
+ " icon='glyphicon-education',\n",
+ " angle=0\n",
+ " )\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "287924de-5810-4f3c-8b36-e3308798b3ea",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-b16e407b56f6a000",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### 2.4 Defining a Marker\n",
+ "\n",
+ "All previously created objects should now be combined into one marker named `tu_bs_marker`.\n",
+ "\n",
+ "As the location data use `(52.273460, 10.529231)`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "c7dd4f94-e7d2-4c11-9426-f911462e122c",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-43ce13ffa68645bc",
+ "locked": false,
+ "points": 4,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "tu_bs_marker = None\n",
+ "### BEGIN SOLUTION\n",
+ "tu_bs_marker = folium.Marker(\n",
+ " location=(52.273460, 10.529231),\n",
+ " popup=tu_popup_html,\n",
+ " tooltip=tooltip,\n",
+ " icon=tu_icon\n",
+ " )\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "13fa1a0f-f06e-4042-bae6-254fc99640e7",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-365a8eef0b32decd",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Your Solutions are tested and displayed here...\n",
+ "m = folium.Map(\n",
+ " location=(52.274, 10.53),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=17,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "tu_bs_marker.add_to(m)\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6639280d-2c23-421b-9170-418895482fb3",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-8cf61a16719f867b",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "source": [
+ "### Circle & Circle Marker\n",
+ "\n",
+ "Another possibility to mark places on maps is the [Circle](https://python-visualization.github.io/folium/modules.html#folium.vector_layers.Circle) and the [CircleMarker](https://python-visualization.github.io/folium/modules.html#folium.vector_layers.CircleMarker). The only difference between the two is the parameter _radius_ which is not fixed for the circle and has a default value of 10 for the circle marker which is specified in pixels, the circle marker scales with the map when zooming. Otherwise the objects _popup_ & _tooltip_ can be set with the marker. For the coloring the parameters _color_ & _fill_color_ are to be assigned. _color_ describes the color of the outer ring of the circle, while _fill_color_ specifies the fill color of the circle, whose default value is copied from the parameter_color_. to use _fill_color_ the parameter _fill_ must also be set to _True_.\n",
+ "\n",
+ "Here is an example.\n",
+ "\n",
+ "The HBK is marked with a red filled circle marker, which has the radius 100 pixel. To highlight the area inside the HBK, black is used as fill color.\n",
+ "Also here a tooltip, as well as the usual HBK popup is specified."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "511b9c23-f335-4639-8120-289ee9d4fee2",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-06a4d0cb95f20d93",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Map Setup\n",
+ "m = folium.Map(\n",
+ " location=(52.258, 10.5),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=16,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "# HBK Braunschweig\n",
+ "hbk_popup_html = folium.Popup(\n",
+ " '''\n",
+ " \n",
+ " \n",
+ "
\n",
+ " Johannes-Selenka-Platz 1
\n",
+ " 38118 Braunschweig
\n",
+ " Germany, DE
\n",
+ " Visit: hbk-bs.de
\n",
+ " ''',\n",
+ " show=False\n",
+ " )\n",
+ "\n",
+ "# Defining tooltip\n",
+ "hbk_tooltip = \"More about the university\"\n",
+ "\n",
+ "# Create Circle Marker\n",
+ "hbk_circle_marker = folium.Circle(\n",
+ " location=(52.2572, 10.501),\n",
+ " popup=hbk_popup_html,\n",
+ " tooltip=hbk_tooltip,\n",
+ " radius=100,\n",
+ " fill=True,\n",
+ " fill_color='black',\n",
+ " color='red'\n",
+ " )\n",
+ "\n",
+ "# Attach Circle Marker to map\n",
+ "hbk_circle_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c8bcbdc6-3b3a-4421-b78f-8c62f7f03d34",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-90296cc00bae2968",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "### Rectangle \n",
+ "\n",
+ "Rectangles can also be defined in the same way. Instead of a location with a radius, the two corner points must be specified. The data structure used for this is a list of tuples (_[tuple, tuple]_).\n",
+ "\n",
+ "Consider the following example:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "eee0d9ff-1ada-4f62-9675-39064b68fa32",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-641478b6b1df4ae5",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Map Setup\n",
+ "m = folium.Map(\n",
+ " location=(52.258, 10.5),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=16,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "# HBK Braunschweig\n",
+ "hbk_popup_html = folium.Popup(\n",
+ " '''\n",
+ " \n",
+ " \n",
+ "
\n",
+ " Johannes-Selenka-Platz 1
\n",
+ " 38118 Braunschweig
\n",
+ " Germany, DE
\n",
+ " Visit: hbk-bs.de
\n",
+ " ''',\n",
+ " show=False\n",
+ " )\n",
+ "\n",
+ "# Defining tooltip\n",
+ "hbk_tooltip = \"More about the university\"\n",
+ "\n",
+ "# Create Rectangle Marker\n",
+ "hbk_rectangle_marker = folium.Rectangle(\n",
+ " bounds=[(52.258077, 10.498424), (52.255896, 10.504092)], # List of tuples defining the Corner Points\n",
+ " popup=hbk_popup_html,\n",
+ " tooltip=hbk_tooltip,\n",
+ " fill=True,\n",
+ " fill_color='black',\n",
+ " color='red'\n",
+ " )\n",
+ "\n",
+ "# Attach Rectangle Marker to map\n",
+ "hbk_rectangle_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "09574eea-8007-4740-b3f5-e81a40c28cbd",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-5d436ff9290eb683",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "## Builder Pattern\n",
+ "\n",
+ "To simplify working with Folium, certain techniques can be used to simplify the creation of objects. \n",
+ "\n",
+ "Design patterns are known from the technical literature that lead to a simpler, error-free and clearer way of developing software. \n",
+ "One of these design patterns, the creation pattern, will be presented below and used for future tasks.\n",
+ "\n",
+ "The technical literature states freely quoted:\n",
+ "\"The creation pattern serves to decouple the construction of objects from their representation!\" - [_Design Patterns: Elements of Reusable Object-Oriented Software\n",
+ "by Erich Gamma, Ralph Johnson, Richard Helm, Ralph E. Johnson, John Vlissides_](https://books.google.de/books?hl=de&lr=&id=tmNNfSkfTlcC&oi=fnd&pg=PR11&dq=software+design+patterns&ots=e_iImZT2d3&sig=DtkhOov5t0Ot6lf7QubDGNhWzz0#v=onepage&q=software%20design%20patterns&f=false)\n",
+ "\n",
+ "A builder is a function (function of an object) that is used to create new objects. In our case, these will be markers and popups."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5f27eaae-3e5b-4f6c-854a-2c37c9fbffac",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-6473594d5d9882b0",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "### A simple Popup Factory\n",
+ "\n",
+ "Anyone who remembers the HTML popups in the previous chapter will quickly realise that with a larger data set, setting individual HTML tags for images, addresses or other information soon becomes a tedious task.\n",
+ "\n",
+ "Assuming we want to plot all the universities in Lower Saxony on a map, a separate popup would have to be created for each marker. To change this, the following function will be introduced:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "ec9a37e4-1dd3-4673-b36f-122adafadeb2",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-069cd8284c5bc36c",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def popup_factory(adr: str, zipc: str, country: str, pic: str):\n",
+ " html = '''\n",
+ " \n",
+ " {}
\n",
+ " {}
\n",
+ " {}
\n",
+ " '''.format(pic, adr, zipc, country)\n",
+ " return folium.Popup(html)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1740ce5e-f7a8-47f9-8211-7a62b19cf08b",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-de4c7e1824c4e5a6",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "The _popup_factory_ function just defined takes the four string parameters _adr_ (address), _zipc_ (postcode), _country_ & _pic_ (picture URL) and generates an HTML-compliant string with the given information from the string specified in the _html_ variable. The return value of the function is a Folium popup object.\n",
+ "\n",
+ "To get closer to the goal of plotting all universities in Lower Saxony, a few objects are still missing.\n",
+ "\n",
+ "The _hbk_icon_ I created above is to be used as the standard icon. It is defined as follows:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "9dddf885-ffa7-4e3b-b948-43ded7f3bd7b",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-a700169d2ec58d8c",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def icon_factory(is_public=True):\n",
+ " icon = folium.Icon(\n",
+ " color='black' if is_public else 'white',\n",
+ " icon_color = 'white' if is_public else 'black',\n",
+ " icon='glyphicon-home'\n",
+ " )\n",
+ " return icon"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d4f4be32-8d71-41b0-9d8e-5ec2e32416a8",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-3fd735bc0f0cba70",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "The only thing missing in the next step is the factory for creating markers.\n",
+ "\n",
+ "This is defined as follows:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "07a0df3e-92f9-4e25-89f3-3e27048d2c6b",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-393cf1e2b37be7a6",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def marker_factory(loc, popup, is_public=True):\n",
+ " std_tooltip = 'Click for more information'\n",
+ " std_icon = icon_factory(is_public)\n",
+ " return folium.Marker(loc, popup=popup, icon=std_icon, tooltip=std_tooltip)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1e7f7f3a-d234-427d-ad06-3026c00312a4",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-2b6d551c3e806181",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "With these two functions it is now easy to replicate the map created in the previous chapter:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "6a60ccee-4728-4bf1-93db-1158deae037f",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-7166c54f214ed13e",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Create Map\n",
+ "m = folium.Map(\n",
+ " location=(52.258, 10.5),\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=16,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "# Define popup\n",
+ "pp = popup_factory(\n",
+ " adr='Johannes-Selenka-Platz 1',\n",
+ " zipc='38118 Braunschweig',\n",
+ " country='Germany, DE',\n",
+ " pic=\"https://www.hbk-bs.de/fileadmin/_processed_/5/1/csm_HBK_Logo_9f3f898a2b.png\",\n",
+ " )\n",
+ "\n",
+ "# Define Marker\n",
+ "marker = marker_factory(\n",
+ " loc=(52.257770, 10.502490),\n",
+ " popup=pp\n",
+ " )\n",
+ "\n",
+ "# Attach Marker to Map\n",
+ "marker.add_to(m)\n",
+ "\n",
+ "# Display Map\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1110a947-36cb-43c8-9348-fe3bafabe185",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-a1045f8d87d79df5",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "# Exercise 3: Mapping the Universties in Lower Saxony\n",
+ "\n",
+ "## 3.1: Reading the Dataset\n",
+ "The data set for this notebook is *unis_nd.csv*.\n",
+ "\n",
+ "Read this into the variable `df` using the _pandas_ `read_csv` function.\n",
+ "\n",
+ "(I recommend that you take a look at the data set)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "b50d076d-4b5f-4137-93df-846144b119b7",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-c55c41f6b9c03dd6",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "16c81c07-5893-42a7-9b1d-a081deea998c",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-d58de9c13e900a3b",
+ "locked": false,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " University name | \n",
+ " Type of university | \n",
+ " Sponsorship | \n",
+ " Right of promotion | \n",
+ " Founding year | \n",
+ " Number of students | \n",
+ " Address | \n",
+ " lat | \n",
+ " lon | \n",
+ " plz | \n",
+ " pic | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Hochschule für Bildende Künste Braunschweig | \n",
+ " Artistic university | \n",
+ " public | \n",
+ " yes | \n",
+ " 1963 | \n",
+ " 976.000 | \n",
+ " Johannes-Selenka-Platz 1 | \n",
+ " 52.257738 | \n",
+ " 10.502315 | \n",
+ " 38118 Braunschweig | \n",
+ " https://www.hbk-bs.de/fileadmin/_processed_/5/... | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Technische Universität Carolo-Wilhelmina zu Br... | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1745 | \n",
+ " 17709.000 | \n",
+ " Universitätspl. 2 | \n",
+ " 52.273550 | \n",
+ " 10.530097 | \n",
+ " 38106 Braunschweig | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Hochschule 21 | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 2005 | \n",
+ " 1084.000 | \n",
+ " Harburger Str. 6 | \n",
+ " 53.477650 | \n",
+ " 9.704650 | \n",
+ " 21614 Buxtehude | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " Technische Universität Clausthal | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1775 | \n",
+ " 3446.000 | \n",
+ " Adolph-Roemer-Straße 2A | \n",
+ " 51.804840 | \n",
+ " 10.334110 | \n",
+ " 38678 Clausthal-Zellerfeld | \n",
+ " https://www.presse.tu-clausthal.de/fileadmin/T... | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Hochschule Emden/Leer | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 2009 | \n",
+ " 4481.000 | \n",
+ " Constantiapl. 4 | \n",
+ " 53.368160 | \n",
+ " 7.181410 | \n",
+ " 26723 Emden | \n",
+ " https://sta-hisweb.hs-emden-leer.de/QIS/images... | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " PFH – Private Hochschule Göttingen | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1995 | \n",
+ " 4226.000 | \n",
+ " Weender Landstraße 3-7 | \n",
+ " 51.538910 | \n",
+ " 9.933220 | \n",
+ " 37073 Göttingen | \n",
+ " https://goettingen-campus.de/fileadmin/_proces... | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " Georg-August-Universität Göttingen | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1737 | \n",
+ " 28614.000 | \n",
+ " Wilhelmsplatz 1 | \n",
+ " 51.534070 | \n",
+ " 9.937850 | \n",
+ " 37073 Göttingen | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " Fachhochschule für die Wirtschaft Hannover | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1996 | \n",
+ " 641.000 | \n",
+ " Freundallee 15 | \n",
+ " 52.366200 | \n",
+ " 9.772470 | \n",
+ " 30173 Hannover | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " Hochschule Hannover | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 9209.000 | \n",
+ " Ricklinger Stadtweg 120 | \n",
+ " 52.354190 | \n",
+ " 9.722380 | \n",
+ " 30459 Hannover | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " Hochschule für Musik, Theater und Medien Hannover | \n",
+ " Artistic university | \n",
+ " public | \n",
+ " yes | \n",
+ " 1897 | \n",
+ " 1409.000 | \n",
+ " Neues Haus 1 | \n",
+ " 52.377380 | \n",
+ " 9.753920 | \n",
+ " 30175 Hannover | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " Leibniz-Fachhochschule | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1920 | \n",
+ " 589.000 | \n",
+ " Expo Plaza 11 | \n",
+ " 52.321150 | \n",
+ " 9.818680 | \n",
+ " 30539 Hannover | \n",
+ " https://www.visit-hannover.com/var/storage/ima... | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " Medizinische Hochschule Hannover (MHH) | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1963 | \n",
+ " 3778.000 | \n",
+ " Carl-Neuberg-Straße 1 | \n",
+ " 52.384050 | \n",
+ " 9.806030 | \n",
+ " 30625 Hannover | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " Stiftung Tierärztliche Hochschule Hannover | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1778 | \n",
+ " 2381.000 | \n",
+ " Bünteweg 2 | \n",
+ " 52.354680 | \n",
+ " 9.797730 | \n",
+ " 30559 Hannover | \n",
+ " https://upload.wikimedia.org/wikipedia/de/thum... | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " Gottfried Wilhelm Leibniz Universität Hannover | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1831 | \n",
+ " 28935.000 | \n",
+ " Welfengarten 1 | \n",
+ " 52.382250 | \n",
+ " 9.717770 | \n",
+ " 30167 Hannover | \n",
+ " https://www.uni-hannover.de/fileadmin/_process... | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " Fachhochschule für Interkulturelle Theologie H... | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 2012 | \n",
+ " 91.000 | \n",
+ " Missionsstraße 3-5 | \n",
+ " 52.708843 | \n",
+ " 10.140710 | \n",
+ " 29320 Südheide | \n",
+ " https://cdn.max-e5.info/damfiles/logo/fh_herma... | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " Universität Hildesheim | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1978 | \n",
+ " 8378.000 | \n",
+ " Universitätspl. 1 | \n",
+ " 52.134010 | \n",
+ " 9.974690 | \n",
+ " 31141 Hildesheim | \n",
+ " https://www.uni-hildesheim.de/media/_processed... | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " HAWK Hochschule für angewandte Wissenschaft un... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 6495.000 | \n",
+ " Hohnsen 4 | \n",
+ " 52.142460 | \n",
+ " 9.957980 | \n",
+ " 31134 Hildesheim | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " HAWK Hochschule für angewandte Wissenschaft un... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 6495.000 | \n",
+ " Haarmannpl. 3 | \n",
+ " 51.827260 | \n",
+ " 9.450690 | \n",
+ " 37603 Holzminden | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " HAWK Hochschule für angewandte Wissenschaft un... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 6495.000 | \n",
+ " Von-Ossietzky-Straße 99 | \n",
+ " 51.521750 | \n",
+ " 9.969670 | \n",
+ " 37085 Göttingen | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " Leuphana Universität Lüneburg | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1946 | \n",
+ " 6497.000 | \n",
+ " Universitätsallee 1 | \n",
+ " 53.228531 | \n",
+ " 10.401710 | \n",
+ " 21335 Lüneburg | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 20 | \n",
+ " Norddeutsche Hochschule für Rechtspflege – Nie... | \n",
+ " University of Administration | \n",
+ " public | \n",
+ " no | \n",
+ " 2007 | \n",
+ " 6409.000 | \n",
+ " Godehardspl. 6 | \n",
+ " 52.144840 | \n",
+ " 9.949230 | \n",
+ " 31134 Hildesheim | \n",
+ " https://static.studycheck.de/media/images/inst... | \n",
+ "
\n",
+ " \n",
+ " 21 | \n",
+ " Kommunale Hochschule für Verwaltung in Nieders... | \n",
+ " University of Administration | \n",
+ " public | \n",
+ " no | \n",
+ " 2007 | \n",
+ " 1570.000 | \n",
+ " Wielandstraße 8 | \n",
+ " 52.370500 | \n",
+ " 9.722390 | \n",
+ " 30169 Hannover | \n",
+ " https://www.nsi-hsvn.de/fileadmin/user_upload/... | \n",
+ "
\n",
+ " \n",
+ " 22 | \n",
+ " Carl von Ossietzky Universität Oldenburg\\n | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1973 | \n",
+ " 15635.000 | \n",
+ " Uhlhornsweg 49-55 | \n",
+ " 53.147340 | \n",
+ " 8.179020 | \n",
+ " 26129 Oldenburg | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " Hochschule Osnabrück | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 13620.000 | \n",
+ " Albrechtstraße 30 | \n",
+ " 52.282680 | \n",
+ " 8.025010 | \n",
+ " 49076 Osnabrück | \n",
+ " https://login.hs-osnabrueck.de/nidp/hsos/image... | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " Universität Osnabrück | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1973 | \n",
+ " 13640.000 | \n",
+ " Neuer Graben 29 | \n",
+ " 52.271370 | \n",
+ " 8.044540 | \n",
+ " 49074 Osnabrück | \n",
+ " https://www.eh-tabor.de/sites/default/files/st... | \n",
+ "
\n",
+ " \n",
+ " 25 | \n",
+ " Hochschule Braunschweig/Wolfenbüttel, Ostfalia... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 11577.000 | \n",
+ " Salzdahlumer Str. 46/48 | \n",
+ " 52.176830 | \n",
+ " 10.548650 | \n",
+ " 38302 Wolfenbüttel | \n",
+ " https://www.ostfalia.de/export/system/modules/... | \n",
+ "
\n",
+ " \n",
+ " 26 | \n",
+ " Hochschule Wolfsburg, Ostfalia Hochschule für ... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 11577.000 | \n",
+ " Robert-Koch-Platz 8A | \n",
+ " 52.425950 | \n",
+ " 10.787110 | \n",
+ " 38440 Wolfsburg | \n",
+ " https://www.ostfalia.de/export/system/modules/... | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " Hochschule Suderburg, Ostfalia Hochschule für ... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 11577.000 | \n",
+ " Herbert-Meyer-Straße 7 | \n",
+ " 52.897610 | \n",
+ " 10.446590 | \n",
+ " 29556 Suderburg | \n",
+ " https://www.ostfalia.de/export/system/modules/... | \n",
+ "
\n",
+ " \n",
+ " 28 | \n",
+ " Hochschule Salzgitter, Ostfalia Hochschule für... | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 1971 | \n",
+ " 11577.000 | \n",
+ " Karl-Scharfenberg-Straße 55/57 | \n",
+ " 52.087240 | \n",
+ " 10.380550 | \n",
+ " 38229 Salzgitter | \n",
+ " https://www.ostfalia.de/export/system/modules/... | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " Hochschule für Künste im Sozialen, Ottersberg | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1967 | \n",
+ " 342.000 | \n",
+ " Große Str. 107 | \n",
+ " 53.106680 | \n",
+ " 9.163100 | \n",
+ " 28870 Ottersberg | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 30 | \n",
+ " Private Hochschule für Wirtschaft und Technik ... | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1998 | \n",
+ " 558.000 | \n",
+ " Rombergstraße 40 | \n",
+ " 52.721250 | \n",
+ " 8.278910 | \n",
+ " 49377 Vechta | \n",
+ " https://www.phwt.de/wp-content/uploads/2020/09... | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " Private Hochschule für Wirtschaft und Technik ... | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 1998 | \n",
+ " 558.000 | \n",
+ " Schlesier Str. 13A | \n",
+ " 52.611710 | \n",
+ " 8.363340 | \n",
+ " 49356 Diepholz | \n",
+ " https://www.phwt.de/wp-content/uploads/2020/09... | \n",
+ "
\n",
+ " \n",
+ " 32 | \n",
+ " Universität Vechta | \n",
+ " University | \n",
+ " public | \n",
+ " yes | \n",
+ " 1995 | \n",
+ " 4.551 | \n",
+ " Driverstraße 22 | \n",
+ " 52.721170 | \n",
+ " 8.293800 | \n",
+ " 49377 Vechta | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 33 | \n",
+ " Hochschule Weserbergland | \n",
+ " University of Applied Sciences | \n",
+ " privat | \n",
+ " no | \n",
+ " 2010 | \n",
+ " 485.000 | \n",
+ " Am Stockhof 2 | \n",
+ " 52.098750 | \n",
+ " 9.355420 | \n",
+ " 31785 Hameln | \n",
+ " https://upload.wikimedia.org/wikipedia/commons... | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " Jade Hochschule – Wilhelmshaven | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 2009 | \n",
+ " 6789.000 | \n",
+ " Friedrich-Paffrath-Straße 101 | \n",
+ " 53.547870 | \n",
+ " 8.088040 | \n",
+ " 26389 Wilhelmshaven | \n",
+ " https://www.jade-hs.de/fileadmin/layout2016/as... | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " Jade Hochschule – Oldenburg | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 2009 | \n",
+ " 6789.000 | \n",
+ " Ofener Str. 16/19 | \n",
+ " 53.141790 | \n",
+ " 8.202130 | \n",
+ " 26121 Oldenburg | \n",
+ " https://www.jade-hs.de/fileadmin/layout2016/as... | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " Jade Hochschule – Elsfleth | \n",
+ " University of Applied Sciences | \n",
+ " public | \n",
+ " no | \n",
+ " 2009 | \n",
+ " 6789.000 | \n",
+ " Weserstraße 52 | \n",
+ " 53.242440 | \n",
+ " 8.466510 | \n",
+ " 26931 Elsfleth | \n",
+ " https://www.jade-hs.de/fileadmin/layout2016/as... | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " Steuerakademie Niedersachsen Rinteln | \n",
+ " University of Administration | \n",
+ " public | \n",
+ " no | \n",
+ " 2006 | \n",
+ " 500.000 | \n",
+ " Wilhelm-Busch-Weg 29 | \n",
+ " 52.206960 | \n",
+ " 9.091120 | \n",
+ " 31737 Rinteln | \n",
+ " https://www.steuerakademie.niedersachsen.de/as... | \n",
+ "
\n",
+ " \n",
+ " 38 | \n",
+ " Steuerakademie Niedersachsen Bad Eilsen | \n",
+ " University of Administration | \n",
+ " public | \n",
+ " no | \n",
+ " 2006 | \n",
+ " 500.000 | \n",
+ " Bahnhofstraße 5 | \n",
+ " 52.239810 | \n",
+ " 9.104230 | \n",
+ " 31707 Bad Eilsen | \n",
+ " https://www.steuerakademie.niedersachsen.de/as... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " University name \\\n",
+ "0 Hochschule für Bildende Künste Braunschweig \n",
+ "1 Technische Universität Carolo-Wilhelmina zu Br... \n",
+ "2 Hochschule 21 \n",
+ "3 Technische Universität Clausthal \n",
+ "4 Hochschule Emden/Leer \n",
+ "5 PFH – Private Hochschule Göttingen \n",
+ "6 Georg-August-Universität Göttingen \n",
+ "7 Fachhochschule für die Wirtschaft Hannover \n",
+ "8 Hochschule Hannover \n",
+ "9 Hochschule für Musik, Theater und Medien Hannover \n",
+ "10 Leibniz-Fachhochschule \n",
+ "11 Medizinische Hochschule Hannover (MHH) \n",
+ "12 Stiftung Tierärztliche Hochschule Hannover \n",
+ "13 Gottfried Wilhelm Leibniz Universität Hannover \n",
+ "14 Fachhochschule für Interkulturelle Theologie H... \n",
+ "15 Universität Hildesheim \n",
+ "16 HAWK Hochschule für angewandte Wissenschaft un... \n",
+ "17 HAWK Hochschule für angewandte Wissenschaft un... \n",
+ "18 HAWK Hochschule für angewandte Wissenschaft un... \n",
+ "19 Leuphana Universität Lüneburg \n",
+ "20 Norddeutsche Hochschule für Rechtspflege – Nie... \n",
+ "21 Kommunale Hochschule für Verwaltung in Nieders... \n",
+ "22 Carl von Ossietzky Universität Oldenburg\\n \n",
+ "23 Hochschule Osnabrück \n",
+ "24 Universität Osnabrück \n",
+ "25 Hochschule Braunschweig/Wolfenbüttel, Ostfalia... \n",
+ "26 Hochschule Wolfsburg, Ostfalia Hochschule für ... \n",
+ "27 Hochschule Suderburg, Ostfalia Hochschule für ... \n",
+ "28 Hochschule Salzgitter, Ostfalia Hochschule für... \n",
+ "29 Hochschule für Künste im Sozialen, Ottersberg \n",
+ "30 Private Hochschule für Wirtschaft und Technik ... \n",
+ "31 Private Hochschule für Wirtschaft und Technik ... \n",
+ "32 Universität Vechta \n",
+ "33 Hochschule Weserbergland \n",
+ "34 Jade Hochschule – Wilhelmshaven \n",
+ "35 Jade Hochschule – Oldenburg \n",
+ "36 Jade Hochschule – Elsfleth \n",
+ "37 Steuerakademie Niedersachsen Rinteln \n",
+ "38 Steuerakademie Niedersachsen Bad Eilsen \n",
+ "\n",
+ " Type of university Sponsorship Right of promotion \\\n",
+ "0 Artistic university public yes \n",
+ "1 University public yes \n",
+ "2 University of Applied Sciences privat no \n",
+ "3 University public yes \n",
+ "4 University of Applied Sciences public no \n",
+ "5 University of Applied Sciences privat no \n",
+ "6 University public yes \n",
+ "7 University of Applied Sciences privat no \n",
+ "8 University of Applied Sciences public no \n",
+ "9 Artistic university public yes \n",
+ "10 University of Applied Sciences privat no \n",
+ "11 University public yes \n",
+ "12 University public yes \n",
+ "13 University public yes \n",
+ "14 University of Applied Sciences privat no \n",
+ "15 University public yes \n",
+ "16 University of Applied Sciences public no \n",
+ "17 University of Applied Sciences public no \n",
+ "18 University of Applied Sciences public no \n",
+ "19 University public yes \n",
+ "20 University of Administration public no \n",
+ "21 University of Administration public no \n",
+ "22 University public yes \n",
+ "23 University of Applied Sciences public no \n",
+ "24 University public yes \n",
+ "25 University of Applied Sciences public no \n",
+ "26 University of Applied Sciences public no \n",
+ "27 University of Applied Sciences public no \n",
+ "28 University of Applied Sciences public no \n",
+ "29 University of Applied Sciences privat no \n",
+ "30 University of Applied Sciences privat no \n",
+ "31 University of Applied Sciences privat no \n",
+ "32 University public yes \n",
+ "33 University of Applied Sciences privat no \n",
+ "34 University of Applied Sciences public no \n",
+ "35 University of Applied Sciences public no \n",
+ "36 University of Applied Sciences public no \n",
+ "37 University of Administration public no \n",
+ "38 University of Administration public no \n",
+ "\n",
+ " Founding year Number of students Address \\\n",
+ "0 1963 976.000 Johannes-Selenka-Platz 1 \n",
+ "1 1745 17709.000 Universitätspl. 2 \n",
+ "2 2005 1084.000 Harburger Str. 6 \n",
+ "3 1775 3446.000 Adolph-Roemer-Straße 2A \n",
+ "4 2009 4481.000 Constantiapl. 4 \n",
+ "5 1995 4226.000 Weender Landstraße 3-7 \n",
+ "6 1737 28614.000 Wilhelmsplatz 1 \n",
+ "7 1996 641.000 Freundallee 15 \n",
+ "8 1971 9209.000 Ricklinger Stadtweg 120 \n",
+ "9 1897 1409.000 Neues Haus 1 \n",
+ "10 1920 589.000 Expo Plaza 11 \n",
+ "11 1963 3778.000 Carl-Neuberg-Straße 1 \n",
+ "12 1778 2381.000 Bünteweg 2 \n",
+ "13 1831 28935.000 Welfengarten 1 \n",
+ "14 2012 91.000 Missionsstraße 3-5 \n",
+ "15 1978 8378.000 Universitätspl. 1 \n",
+ "16 1971 6495.000 Hohnsen 4 \n",
+ "17 1971 6495.000 Haarmannpl. 3 \n",
+ "18 1971 6495.000 Von-Ossietzky-Straße 99 \n",
+ "19 1946 6497.000 Universitätsallee 1 \n",
+ "20 2007 6409.000 Godehardspl. 6 \n",
+ "21 2007 1570.000 Wielandstraße 8 \n",
+ "22 1973 15635.000 Uhlhornsweg 49-55 \n",
+ "23 1971 13620.000 Albrechtstraße 30 \n",
+ "24 1973 13640.000 Neuer Graben 29 \n",
+ "25 1971 11577.000 Salzdahlumer Str. 46/48 \n",
+ "26 1971 11577.000 Robert-Koch-Platz 8A \n",
+ "27 1971 11577.000 Herbert-Meyer-Straße 7 \n",
+ "28 1971 11577.000 Karl-Scharfenberg-Straße 55/57 \n",
+ "29 1967 342.000 Große Str. 107 \n",
+ "30 1998 558.000 Rombergstraße 40 \n",
+ "31 1998 558.000 Schlesier Str. 13A \n",
+ "32 1995 4.551 Driverstraße 22 \n",
+ "33 2010 485.000 Am Stockhof 2 \n",
+ "34 2009 6789.000 Friedrich-Paffrath-Straße 101 \n",
+ "35 2009 6789.000 Ofener Str. 16/19 \n",
+ "36 2009 6789.000 Weserstraße 52 \n",
+ "37 2006 500.000 Wilhelm-Busch-Weg 29 \n",
+ "38 2006 500.000 Bahnhofstraße 5 \n",
+ "\n",
+ " lat lon plz \\\n",
+ "0 52.257738 10.502315 38118 Braunschweig \n",
+ "1 52.273550 10.530097 38106 Braunschweig \n",
+ "2 53.477650 9.704650 21614 Buxtehude \n",
+ "3 51.804840 10.334110 38678 Clausthal-Zellerfeld \n",
+ "4 53.368160 7.181410 26723 Emden \n",
+ "5 51.538910 9.933220 37073 Göttingen \n",
+ "6 51.534070 9.937850 37073 Göttingen \n",
+ "7 52.366200 9.772470 30173 Hannover \n",
+ "8 52.354190 9.722380 30459 Hannover \n",
+ "9 52.377380 9.753920 30175 Hannover \n",
+ "10 52.321150 9.818680 30539 Hannover \n",
+ "11 52.384050 9.806030 30625 Hannover \n",
+ "12 52.354680 9.797730 30559 Hannover \n",
+ "13 52.382250 9.717770 30167 Hannover \n",
+ "14 52.708843 10.140710 29320 Südheide \n",
+ "15 52.134010 9.974690 31141 Hildesheim \n",
+ "16 52.142460 9.957980 31134 Hildesheim \n",
+ "17 51.827260 9.450690 37603 Holzminden \n",
+ "18 51.521750 9.969670 37085 Göttingen \n",
+ "19 53.228531 10.401710 21335 Lüneburg \n",
+ "20 52.144840 9.949230 31134 Hildesheim \n",
+ "21 52.370500 9.722390 30169 Hannover \n",
+ "22 53.147340 8.179020 26129 Oldenburg \n",
+ "23 52.282680 8.025010 49076 Osnabrück \n",
+ "24 52.271370 8.044540 49074 Osnabrück \n",
+ "25 52.176830 10.548650 38302 Wolfenbüttel \n",
+ "26 52.425950 10.787110 38440 Wolfsburg \n",
+ "27 52.897610 10.446590 29556 Suderburg \n",
+ "28 52.087240 10.380550 38229 Salzgitter \n",
+ "29 53.106680 9.163100 28870 Ottersberg \n",
+ "30 52.721250 8.278910 49377 Vechta \n",
+ "31 52.611710 8.363340 49356 Diepholz \n",
+ "32 52.721170 8.293800 49377 Vechta \n",
+ "33 52.098750 9.355420 31785 Hameln \n",
+ "34 53.547870 8.088040 26389 Wilhelmshaven \n",
+ "35 53.141790 8.202130 26121 Oldenburg \n",
+ "36 53.242440 8.466510 26931 Elsfleth \n",
+ "37 52.206960 9.091120 31737 Rinteln \n",
+ "38 52.239810 9.104230 31707 Bad Eilsen \n",
+ "\n",
+ " pic \n",
+ "0 https://www.hbk-bs.de/fileadmin/_processed_/5/... \n",
+ "1 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "2 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "3 https://www.presse.tu-clausthal.de/fileadmin/T... \n",
+ "4 https://sta-hisweb.hs-emden-leer.de/QIS/images... \n",
+ "5 https://goettingen-campus.de/fileadmin/_proces... \n",
+ "6 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "7 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "8 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "9 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "10 https://www.visit-hannover.com/var/storage/ima... \n",
+ "11 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "12 https://upload.wikimedia.org/wikipedia/de/thum... \n",
+ "13 https://www.uni-hannover.de/fileadmin/_process... \n",
+ "14 https://cdn.max-e5.info/damfiles/logo/fh_herma... \n",
+ "15 https://www.uni-hildesheim.de/media/_processed... \n",
+ "16 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "17 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "18 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "19 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "20 https://static.studycheck.de/media/images/inst... \n",
+ "21 https://www.nsi-hsvn.de/fileadmin/user_upload/... \n",
+ "22 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "23 https://login.hs-osnabrueck.de/nidp/hsos/image... \n",
+ "24 https://www.eh-tabor.de/sites/default/files/st... \n",
+ "25 https://www.ostfalia.de/export/system/modules/... \n",
+ "26 https://www.ostfalia.de/export/system/modules/... \n",
+ "27 https://www.ostfalia.de/export/system/modules/... \n",
+ "28 https://www.ostfalia.de/export/system/modules/... \n",
+ "29 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "30 https://www.phwt.de/wp-content/uploads/2020/09... \n",
+ "31 https://www.phwt.de/wp-content/uploads/2020/09... \n",
+ "32 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "33 https://upload.wikimedia.org/wikipedia/commons... \n",
+ "34 https://www.jade-hs.de/fileadmin/layout2016/as... \n",
+ "35 https://www.jade-hs.de/fileadmin/layout2016/as... \n",
+ "36 https://www.jade-hs.de/fileadmin/layout2016/as... \n",
+ "37 https://www.steuerakademie.niedersachsen.de/as... \n",
+ "38 https://www.steuerakademie.niedersachsen.de/as... "
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "### BEGIN SOLUTION\n",
+ "df = pd.read_csv('unis_nd.csv')\n",
+ "df\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "id": "a30598a7-c7d4-42cc-a9b8-dc6356d060aa",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-3e80e16a38e85d29",
+ "locked": true,
+ "points": 1,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Your Solutions are tested here..\n",
+ "assert isinstance(df, pd.DataFrame)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "da44f50f-0c2d-404d-8083-289742c5497a",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-237bfc25448676b2",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "## 3.2: Defining the Map\n",
+ "\n",
+ "Before we plot the dataset, define a map with the name `lower_saxony`. \n",
+ "\n",
+ "- The location should be the georaphic centre of Lower Saxony in _Wehrenberg 27318 Hoyerhagen_ `(52.806390, 9.135110)`.\n",
+ "- Use a suitable tileset from the documentation\n",
+ "- Use a suitable zoom setting"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "bfe04668-a597-4f93-b6e4-11ef17d18dcd",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-0d7c995b3fcc368e",
+ "locked": false,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "### BEGIN SOLUTION\n",
+ "lower_saxony = folium.Map(\n",
+ " location=(52.806390, 9.135110), # Georaphical centre Point of Lower Saxony Wehrenberg 27318 Hoyerhagen\n",
+ " tiles='OpenStreetMap',\n",
+ " zoom_start=7\n",
+ " )\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "a2f05ce6-7942-4c71-b1e2-a709c88b0f36",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-77f8257bb3c1308f",
+ "locked": true,
+ "points": 4,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Your Solutions are tested here..\n",
+ "assert isinstance(lower_saxony, folium.Map)\n",
+ "assert len(lower_saxony.location) == 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "357c71bb-923a-4de6-bcbd-b9d2741498fc",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-d66a439bbfb3778a",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "source": [
+ "## 3.3 Plotting the Dataset\n",
+ "\n",
+ "Write a for loop which reads the values from the dataset `df` and add the markers to the map `lower_saxony` using the already defined functions `popup_factory` and `marker_factory`. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "b392f48f-f0ae-4158-806f-859e71009c04",
+ "metadata": {
+ "nbgrader": {
+ "grade": true,
+ "grade_id": "cell-b744358aaaa7db44",
+ "locked": false,
+ "points": 5,
+ "schema_version": 3,
+ "solution": true,
+ "task": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "### BEGIN SOLUTION\n",
+ "for index, row in df.iterrows():\n",
+ " pp = popup_factory(\n",
+ " adr=row['Address'],\n",
+ " zipc=row['plz'],\n",
+ " country='Germany, DE',\n",
+ " pic=row['pic'],\n",
+ " )\n",
+ " location = (float(row['lat']), float(row['lon']))\n",
+ " \n",
+ " is_public = False\n",
+ " if row['Sponsorship'] == 'public':\n",
+ " is_public = True\n",
+ " \n",
+ " marker = marker_factory(location, pp, is_public) \n",
+ " marker.add_to(lower_saxony)\n",
+ " \n",
+ "lower_saxony\n",
+ "### END SOLUTION"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "id": "ab37a764-3718-4327-976c-146e5531a048",
+ "metadata": {
+ "nbgrader": {
+ "grade": false,
+ "grade_id": "cell-49864685eac331d1",
+ "locked": true,
+ "schema_version": 3,
+ "solution": false,
+ "task": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Your Solutions are tested and displayed here..\n",
+ "lower_saxony"
+ ]
+ }
+ ],
+ "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.12.7"
+ },
+ "toc-autonumbering": false
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Material/wise_24_25/lernmaterial/people_in_germany.csv b/Material/wise_24_25/lernmaterial/people_in_germany.csv
index 1caa8f1..890d3c9 100644
--- a/Material/wise_24_25/lernmaterial/people_in_germany.csv
+++ b/Material/wise_24_25/lernmaterial/people_in_germany.csv
@@ -1,1001 +1,1001 @@
gender,height,weight
-False,199.3,109.9
-True,188.3,76.1
-False,193.7,103.7
-True,165.1,88.2
-False,177.5,66.6
-True,156.6,62.5
-False,190.6,81.5
-True,200.5,90.7
-False,179.4,92.0
-True,164.1,61.5
-False,203.7,71.7
-True,162.9,82.3
-False,161.5,44.9
-True,170.6,59.8
-False,180.8,105.6
-True,152.7,97.1
-False,165.8,94.4
-True,173.5,73.1
-False,191.6,143.4
-True,187.0,64.9
-False,183.9,46.2
-True,169.4,86.8
-False,189.0,109.9
-True,174.4,77.1
-False,172.3,106.0
-True,146.8,85.6
-False,193.3,75.9
-True,169.1,93.0
-False,187.3,109.5
-True,178.0,84.4
-False,181.3,128.1
-True,163.1,84.3
-False,184.2,80.4
-True,171.5,68.8
-False,173.0,68.8
-True,158.2,74.3
-False,191.2,101.3
-True,181.5,71.1
-False,173.9,89.4
-True,168.8,74.5
-False,183.3,64.6
-True,167.8,80.3
-False,173.5,97.1
-True,166.6,60.1
-False,168.3,124.7
-True,182.6,74.0
-False,172.8,79.5
-True,153.4,54.9
-False,172.8,106.6
-True,171.0,91.7
-False,166.5,67.9
-True,184.2,64.9
-False,176.0,61.9
-True,157.5,51.2
-False,155.4,88.0
-True,167.5,68.8
-False,169.0,103.6
-True,172.0,58.1
-False,192.0,45.1
-True,174.3,17.7
-False,187.1,130.2
-True,175.6,57.4
-False,181.0,46.0
-True,165.9,41.0
-False,186.1,98.0
-True,166.8,54.5
-False,190.2,85.0
-True,177.2,95.5
-False,195.1,37.5
-True,154.6,54.0
-False,170.6,126.5
-True,174.7,53.3
-False,186.0,23.0
-True,157.1,58.6
-False,174.4,34.2
-True,189.1,65.9
-False,172.3,38.7
-True,176.8,50.5
-False,186.3,88.8
-True,175.4,67.6
-False,192.6,85.4
-True,164.5,97.3
-False,192.1,80.6
-True,192.8,69.5
-False,181.7,75.9
-True,157.6,23.0
-False,170.5,60.4
-True,160.7,61.7
-False,166.9,110.7
-True,150.7,43.8
-False,169.3,100.9
-True,163.9,44.4
-False,174.6,79.3
-True,186.2,36.8
-False,203.8,91.2
-True,154.8,54.6
-False,187.9,108.2
-True,153.6,62.9
-False,196.6,59.5
-True,163.7,80.0
-False,174.5,58.6
-True,174.8,17.1
-False,168.7,69.2
-True,190.6,55.3
-False,185.2,68.0
-True,180.7,80.6
-False,186.8,94.9
-True,147.7,111.8
-False,181.6,83.1
-True,168.0,66.3
-False,198.8,101.8
-True,158.2,53.7
-False,172.3,116.7
-True,160.2,68.2
-False,172.7,105.8
-True,159.2,74.4
-False,194.1,144.4
-True,158.4,78.4
-False,172.5,111.8
-True,184.4,25.9
-False,181.2,150.3
-True,161.9,77.6
-False,194.9,90.2
-True,145.7,79.2
-False,184.0,107.0
-True,155.3,19.6
-False,167.1,65.6
-True,175.1,61.6
-False,166.4,66.6
-True,175.4,65.3
-False,181.3,97.2
-True,178.0,65.2
-False,189.1,90.1
-True,158.9,56.4
-False,177.5,63.0
-True,168.7,58.5
-False,179.3,53.0
-True,181.2,95.9
-False,185.8,132.6
-True,174.6,62.4
-False,170.0,105.0
-True,154.3,55.5
-False,176.6,91.8
-True,167.5,65.4
-False,178.8,93.9
-True,159.8,33.4
-False,168.0,78.2
-True,172.5,69.5
-False,171.4,26.7
-True,177.0,83.9
-False,177.0,119.5
-True,172.7,94.8
-False,176.4,81.4
-True,155.5,67.5
-False,175.7,84.9
-True,164.7,68.2
-False,184.1,96.3
-True,152.8,74.3
-False,171.4,100.3
-True,149.7,73.9
-False,178.5,102.7
-True,144.7,73.1
-False,176.3,97.9
-True,160.4,72.0
-False,194.6,100.9
-True,171.6,72.1
-False,190.9,121.6
-True,146.8,58.0
-False,168.6,94.0
-True,159.7,71.9
-False,186.7,88.8
-True,162.2,70.0
-False,183.7,119.6
-True,157.2,42.7
-False,178.4,110.6
-True,174.9,69.8
-False,175.4,105.3
-True,169.4,71.0
-False,192.5,144.0
-True,168.3,49.3
-False,174.3,98.2
-True,157.5,84.2
-False,169.1,122.3
-True,174.1,85.0
-False,182.7,116.5
-True,145.9,74.5
-False,177.5,90.8
-True,156.9,73.9
-False,172.7,82.8
-True,184.8,42.0
-False,185.4,49.6
-True,174.4,42.9
-False,159.3,66.9
-True,135.5,77.3
-False,180.7,117.7
-True,157.0,29.6
-False,180.2,59.8
-True,164.9,99.2
-False,175.6,13.6
-True,169.2,64.7
-False,187.0,84.2
-True,175.6,44.7
-False,181.1,106.3
-True,156.5,78.8
-False,188.5,99.5
-True,147.4,53.7
-False,172.5,80.4
-True,150.4,66.0
-False,204.5,119.2
-True,129.3,64.0
-False,171.5,49.0
-True,180.4,94.0
-False,173.8,64.1
-True,181.4,98.5
-False,178.7,22.7
-True,175.6,59.3
-False,195.7,102.7
-True,169.0,83.2
-False,163.9,47.4
-True,172.4,32.8
-False,171.5,39.6
-True,174.4,80.5
-False,184.2,56.7
-True,150.6,84.2
-False,186.7,130.9
-True,169.1,77.7
-False,193.5,59.5
-True,167.3,102.7
-False,175.4,102.3
-True,167.9,24.8
-False,171.6,82.7
-True,191.7,113.0
-False,170.4,131.6
-True,163.7,70.8
-False,174.3,71.5
-True,170.7,63.9
-False,174.6,89.4
-True,140.7,95.6
-False,182.6,81.4
-True,158.1,61.6
-False,181.8,75.3
-True,186.1,81.5
-False,167.8,46.7
-True,179.1,83.9
-False,171.4,103.7
-True,161.8,69.3
-False,186.6,90.6
-True,174.0,75.9
-False,160.7,69.2
-True,163.6,56.2
-False,185.2,89.0
-True,147.2,95.1
-False,179.8,91.4
-True,170.1,94.0
-False,168.6,94.6
-True,151.3,39.5
-False,170.0,109.3
-True,153.5,50.0
-False,180.1,159.9
-True,169.4,35.4
-False,162.2,74.7
-True,174.9,67.5
-False,187.4,93.2
-True,177.3,100.0
-False,171.2,76.6
-True,156.2,78.4
-False,190.9,100.8
-True,172.3,69.3
-False,173.0,53.0
-True,162.9,24.5
-False,163.1,129.9
-True,180.4,77.5
-False,176.6,109.6
-True,150.1,57.5
-False,182.0,62.5
-True,157.6,58.7
-False,185.1,64.7
-True,184.3,65.5
-False,175.3,59.1
-True,151.0,44.4
-False,178.2,95.4
-True,174.8,61.1
-False,179.6,98.3
-True,158.3,37.7
-False,172.0,100.2
-True,162.7,75.0
-False,181.9,82.2
-True,183.5,63.0
-False,174.1,102.1
-True,166.5,61.0
-False,173.5,71.5
-True,170.3,71.7
-False,170.6,120.0
-True,168.5,36.0
-False,180.1,89.7
-True,159.9,57.3
-False,159.1,108.2
-True,158.2,109.1
-False,183.3,47.8
-True,174.5,60.1
-False,185.1,73.7
-True,160.9,67.6
-False,191.7,110.0
-True,171.1,81.0
-False,164.9,105.3
-True,158.7,51.1
-False,159.5,80.4
-True,160.1,68.8
-False,165.0,94.3
-True,173.9,80.9
-False,191.7,57.0
-True,175.2,70.8
-False,182.5,78.5
-True,154.6,99.3
-False,172.9,77.9
-True,161.9,46.0
-False,171.3,112.6
-True,146.9,35.4
-False,188.0,92.3
-True,177.9,87.7
-False,159.1,68.6
-True,153.7,83.8
-False,164.9,54.9
-True,156.9,55.3
-False,168.5,111.0
-True,174.2,71.0
-False,184.9,82.5
-True,160.2,60.9
-False,177.7,139.8
-True,181.8,50.3
-False,180.9,123.4
-True,191.2,70.8
-False,191.6,92.9
-True,170.9,76.8
-False,191.8,74.6
-True,168.1,74.5
-False,161.2,103.7
-True,169.3,68.2
-False,181.4,61.9
-True,167.2,86.6
-False,176.0,58.9
-True,173.7,82.5
-False,189.0,41.3
-True,174.2,54.2
-False,189.1,88.5
-True,164.7,37.6
-False,188.5,99.0
-True,146.4,34.8
-False,156.8,126.0
-True,174.6,74.6
-False,181.2,113.4
-True,160.2,57.6
-False,204.1,43.4
-True,163.6,66.8
-False,180.5,89.8
-True,150.9,113.6
-False,182.6,89.7
-True,161.3,113.1
-False,187.3,72.3
-True,130.3,78.7
-False,170.4,85.0
-True,173.9,56.7
-False,180.8,75.5
-True,162.7,90.0
-False,163.9,108.5
-True,159.9,87.1
-False,172.7,22.2
-True,163.7,44.1
-False,185.2,110.7
-True,179.5,63.2
-False,158.1,89.7
-True,177.5,62.6
-False,174.8,85.8
-True,149.7,82.2
-False,184.1,95.2
-True,173.0,75.8
-False,186.6,51.0
-True,165.0,56.5
-False,166.7,91.6
-True,164.0,32.3
-False,186.9,86.0
-True,162.5,97.5
-False,180.3,120.6
-True,154.2,43.3
-False,170.4,77.7
-True,190.7,103.5
-False,178.3,88.4
-True,154.5,37.9
-False,179.9,65.2
-True,173.9,57.0
+False,185.5,99.3
+True,179.7,69.6
+False,189.7,51.7
+True,146.8,71.0
+False,166.9,64.2
+True,152.8,27.8
+False,177.5,100.7
+True,165.2,44.5
+False,166.7,98.1
+True,167.1,55.9
+False,180.6,56.4
+True,172.5,53.7
+False,185.9,79.5
+True,170.0,88.4
+False,166.4,113.3
+True,167.1,42.6
+False,155.9,73.8
+True,163.2,73.9
+False,161.7,63.0
+True,155.0,59.0
+False,169.4,104.1
+True,179.6,73.2
+False,172.6,97.6
+True,149.1,39.5
+False,167.8,86.6
+True,175.5,71.8
+False,178.9,120.5
+True,166.4,56.2
+False,174.7,107.7
+True,167.1,87.7
+False,187.7,99.5
+True,167.7,61.3
+False,180.3,75.4
+True,186.6,57.5
+False,180.6,104.8
+True,159.1,54.4
+False,179.1,147.4
+True,168.3,53.0
+False,172.8,63.7
+True,170.5,74.6
+False,179.2,110.1
+True,158.2,47.5
+False,186.5,133.9
+True,173.0,63.8
+False,169.2,57.4
+True,195.1,56.6
+False,176.5,76.2
+True,171.1,69.3
+False,169.7,102.0
+True,182.8,120.7
+False,173.6,72.6
+True,164.7,58.9
+False,185.6,94.3
+True,163.0,51.0
+False,159.6,97.3
+True,172.3,77.5
+False,176.9,95.9
+True,145.7,60.2
+False,173.4,97.6
+True,175.6,39.9
+False,187.4,98.0
+True,140.8,68.9
+False,188.8,126.0
+True,177.3,54.7
+False,175.9,140.7
+True,167.3,47.3
+False,165.9,52.1
+True,170.4,72.1
+False,168.7,71.4
+True,156.7,77.2
+False,178.6,107.3
+True,157.2,74.0
+False,184.4,98.4
+True,166.4,77.2
+False,173.4,83.2
+True,160.0,87.7
+False,172.1,72.2
+True,165.5,69.3
+False,165.6,120.5
+True,182.8,86.0
+False,189.1,89.5
+True,189.4,78.8
+False,165.6,58.3
+True,156.7,57.5
+False,176.3,89.7
+True,155.6,54.4
+False,196.6,128.5
+True,166.2,67.9
+False,187.2,122.0
+True,194.0,67.4
+False,155.5,114.7
+True,156.8,77.4
+False,174.2,35.9
+True,158.5,78.0
+False,182.1,38.5
+True,165.6,43.3
+False,177.7,86.8
+True,168.4,54.4
+False,182.6,53.6
+True,171.9,88.5
+False,181.4,104.2
+True,154.8,96.8
+False,173.6,87.9
+True,164.9,95.1
+False,167.6,35.5
+True,149.1,74.5
+False,166.6,104.6
+True,169.1,44.7
+False,180.6,50.8
+True,179.0,99.7
+False,177.2,30.8
+True,152.5,51.5
+False,167.4,132.9
+True,168.7,50.3
+False,182.5,86.4
+True,182.3,71.1
+False,169.2,118.6
+True,173.1,122.2
+False,181.9,59.9
+True,164.6,42.1
+False,188.2,84.4
+True,142.0,37.3
+False,177.2,67.6
+True,164.1,55.7
+False,196.0,36.5
+True,163.8,86.0
+False,182.7,117.9
+True,183.7,53.8
+False,190.3,99.1
+True,165.7,83.8
+False,172.8,94.0
+True,156.3,58.0
+False,181.5,91.2
+True,161.1,85.5
+False,183.4,64.9
+True,158.7,57.9
+False,170.1,86.1
+True,160.8,32.8
+False,162.0,83.6
+True,170.8,53.8
+False,192.4,89.9
+True,170.3,40.6
+False,180.8,84.7
+True,173.4,72.4
+False,189.2,102.1
+True,163.2,40.3
+False,184.8,136.9
+True,156.4,85.9
+False,166.9,85.4
+True,138.2,52.2
+False,185.6,93.2
+True,151.2,56.5
+False,194.5,76.6
+True,164.8,64.1
+False,175.5,95.8
+True,161.3,60.1
False,168.2,69.0
-True,174.5,66.5
-False,176.2,85.7
-True,164.2,68.1
-False,167.2,111.1
-True,152.7,74.4
-False,176.7,41.0
-True,153.5,121.6
-False,167.2,67.3
-True,151.5,74.9
-False,195.9,73.6
-True,160.1,80.6
-False,169.1,77.8
-True,160.3,70.5
-False,193.9,94.1
-True,162.1,70.4
-False,179.5,93.8
-True,176.8,65.4
-False,185.9,73.0
-True,152.0,87.3
-False,187.8,75.9
-True,164.3,59.5
-False,189.3,95.3
-True,174.1,74.3
-False,178.5,66.2
-True,165.5,67.0
-False,169.0,57.0
-True,177.2,79.7
-False,193.1,65.1
-True,172.4,58.7
-False,186.3,107.0
-True,160.2,42.4
-False,176.8,153.9
-True,181.8,68.1
-False,186.9,85.1
-True,159.2,83.7
-False,181.6,67.6
-True,146.5,79.3
-False,165.3,87.2
-True,171.7,70.3
-False,190.4,73.3
-True,182.2,54.8
-False,163.3,113.0
-True,181.6,82.7
-False,187.7,55.6
-True,167.8,65.6
-False,172.0,86.5
-True,158.2,71.6
-False,186.2,66.1
-True,161.0,79.7
-False,166.1,131.3
-True,178.7,85.8
-False,190.4,94.6
-True,148.8,91.6
-False,173.5,56.0
-True,148.9,86.8
-False,181.2,71.1
-True,155.8,89.0
-False,179.9,78.5
-True,175.3,28.6
-False,170.4,73.0
-True,163.8,59.8
-False,180.4,85.8
-True,173.8,68.6
-False,165.7,116.7
-True,159.7,107.4
-False,196.3,122.9
-True,150.1,44.2
-False,183.9,107.2
-True,145.3,12.8
-False,186.9,88.4
-True,162.0,61.9
-False,171.9,93.6
-True,150.5,91.8
-False,171.4,77.1
-True,172.5,36.5
-False,174.0,129.1
-True,165.6,53.6
-False,179.6,91.7
-True,157.9,76.5
-False,170.0,108.7
-True,169.2,73.2
-False,185.4,114.8
-True,165.8,91.3
-False,190.2,80.3
-True,168.1,67.2
-False,183.2,60.1
-True,176.0,46.4
-False,160.0,63.0
-True,146.5,85.9
-False,195.9,109.5
-True,161.4,93.6
-False,176.1,45.5
-True,188.7,48.1
-False,188.7,75.1
-True,178.2,61.0
-False,172.5,101.8
-True,161.0,65.0
-False,184.0,75.3
-True,166.3,112.3
-False,175.3,76.0
-True,157.9,73.5
-False,164.1,123.3
-True,145.8,75.6
-False,172.1,82.6
-True,177.0,43.1
-False,171.8,65.3
-True,165.2,55.2
-False,177.5,71.5
-True,155.1,57.0
-False,182.2,57.0
-True,180.3,42.4
-False,173.5,81.5
-True,168.2,71.2
-False,161.0,93.2
-True,137.1,76.7
-False,180.5,59.4
-True,181.6,74.3
-False,172.1,106.8
-True,174.6,62.8
-False,167.3,96.1
-True,171.2,45.1
-False,173.9,84.0
-True,141.7,42.5
-False,175.5,108.9
-True,171.5,22.8
-False,180.7,117.1
-True,176.6,86.4
-False,174.8,86.4
-True,154.7,61.1
-False,188.7,100.2
-True,143.6,55.4
-False,199.1,53.5
-True,161.3,53.9
-False,190.6,75.8
-True,157.9,67.7
-False,174.3,67.5
-True,152.2,57.0
-False,183.2,96.7
-True,177.6,68.1
-False,175.7,74.0
-True,177.1,47.1
-False,195.5,114.7
-True,154.4,20.8
-False,179.2,62.9
-True,168.8,62.5
-False,168.6,68.5
-True,180.0,66.6
-False,168.2,90.1
-True,176.8,89.7
-False,184.9,143.4
-True,177.2,48.6
-False,189.4,67.8
-True,170.6,85.6
-False,209.0,106.6
-True,156.5,60.5
-False,164.4,66.0
-True,152.4,71.8
-False,177.6,40.8
-True,172.1,55.9
-False,187.2,112.0
-True,171.2,65.6
-False,177.8,77.9
-True,166.9,49.4
-False,184.8,64.6
-True,165.4,76.9
-False,167.8,95.0
-True,175.0,65.8
-False,173.0,93.1
-True,172.1,45.1
-False,171.6,66.3
-True,180.2,84.4
-False,173.2,118.0
-True,170.9,85.2
-False,181.1,66.0
-True,165.1,63.4
-False,172.4,81.7
-True,164.1,79.5
-False,189.0,65.3
-True,164.5,44.1
-False,173.4,95.4
-True,161.8,78.9
-False,190.4,81.1
-True,171.4,32.7
-False,169.3,69.5
-True,162.0,74.5
-False,189.6,106.8
-True,162.4,12.1
-False,207.2,123.1
-True,142.6,46.1
-False,159.9,71.3
-True,164.5,67.7
-False,177.8,62.5
-True,169.9,49.1
-False,174.5,142.4
-True,156.7,59.9
-False,185.0,97.9
-True,143.2,73.0
-False,175.6,75.7
-True,170.8,62.4
-False,188.4,90.2
-True,172.8,48.8
-False,165.5,90.9
-True,180.4,75.5
-False,174.2,87.6
-True,152.1,63.7
-False,170.9,84.3
-True,156.7,80.3
-False,189.5,53.9
-True,177.0,86.8
-False,177.6,109.0
-True,171.6,121.1
-False,189.6,112.9
-True,161.0,67.0
-False,178.2,89.3
-True,178.9,48.5
-False,187.5,93.4
-True,162.6,46.8
-False,175.0,77.8
-True,179.4,91.9
-False,167.9,122.8
-True,139.3,39.3
-False,180.6,75.2
-True,161.6,75.8
-False,191.7,79.7
-True,163.2,53.9
-False,180.1,110.9
-True,170.6,50.4
-False,183.9,51.9
-True,155.1,69.1
-False,178.0,81.9
-True,142.9,68.1
-False,190.0,94.6
-True,164.6,60.9
-False,179.8,82.8
-True,168.4,86.5
-False,189.7,121.9
-True,185.5,63.3
-False,189.1,87.3
-True,171.3,64.0
-False,183.3,98.6
-True,183.3,101.7
-False,199.7,99.1
-True,145.0,86.5
-False,167.0,80.9
-True,193.3,86.8
-False,192.3,73.5
-True,176.7,72.0
-False,164.0,73.5
-True,156.7,64.0
-False,170.5,87.0
-True,151.7,79.4
-False,174.2,102.7
-True,175.8,52.5
-False,172.0,92.6
-True,169.3,48.5
-False,190.2,92.7
-True,143.8,49.5
-False,180.9,107.0
-True,158.4,65.4
-False,180.3,70.6
-True,151.7,68.9
-False,159.9,91.1
-True,162.6,69.5
-False,202.6,123.3
-True,158.6,107.0
-False,178.1,104.7
-True,141.8,74.0
-False,167.7,98.8
-True,150.5,63.8
-False,159.2,82.9
-True,176.5,61.4
-False,173.4,78.3
-True,166.2,87.3
-False,170.5,82.9
-True,174.1,80.4
-False,177.9,80.2
-True,154.7,76.1
-False,190.9,46.9
-True,157.3,80.1
-False,181.5,90.9
-True,158.8,35.5
-False,185.6,144.0
-True,181.2,50.5
-False,158.6,37.0
-True,166.8,86.9
-False,166.6,94.9
-True,151.4,90.6
-False,176.5,73.8
-True,133.7,100.1
-False,194.7,45.2
-True,168.6,53.2
-False,182.0,92.3
-True,169.0,99.8
-False,188.7,79.4
-True,164.3,79.7
-False,190.1,105.1
-True,163.2,94.3
-False,191.2,101.3
-True,161.5,52.7
-False,198.4,132.2
-True,164.7,102.4
-False,181.8,80.9
-True,152.7,45.1
-False,178.8,119.6
-True,159.7,59.0
-False,179.4,133.5
-True,147.5,81.0
-False,166.6,69.1
-True,172.9,52.0
-False,186.1,48.9
-True,184.3,105.7
-False,173.7,82.4
-True,176.7,56.6
-False,189.7,55.2
-True,178.2,40.2
-False,194.9,91.1
-True,155.8,84.7
-False,177.6,64.6
-True,165.1,45.0
-False,182.4,104.1
-True,169.5,111.2
-False,185.4,84.8
-True,146.0,73.6
-False,167.6,84.9
-True,175.0,73.9
-False,205.9,100.3
-True,180.0,61.6
-False,190.9,128.5
-True,165.3,48.1
-False,195.5,54.9
-True,176.1,69.8
-False,181.3,130.0
-True,155.1,103.5
-False,176.4,106.4
-True,147.3,99.3
-False,190.2,35.1
-True,169.1,48.4
-False,172.9,86.2
-True,181.9,72.9
-False,181.6,139.9
-True,163.9,67.0
-False,176.0,54.3
-True,165.0,73.8
-False,184.5,104.3
-True,153.5,43.1
-False,183.6,48.7
-True,176.3,60.2
-False,193.2,134.6
-True,177.8,56.9
-False,186.8,81.4
-True,152.8,43.0
-False,193.3,90.2
-True,165.1,50.7
-False,187.3,130.2
-True,169.0,55.1
-False,162.0,92.3
-True,154.7,46.4
-False,170.0,111.7
-True,150.4,71.7
-False,186.7,21.1
-True,177.4,75.0
-False,169.0,76.7
-True,160.9,43.5
-False,176.3,59.0
-True,167.2,61.6
-False,167.2,80.8
-True,168.7,59.3
-False,174.8,88.6
-True,157.9,96.8
-False,194.9,101.2
-True,183.4,63.3
-False,168.0,104.7
-True,155.1,67.6
-False,189.7,76.7
-True,151.1,92.5
-False,177.8,112.7
-True,171.3,79.5
-False,201.3,49.7
-True,176.4,85.1
-False,171.8,59.8
-True,177.0,79.0
-False,192.5,128.5
-True,154.5,60.6
-False,175.9,85.7
-True,188.1,70.2
-False,194.0,40.1
-True,173.2,120.3
-False,178.2,111.1
-True,156.8,51.8
-False,168.1,26.4
-True,175.9,55.8
-False,174.0,102.0
-True,162.8,84.7
-False,181.3,103.3
-True,172.6,54.1
-False,177.1,66.0
-True,168.2,51.8
-False,176.1,76.9
-True,181.9,77.0
-False,161.5,68.6
-True,173.2,108.0
-False,163.1,73.8
-True,161.2,90.9
-False,166.5,61.0
-True,165.6,59.2
-False,183.9,59.3
-True,161.5,106.1
-False,167.5,94.9
-True,155.0,76.3
-False,170.0,86.9
-True,184.0,56.5
-False,180.5,59.7
-True,157.5,62.7
-False,188.5,74.4
-True,167.9,69.8
-False,185.0,64.1
-True,169.5,85.3
-False,181.7,117.5
-True,160.2,55.0
-False,180.4,94.5
-True,156.6,82.9
-False,170.6,94.1
-True,159.3,38.4
-False,170.7,87.4
-True,184.2,63.6
-False,177.6,74.4
-True,163.5,59.8
-False,169.0,48.1
-True,154.5,93.1
-False,180.5,107.3
-True,161.6,70.5
-False,174.7,124.0
-True,169.7,95.8
-False,173.8,51.5
-True,162.5,91.0
-False,201.6,57.2
-True,166.6,94.4
-False,186.5,61.3
-True,177.3,81.8
-False,190.6,66.6
-True,180.0,38.6
-False,167.9,109.0
-True,148.0,59.4
-False,184.1,91.1
-True,157.0,73.8
-False,168.7,89.1
-True,159.8,73.8
-False,177.9,45.9
-True,150.0,64.0
-False,186.5,91.5
-True,184.2,61.0
-False,165.5,127.1
-True,165.8,76.7
-False,171.7,130.8
-True,157.0,64.5
-False,198.2,45.4
-True,164.3,53.4
-False,167.0,66.1
-True,182.4,104.3
-False,190.2,107.5
-True,173.0,30.7
-False,167.9,118.0
-True,180.8,33.4
-False,152.0,99.8
-True,166.1,67.1
-False,190.2,112.4
-True,161.5,82.0
-False,186.5,77.2
-True,163.6,28.4
-False,158.3,82.5
-True,171.6,84.5
-False,174.4,114.5
-True,160.2,41.7
-False,179.6,100.4
-True,149.0,44.8
-False,177.3,58.9
-True,178.4,58.5
-False,176.7,108.7
-True,164.6,52.6
-False,182.9,89.3
-True,154.0,81.0
-False,188.1,68.9
-True,163.3,47.7
-False,161.2,59.7
-True,168.8,33.4
-False,179.9,92.5
-True,151.6,95.2
-False,203.0,127.1
-True,156.9,69.4
-False,187.4,77.6
-True,165.7,61.3
-False,179.2,71.1
-True,155.9,54.3
-False,180.0,76.7
-True,170.9,68.8
-False,188.5,65.2
-True,167.0,60.7
-False,182.9,30.8
-True,156.7,88.1
-False,190.0,43.7
-True,155.2,60.2
-False,179.3,86.4
-True,181.8,80.5
-False,188.7,62.8
-True,169.9,61.5
-False,192.1,105.6
-True,171.5,85.6
-False,190.0,92.5
-True,178.0,62.1
-False,196.3,88.1
-True,174.6,57.0
-False,165.4,41.9
-True,159.7,70.7
-False,167.5,103.8
-True,150.7,89.9
-False,166.0,94.7
-True,184.5,75.8
-False,195.6,151.3
-True,165.4,49.5
-False,180.5,100.8
-True,169.4,52.9
-False,186.3,91.5
-True,167.0,43.7
-False,189.7,89.8
-True,168.2,72.4
-False,187.6,41.6
-True,160.5,88.3
-False,190.0,97.8
-True,153.7,40.9
-False,193.8,102.9
-True,166.0,48.2
-False,183.5,97.7
-True,172.7,111.5
-False,183.8,46.5
-True,161.7,77.1
-False,174.2,119.6
-True,151.1,77.0
-False,192.1,109.3
-True,178.4,25.9
-False,171.5,70.9
-True,147.4,88.8
-False,179.0,123.2
-True,146.8,49.5
-False,171.5,110.9
-True,167.9,55.5
-False,192.1,80.1
-True,144.0,73.7
-False,165.8,86.0
-True,177.5,63.6
-False,190.4,51.1
-True,166.1,60.3
-False,183.4,109.7
-True,181.4,65.9
-False,194.6,112.6
-True,133.8,83.2
-False,158.0,83.4
-True,189.6,34.7
-False,186.7,114.6
-True,163.3,116.0
-False,173.2,95.0
-True,180.9,74.6
-False,195.4,64.1
-True,177.4,47.2
-False,174.5,123.5
-True,156.3,77.3
-False,186.1,99.6
-True,168.4,67.4
-False,174.5,29.6
-True,153.4,110.9
-False,169.1,66.2
-True,179.9,74.0
-False,170.5,75.4
-True,159.7,81.6
-False,168.3,52.5
-True,162.1,35.4
-False,191.3,47.9
-True,165.5,90.0
-False,181.4,81.3
-True,170.9,64.7
-False,190.5,88.1
-True,175.3,60.5
-False,184.5,44.0
-True,147.3,37.0
-False,181.7,115.4
-True,171.1,42.1
-False,176.6,62.7
-True,166.6,80.8
-False,174.9,107.0
-True,157.3,57.7
-False,176.1,93.2
-True,157.5,49.5
-False,186.9,156.4
-True,154.3,59.7
-False,176.7,111.1
-True,157.1,68.0
-False,164.2,103.9
-True,158.4,60.3
-False,215.2,162.2
-True,164.8,64.3
-False,190.4,89.6
-True,179.3,82.3
-False,163.4,80.2
-True,158.7,65.8
-False,183.2,28.6
-True,155.8,76.8
-False,197.6,36.9
-True,164.0,56.2
-False,180.5,35.3
-True,152.8,70.0
+True,182.4,83.1
+False,175.9,75.7
+True,165.6,31.9
+False,197.2,130.6
+True,173.4,99.0
+False,188.3,113.0
+True,160.6,61.3
+False,191.1,84.8
+True,167.6,66.6
+False,175.1,114.4
+True,154.6,98.1
+False,187.4,87.4
+True,168.8,87.4
+False,188.5,67.5
+True,163.7,64.0
+False,170.1,120.0
+True,174.3,55.2
+False,170.7,61.4
+True,169.9,88.6
+False,181.3,89.7
+True,165.6,57.4
+False,198.3,44.8
+True,166.2,65.9
+False,164.4,81.3
+True,167.8,63.7
+False,173.6,83.5
+True,180.2,75.3
+False,186.9,143.1
+True,156.7,66.5
+False,196.1,105.2
+True,176.8,62.6
+False,198.7,98.8
+True,149.8,50.6
+False,168.1,80.2
+True,160.5,31.1
+False,173.7,85.2
+True,184.5,75.5
+False,188.6,67.1
+True,153.5,78.2
+False,174.9,87.1
+True,162.0,92.3
+False,170.1,53.3
+True,153.8,54.4
+False,172.6,74.4
+True,152.8,67.4
+False,188.0,96.5
+True,174.9,62.3
+False,186.1,68.7
+True,173.1,57.2
+False,172.6,79.1
+True,161.0,35.3
+False,181.3,118.0
+True,168.5,66.2
+False,179.3,107.4
+True,156.0,58.9
+False,185.6,122.8
+True,191.4,51.2
+False,179.0,132.7
+True,179.1,56.8
+False,173.9,105.1
+True,160.2,96.4
+False,194.5,60.7
+True,170.9,74.3
+False,157.6,42.1
+True,174.6,83.4
+False,170.5,67.5
+True,175.4,87.3
+False,177.5,81.5
+True,172.7,112.5
+False,202.8,111.3
+True,177.5,96.8
+False,174.4,75.5
+True,153.4,94.3
+False,176.2,92.2
+True,165.3,85.1
+False,166.4,68.8
+True,177.0,95.5
+False,177.9,132.8
+True,175.6,82.1
+False,167.2,90.0
+True,175.0,73.1
+False,166.3,45.4
+True,161.7,54.4
+False,186.4,97.0
+True,161.5,55.4
+False,173.8,86.2
+True,150.2,90.3
+False,171.2,40.0
+True,154.0,38.9
+False,200.4,66.8
+True,161.8,16.1
+False,180.1,84.8
+True,173.3,85.9
+False,180.7,94.0
+True,174.0,82.8
+False,166.2,88.7
+True,177.8,66.6
+False,193.2,84.2
+True,156.6,47.2
+False,182.7,43.5
+True,136.3,89.3
+False,175.2,76.9
+True,151.4,82.4
+False,185.7,121.5
+True,149.4,86.2
+False,185.8,86.2
+True,165.4,78.4
+False,169.1,79.3
+True,152.2,67.5
+False,178.6,140.3
+True,164.7,35.1
+False,188.7,80.0
+True,173.7,48.4
+False,184.1,52.6
+True,166.9,69.4
+False,178.5,108.7
+True,159.1,76.6
+False,176.8,86.5
+True,190.3,67.3
+False,175.3,88.0
+True,172.9,81.6
+False,187.0,121.7
+True,169.3,59.2
+False,177.8,52.1
+True,162.5,53.8
+False,188.4,99.9
+True,169.0,103.0
+False,170.1,84.0
+True,157.5,88.2
+False,160.7,124.5
+True,147.9,67.1
+False,184.1,100.2
+True,160.7,95.0
+False,174.6,70.1
+True,165.3,121.5
+False,164.4,66.2
+True,172.5,59.7
+False,177.4,85.0
+True,172.9,52.3
+False,195.6,121.0
+True,163.7,48.5
+False,191.8,82.6
+True,171.8,31.4
+False,172.3,99.3
+True,193.5,80.3
+False,178.5,75.5
+True,159.1,87.9
+False,163.8,85.2
+True,161.5,112.4
+False,165.5,93.8
+True,168.7,7.7
+False,184.2,106.9
+True,162.6,97.7
+False,188.1,83.7
+True,161.2,73.8
+False,170.0,64.2
+True,163.4,81.2
+False,186.9,109.6
+True,165.3,62.1
+False,168.0,76.4
+True,158.2,82.2
+False,187.9,97.6
+True,165.6,73.4
+False,149.9,114.5
+True,157.9,66.3
+False,177.6,54.1
+True,156.2,101.1
+False,171.9,90.7
+True,182.6,63.9
+False,163.7,21.5
+True,170.1,90.6
+False,177.9,91.3
+True,154.3,68.9
+False,179.2,56.6
+True,157.6,47.3
+False,186.5,80.9
+True,146.8,106.2
+False,158.9,87.5
+True,180.9,100.8
+False,177.4,79.4
+True,152.0,57.7
+False,174.8,71.6
+True,156.9,70.5
+False,167.9,96.0
+True,170.5,47.8
+False,168.6,49.0
+True,138.1,92.1
+False,169.8,124.2
+True,174.4,54.0
+False,179.3,96.4
+True,149.6,70.3
+False,157.7,84.2
+True,165.6,59.0
+False,180.4,100.9
+True,158.5,76.6
+False,175.4,101.9
+True,148.8,57.2
+False,185.6,73.1
+True,158.0,67.1
+False,194.1,131.9
+True,158.6,52.2
+False,196.7,61.3
+True,154.2,91.4
+False,174.1,79.5
+True,154.2,86.2
+False,161.9,115.1
+True,179.8,98.2
+False,180.2,123.6
+True,163.1,64.8
+False,200.5,65.0
+True,155.6,61.8
+False,164.9,111.2
+True,176.4,88.3
+False,178.8,68.3
+True,169.5,69.0
+False,176.3,85.4
+True,158.1,64.1
+False,171.0,49.3
+True,164.9,76.4
+False,167.6,53.1
+True,156.2,80.3
+False,184.0,74.3
+True,184.9,89.3
+False,178.6,84.7
+True,162.1,83.3
+False,162.6,86.0
+True,168.5,36.4
+False,179.4,60.7
+True,167.7,77.5
+False,170.9,92.7
+True,171.9,88.3
+False,180.6,79.0
+True,163.9,67.5
+False,182.8,90.6
+True,175.2,43.5
+False,195.2,62.4
+True,178.6,60.2
+False,184.9,84.4
+True,159.0,73.5
+False,180.1,64.6
+True,163.7,63.3
+False,175.5,130.3
+True,174.2,110.8
+False,193.4,75.6
+True,164.3,67.4
+False,178.3,112.4
+True,174.1,67.7
+False,193.4,42.6
+True,179.1,95.1
+False,144.2,104.7
+True,176.3,57.1
+False,182.1,110.2
+True,167.7,103.8
+False,181.5,64.5
+True,176.6,60.0
+False,181.2,100.0
+True,148.1,87.7
+False,179.1,60.2
+True,166.3,53.7
+False,184.2,129.2
+True,156.8,45.8
+False,175.4,50.9
+True,161.4,69.3
+False,187.8,45.3
+True,158.6,91.5
+False,188.0,50.3
+True,179.8,43.3
+False,188.5,86.2
+True,172.0,73.8
+False,159.5,129.4
+True,145.2,81.3
+False,181.0,113.2
+True,190.2,56.7
+False,187.4,70.6
+True,170.9,82.8
+False,193.2,102.9
+True,145.5,62.6
+False,177.7,114.6
+True,175.3,75.2
+False,184.3,65.6
+True,142.6,67.3
+False,179.8,74.1
+True,159.0,69.5
+False,155.6,37.4
+True,158.6,68.2
+False,179.2,80.3
+True,175.8,81.5
+False,187.0,84.9
+True,162.5,73.1
+False,191.6,83.3
+True,168.6,59.2
+False,151.8,76.3
+True,184.9,63.7
+False,183.5,63.3
+True,167.0,42.3
+False,187.8,73.5
+True,169.6,81.3
+False,191.4,92.5
+True,163.6,76.6
+False,179.7,56.1
+True,166.9,40.2
+False,183.5,79.9
+True,171.7,89.7
+False,180.3,140.3
+True,191.7,79.0
+False,188.2,72.2
+True,157.0,100.5
+False,184.4,89.7
+True,165.4,79.2
+False,162.4,64.2
+True,167.6,68.5
+False,160.6,109.4
+True,167.1,70.3
+False,167.0,46.0
+True,175.3,87.9
+False,187.7,33.9
+True,161.7,89.9
+False,188.2,96.1
+True,164.8,93.7
+False,178.6,42.7
+True,156.4,96.5
+False,182.5,84.6
+True,183.5,19.7
+False,161.5,110.0
+True,178.5,78.6
+False,170.4,106.5
+True,168.1,67.0
+False,185.8,76.9
+True,161.6,41.7
+False,185.4,52.6
+True,140.4,68.2
+False,171.2,53.2
+True,167.9,81.1
+False,186.2,137.0
+True,150.7,51.9
+False,176.6,46.4
+True,165.9,79.5
+False,180.8,102.6
+True,182.6,41.8
+False,180.5,116.1
+True,169.8,65.0
+False,159.1,113.2
+True,146.2,59.6
+False,180.5,75.9
+True,171.1,95.0
+False,164.8,84.5
+True,156.3,103.9
+False,167.5,69.1
+True,152.8,75.2
+False,184.7,98.3
+True,168.4,74.2
+False,163.3,117.7
+True,163.7,53.3
+False,170.7,53.3
+True,171.2,46.7
+False,179.3,142.4
+True,167.1,54.5
+False,180.9,63.7
+True,174.0,70.2
+False,179.6,71.3
+True,147.0,56.5
+False,174.9,57.4
+True,178.0,65.1
+False,170.4,72.0
+True,166.1,57.4
+False,174.4,52.9
+True,170.0,92.1
+False,168.7,55.4
+True,164.3,78.6
+False,178.9,154.8
+True,146.3,81.1
+False,168.8,72.4
+True,159.5,48.1
+False,173.1,64.1
+True,161.9,73.9
+False,181.4,55.6
+True,167.2,62.9
+False,191.9,77.0
+True,148.2,110.5
+False,183.5,72.0
+True,150.4,84.4
+False,172.8,90.6
+True,172.0,61.6
+False,170.2,52.2
+True,160.5,81.7
+False,178.3,81.0
+True,171.6,57.9
+False,200.7,92.8
+True,172.8,92.7
+False,183.5,90.2
+True,176.0,61.3
+False,172.4,94.6
+True,177.3,49.0
+False,166.5,65.8
+True,151.7,81.4
+False,171.9,96.8
+True,164.4,80.2
+False,200.0,106.2
+True,153.4,66.7
+False,183.4,70.5
+True,184.4,108.8
+False,181.9,48.5
+True,152.1,59.2
+False,154.9,104.8
+True,164.9,76.3
+False,184.9,77.4
+True,151.0,77.2
+False,214.6,98.3
+True,160.5,87.3
+False,190.2,83.0
+True,172.6,61.9
+False,181.5,84.1
+True,181.7,68.5
+False,185.0,35.3
+True,146.5,74.2
+False,178.9,97.7
+True,157.5,91.3
+False,182.6,116.5
+True,165.6,103.5
+False,185.8,94.7
+True,177.1,80.7
+False,175.4,79.8
+True,152.1,56.1
+False,178.9,75.5
+True,166.9,74.4
+False,171.9,76.4
+True,155.5,73.9
+False,192.6,61.3
+True,165.2,59.9
+False,182.5,61.9
+True,179.7,87.4
+False,173.4,63.7
+True,169.4,53.2
+False,187.7,112.0
+True,151.7,53.7
+False,169.7,90.4
+True,182.9,31.7
+False,180.8,67.4
+True,193.1,45.7
+False,169.5,97.7
+True,158.5,77.3
+False,186.4,37.4
+True,163.6,50.9
+False,171.5,133.6
+True,152.5,81.5
+False,198.3,37.2
+True,170.3,59.0
+False,185.8,88.2
+True,168.2,65.7
+False,175.0,52.1
+True,167.8,17.6
+False,175.8,68.8
+True,178.9,42.9
+False,185.9,61.6
+True,163.1,71.9
+False,182.6,153.5
+True,148.7,81.1
+False,175.8,100.0
+True,166.9,81.0
+False,179.2,109.7
+True,149.8,86.3
+False,188.0,58.8
+True,171.0,65.1
+False,186.9,74.3
+True,176.4,61.0
+False,197.3,69.8
+True,170.5,103.2
+False,181.0,58.9
+True,168.4,87.8
+False,183.4,60.6
+True,168.2,100.9
+False,177.3,40.3
+True,178.3,110.6
+False,191.3,88.4
+True,147.8,58.7
+False,189.8,71.9
+True,168.6,75.3
+False,173.5,84.5
+True,166.7,61.1
+False,168.0,78.3
+True,157.2,85.6
+False,183.9,67.9
+True,159.4,91.0
+False,176.1,58.4
+True,159.4,51.8
+False,181.2,92.8
+True,178.4,43.3
+False,202.6,86.9
+True,161.1,63.9
+False,172.5,113.4
+True,157.8,88.8
+False,169.5,76.9
+True,149.1,53.6
+False,161.8,84.1
+True,167.7,38.3
+False,193.8,124.4
+True,176.7,59.9
+False,167.6,91.2
+True,170.0,47.7
+False,167.2,78.0
+True,176.1,35.7
+False,182.1,141.1
+True,149.9,70.5
+False,172.8,41.3
+True,167.7,72.1
+False,166.8,87.9
+True,158.0,75.5
+False,183.4,83.9
+True,155.8,53.9
+False,165.2,66.8
+True,174.9,68.7
+False,175.0,108.9
+True,171.7,93.5
+False,182.8,85.5
+True,168.9,53.6
+False,167.7,64.2
+True,175.6,54.6
+False,168.8,73.7
+True,170.7,92.8
+False,180.1,92.2
+True,171.6,76.3
+False,181.4,50.0
+True,149.4,72.4
+False,182.9,95.7
+True,165.7,87.7
+False,159.0,75.4
+True,175.0,60.5
+False,150.6,80.0
+True,150.2,59.6
+False,189.2,65.8
+True,182.4,107.6
+False,198.8,73.1
+True,167.2,59.1
+False,164.5,84.2
+True,171.1,77.3
+False,168.1,122.5
+True,155.1,83.0
+False,176.0,104.5
+True,172.0,82.1
+False,181.6,65.3
+True,185.0,79.4
+False,178.5,97.6
+True,177.4,39.1
+False,179.7,154.6
+True,162.0,81.5
+False,177.4,86.9
+True,181.5,110.4
+False,169.4,112.3
+True,157.8,92.5
+False,169.0,42.3
+True,172.9,71.5
+False,194.3,111.8
+True,163.5,59.6
+False,190.4,104.6
+True,172.4,50.6
+False,151.2,63.1
+True,155.3,46.7
+False,181.3,51.2
+True,161.5,35.6
+False,179.5,102.9
+True,167.0,79.4
+False,178.3,100.2
+True,162.1,75.2
+False,181.6,95.8
+True,178.9,87.3
+False,174.7,80.0
+True,150.7,93.5
+False,175.6,62.1
+True,179.7,63.6
+False,186.0,110.1
+True,162.8,50.4
+False,179.2,58.4
+True,168.1,51.0
+False,180.6,103.2
+True,155.9,41.9
+False,170.2,80.8
+True,156.9,78.5
+False,177.5,87.3
+True,158.0,82.3
+False,192.0,70.1
+True,158.5,96.8
+False,163.1,42.6
+True,149.6,62.9
+False,175.5,61.9
+True,161.9,60.9
+False,202.5,126.1
+True,157.6,64.1
+False,184.0,103.1
+True,146.0,46.5
+False,176.0,42.8
+True,168.7,78.1
+False,190.8,43.9
+True,163.5,70.8
+False,167.7,82.0
+True,172.9,56.0
+False,161.7,137.4
+True,150.9,67.7
+False,164.3,107.9
+True,182.1,62.5
+False,194.8,49.2
+True,190.7,94.6
+False,177.4,108.7
+True,176.4,68.6
+False,176.0,35.6
+True,157.7,72.0
+False,189.0,98.3
+True,153.7,69.8
+False,175.7,71.1
+True,164.3,74.3
+False,177.1,68.2
+True,163.8,54.8
+False,166.9,80.7
+True,163.1,54.3
+False,182.7,107.7
+True,149.3,78.1
+False,182.8,48.6
+True,163.9,77.6
+False,187.8,73.6
+True,163.6,96.6
+False,178.7,118.7
+True,170.4,104.3
+False,174.8,75.2
+True,155.2,60.3
+False,170.1,59.9
+True,147.0,79.8
+False,161.1,80.2
+True,151.2,58.7
+False,188.6,86.4
+True,185.6,84.3
+False,185.2,73.2
+True,177.8,36.0
+False,183.0,89.4
+True,142.7,52.1
+False,176.9,98.2
+True,173.4,73.7
+False,160.3,134.5
+True,167.5,85.8
+False,168.6,76.2
+True,186.0,38.9
+False,193.1,81.8
+True,192.3,76.2
+False,182.3,81.3
+True,158.2,56.4
+False,189.9,99.6
+True,169.3,40.7
+False,169.6,150.4
+True,157.9,76.2
+False,189.5,103.5
+True,164.8,63.7
+False,195.2,76.2
+True,180.2,60.4
+False,177.2,38.0
+True,159.0,58.5
+False,176.0,111.9
+True,163.0,62.6
+False,200.2,87.8
+True,143.1,93.4
+False,190.5,85.5
+True,177.6,105.0
+False,164.5,126.0
+True,157.0,62.9
+False,189.7,68.9
+True,166.2,85.5
+False,193.2,86.2
+True,180.7,85.9
+False,182.8,58.2
+True,161.8,97.8
+False,175.5,56.4
+True,166.1,103.3
+False,189.9,68.6
+True,165.8,51.8
+False,187.8,72.9
+True,159.3,94.5
+False,191.7,114.8
+True,145.8,66.9
+False,167.8,105.9
+True,150.1,58.0
+False,188.4,69.9
+True,160.5,53.6
+False,189.9,71.9
+True,143.6,64.4
+False,185.3,59.5
+True,166.1,73.4
+False,184.5,129.1
+True,157.3,51.3
+False,177.3,82.1
+True,154.6,99.3
+False,178.7,72.8
+True,177.5,69.2
+False,164.4,91.5
+True,170.9,94.1
+False,190.7,116.2
+True,177.9,75.1
+False,174.5,103.0
+True,156.4,111.6
+False,171.5,105.4
+True,160.3,98.4
+False,174.0,101.1
+True,164.6,33.3
+False,176.2,81.6
+True,167.6,55.2
+False,198.9,44.9
+True,161.1,68.7
+False,181.0,82.6
+True,156.8,89.8
+False,180.0,87.4
+True,173.1,60.2
+False,175.8,86.7
+True,168.1,100.1
+False,171.3,49.1
+True,159.0,84.4
+False,178.4,69.2
+True,164.0,75.0
+False,190.8,48.4
+True,153.3,65.3
+False,191.4,86.4
+True,167.6,86.6
+False,167.3,114.0
+True,179.5,109.2
+False,187.5,83.2
+True,154.4,70.9
+False,175.0,79.8
+True,159.1,99.6
+False,196.2,88.9
+True,160.0,91.6
+False,189.9,106.4
+True,172.8,63.7
+False,188.8,83.7
+True,157.3,112.2
+False,187.2,61.1
+True,156.6,73.9
+False,187.7,71.9
+True,163.0,64.1
+False,182.9,60.5
+True,177.1,74.5
+False,188.9,42.9
+True,153.2,80.9
+False,180.2,65.2
+True,139.8,99.5
+False,153.2,72.6
+True,159.4,85.0
+False,188.8,88.3
+True,171.2,92.3
+False,179.4,33.2
+True,164.4,90.8
+False,173.9,127.1
+True,170.5,63.6
+False,152.8,101.9
+True,171.7,71.1
+False,176.0,46.2
+True,172.3,34.0
+False,171.7,96.1
+True,164.0,49.8
+False,190.3,72.1
+True,179.6,83.2
+False,199.4,68.2
+True,148.9,97.4
+False,199.7,126.5
+True,161.5,94.9
+False,186.9,96.9
+True,169.4,91.0
+False,195.4,69.1
+True,175.3,65.3
+False,182.8,93.1
+True,167.0,59.9
+False,157.4,87.6
+True,174.0,101.1
+False,202.8,85.5
+True,167.7,48.6
+False,165.8,83.5
+True,167.6,47.3
+False,205.7,155.7
+True,169.7,80.9
+False,179.8,38.2
+True,174.2,65.6
+False,173.2,128.0
+True,172.1,62.4
+False,184.2,42.9
+True,168.1,104.7
+False,167.1,69.6
+True,163.4,67.5
+False,171.4,102.2
+True,163.0,50.9
+False,195.3,111.3
+True,152.8,61.2
+False,184.4,144.1
+True,157.5,48.0
+False,169.5,99.1
+True,151.6,102.6
+False,168.5,45.7
+True,153.6,91.3
+False,178.4,89.3
+True,168.9,60.4
+False,166.9,65.4
+True,160.3,45.4
+False,169.8,107.9
+True,151.4,100.7
+False,176.5,106.7
+True,169.6,88.0
+False,177.3,57.2
+True,171.3,65.9
+False,175.0,94.8
+True,137.1,62.2
+False,192.9,70.9
+True,149.1,97.5
+False,200.4,77.8
+True,158.3,72.4
+False,175.1,47.3
+True,169.1,47.2
+False,167.8,77.3
+True,168.4,65.2
+False,178.3,151.2
+True,149.4,79.8
+False,176.0,57.3
+True,178.1,63.1
+False,166.5,74.1
+True,154.3,95.5
+False,191.6,39.3
+True,169.1,97.5
+False,184.5,108.3
+True,154.6,44.3
+False,182.5,122.2
+True,176.9,88.4
+False,186.9,133.4
+True,180.9,62.8
+False,169.8,77.5
+True,166.0,105.4
+False,172.1,63.9
+True,177.0,70.7
+False,187.1,73.8
+True,166.5,66.6
+False,187.5,92.0
+True,182.0,77.1
+False,168.4,112.0
+True,179.9,82.8
+False,182.2,86.5
+True,191.9,57.4
+False,173.0,115.3
+True,185.6,76.6
+False,181.3,106.5
+True,174.7,78.2
+False,171.1,57.6
+True,181.3,50.7
diff --git a/Material/wise_24_25/v8.ipynb b/Material/wise_24_25/v8.ipynb
new file mode 100644
index 0000000..927af8f
--- /dev/null
+++ b/Material/wise_24_25/v8.ipynb
@@ -0,0 +1,775 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "737a2a07-5247-42d5-b06a-ff6a3bf21306",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import folium"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "dc86d298-4a92-41e2-8e9a-bcb2dd36d80f",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "source": [
+ "[LatLon](https://www.latlong.net/)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "dbed7e42-d95e-4b25-91b8-248cd95f22ea",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "m = folium.Map(\n",
+ " location=(52.264150, 10.526420),\n",
+ " tiles='OpenStreetMap',\n",
+ " #iles='Stamen Toner',\n",
+ " zoom_start=13,\n",
+ " prefer_canvas=False\n",
+ " )\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "2b08e2f2-cf81-439b-b47f-733e123d72d3",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "my_marker = folium.Marker(\n",
+ " location=(52.25802230834961, 10.503097534179688)\n",
+ " )\n",
+ "\n",
+ "my_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "71dbf9b1-2217-40d5-bfa1-c38b2bbc6362",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "castle_popup = \"Ritterbrunnen 1, 38100 Braunschweig\"\n",
+ "castle_tooltip = \"More about the castle\"\n",
+ "\n",
+ "\n",
+ "castle_marker = folium.Marker(\n",
+ " location=(52.2643, 10.529),\n",
+ " popup=castle_popup,\n",
+ " tooltip=castle_tooltip\n",
+ " )\n",
+ "castle_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "60c6bc4b-c339-4cd5-806d-66c879807b6e",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "hbk_popup_html = folium.Popup(\n",
+ " '''\n",
+ " \n",
+ " \n",
+ "
\n",
+ " Johannes-Selenka-Platz 1
\n",
+ " 38118 Braunschweig
\n",
+ " Germany, DE
\n",
+ " Visit: hbk-bs.de
\n",
+ " ''',\n",
+ " show=False\n",
+ " )\n",
+ "\n",
+ "hbk_tooltip = \"More about the university\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "19123dd9-c88d-4713-ab84-4cc692e3f663",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "hbk_icon = folium.Icon(\n",
+ " color='black',\n",
+ " icon_color='#deddda',\n",
+ " prefix='glyphicon',\n",
+ " icon='glyphicon-home',\n",
+ " angle=0\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "7f496828-e49a-4253-98e3-aaa59d0cdc1c",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "Make this Notebook Trusted to load map: File -> Trust Notebook
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "hbk_marker = folium.Marker(\n",
+ " location=(52.257770, 10.502490),\n",
+ " popup=hbk_popup_html,\n",
+ " tooltip=hbk_tooltip,\n",
+ " icon=hbk_icon\n",
+ " )\n",
+ "\n",
+ "hbk_marker.add_to(m)\n",
+ "\n",
+ "m"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "78002786-20fb-4b92-be9a-b92b678f50ff",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "source": [
+ "\n",
+ " \n",
+ "
Johannes-Selenka-Platz 1
\n",
+ " 38118 Braunschweig
\n",
+ " Germany, DE
\n",
+ " Visit: hbk-bs.de\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "0547528b-b97f-4e94-aab4-d1d069be020c",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def popup_factory(adr: str, zipc: str, country: str, pic: str):\n",
+ " html = '''\n",
+ " \n",
+ " {}
\n",
+ " {}
\n",
+ " {}
\n",
+ " '''.format(pic, adr, zipc, country)\n",
+ " return folium.Popup(html)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "2ec42850-9c12-4fb4-8b94-024bca9ad9b1",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def icon_factory(is_public=True):\n",
+ " icon = folium.Icon(\n",
+ " color='black' if is_public else 'white',\n",
+ " icon_color = 'white' if is_public else 'black',\n",
+ " icon='glyphicon-home'\n",
+ " )\n",
+ " return icon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "b3d3d3c8-0039-4f80-9f08-5de61172b588",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def marker_factory(loc, popup, is_public=True):\n",
+ " std_tooltip = 'Click for more information'\n",
+ " std_icon = icon_factory(is_public)\n",
+ " return folium.Marker(loc, popup=popup, icon=std_icon, tooltip=std_tooltip)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "18701dc2-4409-486d-ad7d-7bde6fc3273e",
+ "metadata": {
+ "editable": true,
+ "slideshow": {
+ "slide_type": ""
+ },
+ "tags": []
+ },
+ "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.12.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Timetable.pdf b/Timetable.pdf
index 9523691..a681515 100644
Binary files a/Timetable.pdf and b/Timetable.pdf differ