{"cells": [{"cell_type": "markdown", "id": "db7f08c1", "metadata": {}, "source": ["## Open Government Data, provided by **Canton Zurich**\n", "*Autogenerated Python starter code for data set with identifier* **563@awel-kanton-zuerich**"]}, {"cell_type": "markdown", "id": "164c4327", "metadata": {}, "source": ["## Dataset\n", "# **Lufttemperatur und Luftfeuchte LoRa-Sensor-Messwerte**"]}, {"cell_type": "markdown", "id": "46d13c8b-4ac3-4e2f-940f-0c14ec5b7c0d", "metadata": {}, "source": ["## Description\n", "\n", "Seit Fr\u00fchjahr 2019 betreibt das AWEL des Kantons Z\u00fcrich ein Messnetz aus rund 40 Lufttemperatur und -feuchte Sensoren (LoRa). Die Sensor-Standorte befinden sich haupts\u00e4chlich im st\u00e4dtischen Raum, verdichtet in der Stadt Z\u00fcrich, aber auch in weiteren Gemeinden im Kanton Z\u00fcrich. Ziel des Messnetzes ist es, Messdaten f\u00fcr Stadtklima-Analysen bereitzustellen, damit Aspekte des Lokalklimas und Klimawandels st\u00e4rker sichtbar werden und in der Raumplanung und Stadtentwicklung ber\u00fccksichtigt werden k\u00f6nnen. Mit Hilfe dieser Daten lassen sich u.a. die Auswirkungen von Hitzewellen im st\u00e4dtischen Raum beschreiben. Das Messnetz wird durch das AWEL betrieben, unter Beteiligung der Stadt Z\u00fcrich; die weiteren Standort-Gemeinden sind \u00fcber die Messaktivit\u00e4t informiert. \nDer hier verf\u00fcgbare Datensatz wird ab dem Jahr 2025 unregelm\u00e4ssig aktualisiert und umfasst alle, f\u00fcr die Standorte g\u00fcltigen Messwerte im 10 Minuten Mittel, inklusive entsprechender Standortinformationen. Weitere Angaben zu Datensatz-Struktur und verwendeten Sensoren sind im Datensatz-Beschrieb zu finden."]}, {"cell_type": "markdown", "id": "cad813bb-c986-4bb4-b52b-f78bb608086f", "metadata": {}, "source": ["## Data set links\n", "\n", "[Direct data shop link for dataset](https://www.zh.ch/de/politik-staat/statistik-daten/datenkatalog.html#/datasets/563@awel-kanton-zuerich)"]}, {"cell_type": "markdown", "id": "9d4813e9", "metadata": {}, "source": ["## Metadata\n", "- **Issued** `2019-12-09T00:00:00`\n- **Modified** `2025-01-31T09:25:59`\n- **Startdate** `None`\n- **Enddate** `2025-01-30`\n- **Theme** `['http://publications.europa.eu/resource/authority/data-theme/ENVI']`\n- **Keyword** `['luft', 'lufttemperaturen', 'ogd']`\n- **Publisher** `['Amt f\u00fcr Abfall, Wasser, Energie und Luft des Kantons Z\u00fcrich']`\n- **Landingpage** `None`\n"]}, {"cell_type": "markdown", "id": "8a857d65", "metadata": {"jp-MarkdownHeadingCollapsed": true, "tags": []}, "source": ["## Imports and helper functions"]}, {"cell_type": "code", "execution_count": null, "id": "93b39602-1c1e-46d2-ae70-1716b1481e9b", "metadata": {"tags": []}, "outputs": [], "source": ["%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('ggplot')\n", "\n", "params = {\n", "    'text.color': (0.25, 0.25, 0.25),\n", "    'figure.figsize': [18, 6],\n", "   }\n", "\n", "plt.rcParams.update(params)\n", "\n", "import pandas as pd "]}, {"cell_type": "code", "execution_count": null, "id": "aa6611d7-e1c0-40a7-b0ff-601a8ef8439b", "metadata": {"tags": []}, "outputs": [], "source": ["# helper function for reading datasets with proper separator\n", "def get_dataset(url):\n", "    if url[-3:] != \"csv\":\n", "        print(\"The data set URL has no proper 'csv' extension. Reading the dataset might not have worked as expected.\\nPlease check the dataset link and adjust pandas' read_csv() parameters accordingly.\")\n", "    data = pd.read_csv(url, sep=\",\", on_bad_lines='warn', encoding_errors='ignore', low_memory=False)\n", "    # if dataframe only has one column or less the data is not comma separated, use \";\" instead\n", "    if data.shape[1] <= 1:\n", "        data = pd.read_csv(url, sep=';', on_bad_lines='warn', encoding_errors='ignore', low_memory=False)\n", "        if data.shape[1] <= 1:\n", "            print(\"The data wasn't imported properly. Very likely the correct separator couldn't be found.\\nPlease check the dataset manually and adjust the code.\")\n", "    return data"]}, {"cell_type": "markdown", "id": "02ce518f", "metadata": {}, "source": ["## Load data\n", "\n", "- The dataset has **`70` distribution(s)** in CSV format.\n", "- All available CSV distributions are listed below and can be read into a pandas dataframe."]}, {"cell_type": "code", "execution_count": null, "id": "0", "metadata": {"tags": []}, "outputs": [], "source": "# Distribution 0\n# Ktzhdistid               : 1068\n# Title                    : LoRa-Sensor-Messwerte 2020/03\n# Description              : None\n# Issued                   : 2022-03-10T14:17:33\n# Modified                 : 2022-08-25T12:57:26\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202003.csv')\n\n# Distribution 1\n# Ktzhdistid               : 1614\n# Title                    : LoRa-Sensor-Messwerte 2020/02\n# Description              : None\n# Issued                   : 2020-03-06T15:06:31\n# Modified                 : 2022-08-25T12:57:24\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202002.csv')\n\n# Distribution 2\n# Ktzhdistid               : 1615\n# Title                    : LoRa-Sensor-Messwerte 2020/01\n# Description              : None\n# Issued                   : 2020-03-06T15:07:28\n# Modified                 : 2022-08-25T12:57:23\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202001.csv')\n\n# Distribution 3\n# Ktzhdistid               : 1616\n# Title                    : LoRa-Sensor-Messwerte 2019/12\n# Description              : None\n# Issued                   : 2020-03-06T15:07:58\n# Modified                 : 2022-08-25T12:57:21\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201912.csv')\n\n# Distribution 4\n# Ktzhdistid               : 1617\n# Title                    : LoRa-Sensor-Messwerte 2019/11\n# Description              : None\n# Issued                   : 2020-03-06T15:08:32\n# Modified                 : 2022-08-25T12:57:19\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201911.csv')\n\n# Distribution 5\n# Ktzhdistid               : 1618\n# Title                    : LoRa-Sensor-Messwerte 2019/10\n# Description              : None\n# Issued                   : 2020-03-06T15:09:09\n# Modified                 : 2022-08-25T12:57:18\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201910.csv')\n\n# Distribution 6\n# Ktzhdistid               : 1632\n# Title                    : LoRa-Sensor-Messwerte 2020/05\n# Description              : None\n# Issued                   : 2020-05-04T10:45:42\n# Modified                 : 2022-08-25T12:57:30\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202005.csv')\n\n# Distribution 7\n# Ktzhdistid               : 1743\n# Title                    : LoRa-Sensor-Messwerte 2020/11\n# Description              : None\n# Issued                   : 2020-11-02T12:14:25\n# Modified                 : 2022-08-25T12:57:40\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202011.csv')\n\n# Distribution 8\n# Ktzhdistid               : 1860\n# Title                    : LoRa-Sensor-Messwerte 2021/07\n# Description              : None\n# Issued                   : 2021-07-13T10:48:23\n# Modified                 : 2022-08-25T12:57:55\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202107.csv')\n\n# Distribution 9\n# Ktzhdistid               : 1885\n# Title                    : LoRa-Sensor-Messwerte 2021/10\n# Description              : None\n# Issued                   : 2021-10-04T09:36:12\n# Modified                 : 2022-08-25T12:58:00\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202110.csv')\n\n# Distribution 10\n# Ktzhdistid               : 1917\n# Title                    : LoRa-Sensor-Messwerte 2021/11\n# Description              : None\n# Issued                   : 2021-11-10T08:57:07\n# Modified                 : 2022-08-25T12:58:02\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202111.csv')\n\n# Distribution 11\n# Ktzhdistid               : 2078\n# Title                    : LoRa-Sensor-Messwerte 2022/01\n# Description              : None\n# Issued                   : 2022-01-14T13:08:26\n# Modified                 : 2022-08-25T13:36:26\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202201.csv')\n\n# Distribution 12\n# Ktzhdistid               : 2077\n# Title                    : LoRa-Sensor-Messwerte 2021/12\n# Description              : None\n# Issued                   : 2022-01-14T13:08:43\n# Modified                 : 2022-08-25T12:58:04\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202112.csv')\n\n# Distribution 13\n# Ktzhdistid               : 1619\n# Title                    : LoRa-Sensor-Messwerte 2019/09\n# Description              : None\n# Issued                   : 2020-03-06T15:10:40\n# Modified                 : 2022-08-25T12:57:16\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201909.csv')\n\n# Distribution 14\n# Ktzhdistid               : 1620\n# Title                    : LoRa-Sensor-Messwerte 2019/08\n# Description              : None\n# Issued                   : 2020-03-06T15:11:10\n# Modified                 : 2022-08-25T12:57:14\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201908.csv')\n\n# Distribution 15\n# Ktzhdistid               : 1621\n# Title                    : LoRa-Sensor-Messwerte 2019/07\n# Description              : None\n# Issued                   : 2020-03-06T15:11:42\n# Modified                 : 2022-08-25T12:57:13\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201907.csv')\n\n# Distribution 16\n# Ktzhdistid               : 1622\n# Title                    : LoRa-Sensor-Messwerte 2019/06\n# Description              : None\n# Issued                   : 2020-03-06T15:12:25\n# Modified                 : 2022-08-25T12:57:11\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201906.csv')\n\n# Distribution 17\n# Ktzhdistid               : 1623\n# Title                    : LoRa-Sensor-Messwerte 2019/05\n# Description              : None\n# Issued                   : 2020-03-06T15:12:53\n# Modified                 : 2022-08-25T12:57:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201905.csv')\n\n# Distribution 18\n# Ktzhdistid               : 1628\n# Title                    : LoRa-Sensor-Messwerte 2020/04\n# Description              : None\n# Issued                   : 2020-04-09T08:02:28\n# Modified                 : 2022-08-25T12:57:28\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202004.csv')\n\n# Distribution 19\n# Ktzhdistid               : 1652\n# Title                    : LoRa-Sensor-Messwerte 2020/06\n# Description              : None\n# Issued                   : 2020-06-02T15:01:23\n# Modified                 : 2022-08-25T12:57:31\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202006.csv')\n\n# Distribution 20\n# Ktzhdistid               : 1658\n# Title                    : LoRa-Sensor-Messwerte 2020/07\n# Description              : None\n# Issued                   : 2020-07-06T12:16:49\n# Modified                 : 2022-08-25T12:57:33\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202007.csv')\n\n# Distribution 21\n# Ktzhdistid               : 1707\n# Title                    : LoRa-Sensor-Messwerte 2020/08\n# Description              : None\n# Issued                   : 2020-08-03T16:33:40\n# Modified                 : 2022-08-25T12:57:35\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202008.csv')\n\n# Distribution 22\n# Ktzhdistid               : 1721\n# Title                    : LoRa-Sensor-Messwerte 2020/09\n# Description              : None\n# Issued                   : 2020-09-08T10:02:54\n# Modified                 : 2022-08-25T12:57:37\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202009.csv')\n\n# Distribution 23\n# Ktzhdistid               : 1733\n# Title                    : LoRa-Sensor-Messwerte 2020/10\n# Description              : None\n# Issued                   : 2020-10-05T15:27:41\n# Modified                 : 2022-08-25T12:57:39\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202010.csv')\n\n# Distribution 24\n# Ktzhdistid               : 1802\n# Title                    : LoRa-Sensor-Messwerte 2021/04\n# Description              : None\n# Issued                   : 2021-04-07T09:25:47\n# Modified                 : 2022-08-25T12:57:50\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202104.csv')\n\n# Distribution 25\n# Ktzhdistid               : 1811\n# Title                    : LoRa-Sensor-Messwerte 2021/05\n# Description              : None\n# Issued                   : 2021-05-03T10:07:38\n# Modified                 : 2022-08-25T12:57:52\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202105.csv')\n\n# Distribution 26\n# Ktzhdistid               : 1779\n# Title                    : LoRa-Sensor-Messwerte 2020/12\n# Description              : None\n# Issued                   : 2021-01-11T16:26:34\n# Modified                 : 2022-08-25T12:57:42\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202012.csv')\n\n# Distribution 27\n# Ktzhdistid               : 1780\n# Title                    : LoRa-Sensor-Messwerte 2021/01\n# Description              : None\n# Issued                   : 2021-01-11T16:57:24\n# Modified                 : 2022-08-25T12:57:44\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202101.csv')\n\n# Distribution 28\n# Ktzhdistid               : 1791\n# Title                    : LoRa-Sensor-Messwerte 2021/03\n# Description              : None\n# Issued                   : 2021-03-03T13:50:17\n# Modified                 : 2022-08-25T12:57:48\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202103.csv')\n\n# Distribution 29\n# Ktzhdistid               : 1841\n# Title                    : LoRa-Sensor-Messwerte 2021/06\n# Description              : None\n# Issued                   : 2021-06-04T08:41:28\n# Modified                 : 2022-08-25T12:57:53\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202106.csv')\n\n# Distribution 30\n# Ktzhdistid               : 1861\n# Title                    : LoRa-Sensor-Messwerte 2021/08\n# Description              : None\n# Issued                   : 2021-08-19T08:35:14\n# Modified                 : 2022-08-25T12:57:57\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202108.csv')\n\n# Distribution 31\n# Ktzhdistid               : 1872\n# Title                    : LoRa-Sensor-Messwerte 2021/09\n# Description              : None\n# Issued                   : 2021-09-02T09:18:58\n# Modified                 : 2022-08-25T12:57:59\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202109.csv')\n\n# Distribution 32\n# Ktzhdistid               : 1784\n# Title                    : LoRa-Sensor-Messwerte 2021/02\n# Description              : None\n# Issued                   : 2021-02-01T08:39:41\n# Modified                 : 2022-08-25T12:57:46\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202102.csv')\n\n# Distribution 33\n# Ktzhdistid               : 2518\n# Title                    : LoRa-Sensor-Messwerte 2022/04\n# Description              : None\n# Issued                   : 2022-04-02T00:00:59\n# Modified                 : 2022-08-25T13:36:31\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202204.csv')\n\n# Distribution 34\n# Ktzhdistid               : 3440\n# Title                    : LoRa-Sensor-Messwerte 2022/11\n# Description              : None\n# Issued                   : 2022-11-02T00:00:58\n# Modified                 : 2022-12-02T01:00:57\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202211.csv')\n\n# Distribution 35\n# Ktzhdistid               : 2198\n# Title                    : LoRa-Sensor-Messwerte 2022/02\n# Description              : None\n# Issued                   : 2022-02-16T14:28:32\n# Modified                 : 2022-08-25T13:36:27\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202202.csv')\n\n# Distribution 36\n# Ktzhdistid               : 2959\n# Title                    : LoRa-Sensor-Messwerte 2022/07\n# Description              : None\n# Issued                   : 2022-07-02T00:01:06\n# Modified                 : 2022-08-26T12:02:24\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202207.csv')\n\n# Distribution 37\n# Ktzhdistid               : 3201\n# Title                    : LoRa-Sensor-Messwerte 2019/04\n# Description              : None\n# Issued                   : 2022-08-25T10:57:07\n# Modified                 : 2022-08-25T10:57:07\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_201904.csv')\n\n# Distribution 38\n# Ktzhdistid               : 3965\n# Title                    : LoRa-Sensor-Messwerte 2023/02\n# Description              : None\n# Issued                   : 2023-02-16T14:58:06\n# Modified                 : 2023-04-27T15:27:59\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202302.csv')\n\n# Distribution 39\n# Ktzhdistid               : 3966\n# Title                    : LoRa-Sensor-Messwerte 2023/01\n# Description              : None\n# Issued                   : 2023-02-16T16:06:05\n# Modified                 : 2023-04-27T15:27:38\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202301.csv')\n\n# Distribution 40\n# Ktzhdistid               : 4043\n# Title                    : LoRa-Sensor-Messwerte 2023/03\n# Description              : None\n# Issued                   : 2023-03-02T00:01:10\n# Modified                 : 2023-04-27T15:27:17\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202303.csv')\n\n# Distribution 41\n# Ktzhdistid               : 4143\n# Title                    : LoRa-Sensor-Messwerte 2023/04\n# Description              : None\n# Issued                   : 2023-04-02T00:01:07\n# Modified                 : 2023-05-26T15:06:36\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202304.csv')\n\n# Distribution 42\n# Ktzhdistid               : 2362\n# Title                    : LoRa-Sensor-Messwerte 2022/03\n# Description              : None\n# Issued                   : 2022-03-04T10:18:32\n# Modified                 : 2022-08-25T13:36:29\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202203.csv')\n\n# Distribution 43\n# Ktzhdistid               : 4203\n# Title                    : LoRa-Sensor-Messwerte 2023/05\n# Description              : None\n# Issued                   : 2023-05-02T00:01:09\n# Modified                 : 2023-06-02T02:01:10\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202305.csv')\n\n# Distribution 44\n# Ktzhdistid               : 4283\n# Title                    : LoRa-Sensor-Messwerte 2023/06\n# Description              : None\n# Issued                   : 2023-06-02T00:01:12\n# Modified                 : 2023-07-02T02:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202306.csv')\n\n# Distribution 45\n# Ktzhdistid               : 4363\n# Title                    : LoRa-Sensor-Messwerte 2023/07\n# Description              : None\n# Issued                   : 2023-07-02T00:01:11\n# Modified                 : 2023-08-02T02:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202307.csv')\n\n# Distribution 46\n# Ktzhdistid               : 4423\n# Title                    : LoRa-Sensor-Messwerte 2023/08\n# Description              : None\n# Issued                   : 2023-08-02T00:01:10\n# Modified                 : 2023-09-02T02:01:10\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202308.csv')\n\n# Distribution 47\n# Ktzhdistid               : 4503\n# Title                    : LoRa-Sensor-Messwerte 2023/09\n# Description              : None\n# Issued                   : 2023-09-02T00:01:12\n# Modified                 : 2023-10-02T02:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202309.csv')\n\n# Distribution 48\n# Ktzhdistid               : 4603\n# Title                    : LoRa-Sensor-Messwerte 2023/10\n# Description              : None\n# Issued                   : 2023-10-02T00:01:11\n# Modified                 : 2023-11-02T01:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202310.csv')\n\n# Distribution 49\n# Ktzhdistid               : 2638\n# Title                    : LoRa-Sensor-Messwerte 2022/05\n# Description              : None\n# Issued                   : 2022-05-03T00:00:58\n# Modified                 : 2022-08-25T13:36:32\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202205.csv')\n\n# Distribution 50\n# Ktzhdistid               : 4745\n# Title                    : LoRa-Sensor-Messwerte 2023/11\n# Description              : None\n# Issued                   : 2023-11-02T00:01:11\n# Modified                 : 2023-12-02T01:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202311.csv')\n\n# Distribution 51\n# Ktzhdistid               : 2838\n# Title                    : LoRa-Sensor-Messwerte 2022/06\n# Description              : None\n# Issued                   : 2022-06-02T00:01:01\n# Modified                 : 2022-08-25T13:36:34\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202206.csv')\n\n# Distribution 52\n# Ktzhdistid               : 4984\n# Title                    : LoRa-Sensor-Messwerte 2023/12\n# Description              : None\n# Issued                   : 2023-12-02T00:01:11\n# Modified                 : 2024-01-10T10:56:06\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202312.csv')\n\n# Distribution 53\n# Ktzhdistid               : 3120\n# Title                    : LoRa-Sensor-Messwerte 2022/08\n# Description              : None\n# Issued                   : 2022-08-02T00:01:01\n# Modified                 : 2022-09-02T02:01:00\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202208.csv')\n\n# Distribution 54\n# Ktzhdistid               : 5083\n# Title                    : LoRa-Sensor-Messwerte 2024/01\n# Description              : None\n# Issued                   : 2024-01-02T00:01:09\n# Modified                 : 2024-02-02T01:01:08\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202401.csv')\n\n# Distribution 55\n# Ktzhdistid               : 3240\n# Title                    : LoRa-Sensor-Messwerte 2022/09\n# Description              : None\n# Issued                   : 2022-09-02T00:01:01\n# Modified                 : 2022-10-02T02:00:58\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202209.csv')\n\n# Distribution 56\n# Ktzhdistid               : 5163\n# Title                    : LoRa-Sensor-Messwerte 2024/02\n# Description              : None\n# Issued                   : 2024-02-02T00:01:10\n# Modified                 : 2024-03-02T01:01:08\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202402.csv')\n\n# Distribution 57\n# Ktzhdistid               : 3340\n# Title                    : LoRa-Sensor-Messwerte 2022/10\n# Description              : None\n# Issued                   : 2022-10-02T00:00:59\n# Modified                 : 2022-11-02T01:00:57\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202210.csv')\n\n# Distribution 58\n# Ktzhdistid               : 5228\n# Title                    : LoRa-Sensor-Messwerte 2024/03\n# Description              : None\n# Issued                   : 2024-03-02T00:01:11\n# Modified                 : 2024-04-02T02:01:10\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202403.csv')\n\n# Distribution 59\n# Ktzhdistid               : 3660\n# Title                    : LoRa-Sensor-Messwerte 2022/12\n# Description              : None\n# Issued                   : 2022-12-02T00:00:59\n# Modified                 : 2023-04-27T15:28:20\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202212.csv')\n\n# Distribution 60\n# Ktzhdistid               : 5263\n# Title                    : LoRa-Sensor-Messwerte 2024/04\n# Description              : None\n# Issued                   : 2024-04-02T00:01:12\n# Modified                 : 2024-07-01T02:02:21\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202404.csv')\n\n# Distribution 61\n# Ktzhdistid               : 5343\n# Title                    : LoRa-Sensor-Messwerte 2024/05\n# Description              : None\n# Issued                   : 2024-05-02T00:01:11\n# Modified                 : 2024-07-01T02:02:24\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202405.csv')\n\n# Distribution 62\n# Ktzhdistid               : 5383\n# Title                    : LoRa-Sensor-Messwerte 2024/06\n# Description              : None\n# Issued                   : 2024-06-02T00:01:06\n# Modified                 : 2024-07-02T02:01:08\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202406.csv')\n\n# Distribution 63\n# Ktzhdistid               : 5423\n# Title                    : LoRa-Sensor-Messwerte 2024/07\n# Description              : None\n# Issued                   : 2024-07-02T00:01:10\n# Modified                 : 2024-08-02T02:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202407.csv')\n\n# Distribution 64\n# Ktzhdistid               : 5483\n# Title                    : LoRa-Sensor-Messwerte 2024/08\n# Description              : None\n# Issued                   : 2024-08-02T00:01:11\n# Modified                 : 2024-09-02T02:01:08\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202408.csv')\n\n# Distribution 65\n# Ktzhdistid               : 5543\n# Title                    : LoRa-Sensor-Messwerte 2024/09\n# Description              : None\n# Issued                   : 2024-09-02T00:01:09\n# Modified                 : 2024-10-02T02:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202409.csv')\n\n# Distribution 66\n# Ktzhdistid               : 5563\n# Title                    : LoRa-Sensor-Messwerte 2024/10\n# Description              : None\n# Issued                   : 2024-10-02T00:01:11\n# Modified                 : 2024-11-02T01:01:09\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202410.csv')\n\n# Distribution 67\n# Ktzhdistid               : 5643\n# Title                    : LoRa-Sensor-Messwerte 2024/11\n# Description              : None\n# Issued                   : 2024-11-02T00:01:11\n# Modified                 : 2024-12-02T01:01:12\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202411.csv')\n\n# Distribution 68\n# Ktzhdistid               : 5763\n# Title                    : LoRa-Sensor-Messwerte 2024/12\n# Description              : None\n# Issued                   : 2024-12-02T00:01:14\n# Modified                 : 2025-01-31T10:25:56\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202412.csv')\n\n# Distribution 69\n# Ktzhdistid               : 5923\n# Title                    : LoRa-Sensor-Messwerte 2025/01\n# Description              : None\n# Issued                   : 2025-01-31T09:25:59\n# Modified                 : 2025-01-31T09:25:59\n\ndf = get_dataset('https://www.web.statistik.zh.ch/awel/LoRa/data/AWEL_Sensors_LoRa_202501.csv')\n\n"}, {"cell_type": "markdown", "id": "4ce1f78f", "metadata": {}, "source": ["## Analyze data"]}, {"cell_type": "code", "execution_count": null, "id": "3e3dab86", "metadata": {}, "outputs": [], "source": ["# drop columns that have no values\n", "df.dropna(how='all', axis=1, inplace=True)"]}, {"cell_type": "code", "execution_count": null, "id": "841bd8d2", "metadata": {}, "outputs": [], "source": ["print(f'The dataset has {df.shape[0]:,.0f} rows (observations) and {df.shape[1]:,.0f} columns (variables).')\n", "print(f'There seem to be {df.duplicated().sum()} exact duplicates in the data.')"]}, {"cell_type": "code", "execution_count": null, "id": "75e73c96", "metadata": {}, "outputs": [], "source": ["df.info(memory_usage='deep', verbose=True)"]}, {"cell_type": "code", "execution_count": null, "id": "02f3df4d", "metadata": {}, "outputs": [], "source": ["df.head()"]}, {"cell_type": "code", "execution_count": null, "id": "a0d7d898", "metadata": {}, "outputs": [], "source": ["# display a small random sample transposed in order to see all variables\n", "df.sample(3).T"]}, {"cell_type": "code", "execution_count": null, "id": "786806dd", "metadata": {}, "outputs": [], "source": ["# describe non-numerical features\n", "try:\n", "    with pd.option_context('display.float_format', '{:,.2f}'.format):\n", "        display(df.describe(exclude='number'))\n", "except:\n", "    print(\"No categorical data in dataset.\")"]}, {"cell_type": "code", "execution_count": null, "id": "e744a6b6", "metadata": {}, "outputs": [], "source": ["# describe numerical features\n", "try:\n", "    with pd.option_context('display.float_format', '{:,.2f}'.format):\n", "        display(df.describe(include='number'))\n", "except:\n", "    print(\"No numercial data in dataset.\")"]}, {"cell_type": "code", "execution_count": null, "id": "7a65d95d", "metadata": {}, "outputs": [], "source": ["# check missing values with missingno\n", "# https://github.com/ResidentMario/missingno\n", "import missingno as msno\n", "msno.matrix(df, labels=True, sort='descending');"]}, {"cell_type": "code", "execution_count": null, "id": "fcc604b7", "metadata": {}, "outputs": [], "source": ["# plot a histogram for each numerical feature\n", "try:\n", "    df.hist(bins=25, rwidth=.9)\n", "    plt.tight_layout()\n", "    plt.show()\n", "except:\n", "    print(\"No numercial data to plot.\") "]}, {"cell_type": "code", "execution_count": null, "id": "e13cc6eb", "metadata": {}, "outputs": [], "source": ["# continue your code here..."]}, {"cell_type": "code", "execution_count": null, "id": "18886378", "metadata": {}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "id": "59fce071", "metadata": {}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "id": "f42f25aa", "metadata": {}, "outputs": [], "source": []}, {"cell_type": "markdown", "id": "c6b87d83", "metadata": {}, "source": ["**Contact**: Amt f\u00fcr Abfall, Wasser, Energie und Luft des Kantons Z\u00fcrich | Abteilung Luft, Klima und Strahlung | joerg.sintermann@bd.zh.ch"]}], "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.8.15"}}, "nbformat": 4, "nbformat_minor": 5}