Rechtschreibung Jupyter Lab

This commit is contained in:
Henrik Mertens 2022-06-28 23:53:47 +02:00
parent 27182d68db
commit dee5d9eb27
3 changed files with 62 additions and 102 deletions

View file

@ -13,12 +13,12 @@
"id": "759f9eb6-5629-4e87-8c6a-043bcafc4f55",
"metadata": {},
"source": [
"Bevor mit InfluxDB gearbeitet werden kann muss als erstes die client library importiert werden. "
"Bevor mit InfluxDB gearbeitet werden kann, muss als erstes die Client Library importiert werden."
]
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 6,
"id": "43cf5e5c-9542-47ea-9205-89f97a217c51",
"metadata": {},
"outputs": [],
@ -35,22 +35,22 @@
"metadata": {},
"source": [
"Im nächsten Schritt müssen die Verbindungsdaten angegeben werden. Ein API Token kann im InfluxDB Webinterface angelegt werden. Der Bucket wird automatisch erstellt. Es kann allerdings auch ein eigener Bucket verwendet werden.\n",
"Als URL muss darauf geachtete werden die URL des Doker Conteiners zu nutzen in dem die Datenbank ausgeführt wird. "
"Als URL muss darauf geachtet werden, die URL des Doker Containers zu nutzen, in dem die Datenbank ausgeführt wird. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 11,
"id": "d6ae2ed0-3363-420f-81d5-56050591a50e",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"token = \"klyDN4DRFvnRrbmNAEvTXdbP7goon9DBfSxN_1X2Us6AFFp6G5T0QNwgf7ucrRExwZomzhPInj68BjPw2gwXOQ==\"\n",
"token = \"8TYGzTJhqCyKpspMp95Yk858DY2uMzj6wbexbFGMiaLjcG6caiQtNiBKOFlxXnYuEoduFqS9o6_q8UmP1eJC0w==\"\n",
"org = \"test-org\"\n",
"bucket = \"test-bucked\"\n",
"url = \"http://influxdb:8086\"\n"
"url = \"http://influxdb:8086\""
]
},
{
@ -63,7 +63,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 12,
"id": "0a3d1adf-5c17-4aa6-8296-bd6bf0d78dc8",
"metadata": {},
"outputs": [],
@ -88,12 +88,12 @@
"id": "f6b75431-3767-46c4-85cd-baf0e772a9e3",
"metadata": {},
"source": [
"Um Daten zu schreiben wird ein Write Client genutzt. Dieser kann aus dem Client erstellt werden."
"Um Daten zu schreiben, wird ein Write Client genutzt. Dieser kann aus dem Client erstellt werden."
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 13,
"id": "9015aa31-9bee-40db-b604-243c8f0b6ee9",
"metadata": {},
"outputs": [],
@ -106,12 +106,12 @@
"id": "038a43f6-4e70-407f-b7fe-9622178a7dbc",
"metadata": {},
"source": [
"Zuguterletzt kann dann ein Datenpunkt mit Demodaten hochgeladen werden."
"Zu guter Letzt kann dann ein Datenpunkt mit Demodaten hochgeladen werden."
]
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 14,
"id": "7a557626-aaba-4ef4-8b4d-5ff2dd2840ef",
"metadata": {},
"outputs": [],
@ -133,12 +133,12 @@
"id": "94576801-e533-43f7-a12b-af435b0562a1",
"metadata": {},
"source": [
"Ähnlich wie zum schreiben von Daten wird für das abrufen von Daten ein extra query Client benötigt."
"Ähnlich wie zum schreiben von Daten, wird für das Abrufen von Daten ein extra Query Client benötigt."
]
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 15,
"id": "59aaa184-b140-432d-8132-cbb179ce4543",
"metadata": {},
"outputs": [],
@ -151,12 +151,12 @@
"id": "237b7c4c-b92d-4a4b-9864-38c96be54967",
"metadata": {},
"source": [
"Um die abzurufenden Daten festzulegen wird ein Flux Querry erstellt"
"Um die abzurufenden Daten festzulegen, wird ein Flux Querry erstellt."
]
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 16,
"id": "cb28ce0d-5d9f-4090-a136-6fa7c8787974",
"metadata": {},
"outputs": [],
@ -173,12 +173,12 @@
"id": "140b5a02-f4d6-4b04-bd36-6ab8102a07fc",
"metadata": {},
"source": [
"Dieser query kann dann mit dem query client ausgeführt werden."
"Dieser Query kann dann mit dem Query Client ausgeführt werden."
]
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 17,
"id": "34975883-fa02-469f-8a2a-cc3464ae6c92",
"metadata": {},
"outputs": [],
@ -196,7 +196,7 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 18,
"id": "1c689c54-8215-41e3-97ca-6b6eed76d0fc",
"metadata": {},
"outputs": [
@ -204,7 +204,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[('temperature', 25.3), ('temperature', 25.3)]\n"
"[('temperature', 25.3)]\n"
]
}
],

View file

@ -7,7 +7,7 @@
"tags": []
},
"source": [
"# Wetterdaten Importieren"
"# Wetterdaten importieren"
]
},
{
@ -15,7 +15,7 @@
"id": "c557767d-2319-441a-8b45-6fe8e4bbfb32",
"metadata": {},
"source": [
"Die Wetterdaten vom DWD werden über einen OpenData Server bereitgestellt. Um an diese Daten zu kommen müssen diese relativ komplex heruntergeladen und zusammengefügt werden."
"Die Wetterdaten des DWDs werden über einen OpenData Server bereitgestellt. Um an diese Daten zu kommen, müssen diese relativ komplex heruntergeladen und zusammengefügt werden."
]
},
{
@ -23,13 +23,13 @@
"id": "7abd6877-b35f-4604-ba57-399234b97281",
"metadata": {},
"source": [
"Als erstes werden vorbereitungen dafür die Daten zu Importieren getroffen. Dazu werden die benötigten Bibliotehken importiert und einige Variablen gesetzt.\n",
"Außerdem wird ein Ordner angelget in dem die heruntergeladenen Daten gespeichert werde können."
"Als erstes werden Vorbereitungen dafür getroffen, die Daten zu importieren. Dazu werden die benötigten Bibliotehken importiert und einige Variablen gesetzt.\n",
"Außerdem wird ein Ordner angelget, in dem die heruntergeladenen Daten gespeichert werden können."
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 15,
"id": "c87fe05a-63e3-4748-a01a-d46cb12e9b05",
"metadata": {
"tags": []
@ -77,12 +77,12 @@
"id": "7cad1e52-4d22-4dc5-952c-3578d73280ec",
"metadata": {},
"source": [
"Um die Daten später Importieren zu können muss zuächst ein Bucket in der Datenbank angelegt werden. Wenn das Bucket schon vorhanden ist wird es gelöscht und erneut angelegt."
"Um die Daten später importieren zu können, muss zunächst ein Bucket in der Datenbank angelegt werden. Wenn das Bucket schon vorhanden ist, wird es gelöscht und erneut angelegt."
]
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 16,
"id": "b9acf473-2f26-40c6-9c48-1a4ec159bd3d",
"metadata": {},
"outputs": [
@ -116,12 +116,12 @@
"id": "88787497-ec8d-47ed-b885-d1a1cfd443e2",
"metadata": {},
"source": [
"Um die Daten von der Webseite zu bekommen wird mittel ScreenScrapping jeder Link zu einer der gezipten csv Datein gesucht. Dafür wird BeautifulSoup genutzt. Damit BeautifulSoup die Links finden kann muss zunächst einmal die HTML Datei heruntergeladen werden. "
"Um an die Daten der Webseite zu gelangen, wird mittels ScreenScrapping jeder Link zu einer der gezipten CSV Dateien gesucht. Dafür wird BeautifulSoup genutzt. Damit BeautifulSoup die Links finden kann, muss zunächst einmal die HTML Datei heruntergeladen werden."
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 17,
"id": "90f1eb08-b4dd-4743-ad38-492bfd742fec",
"metadata": {},
"outputs": [
@ -154,12 +154,12 @@
"id": "ac3c644a-cac2-41b5-9be0-f01bcb9a40cc",
"metadata": {},
"source": [
"Die so gefilterten Links werden dann in dieser Schleife heruntergeladen und gespeichert. Der pfad für die Stationsbeschreibungsdatei wird in eine extra Variable geschrieben um später die Daten der Stationen zu bekommen."
"Die so gefilterten Links werden dann in dieser Schleife heruntergeladen und gespeichert. Der Pfad für die Stationsbeschreibungsdatei wird in eine extra Variable geschrieben, um später die Daten der Stationen zu bekommen."
]
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 18,
"id": "2524986b-9c26-42d5-8d76-f4e228d0eb48",
"metadata": {
"tags": []
@ -207,14 +207,14 @@
"id": "14b90ff2-1473-4e44-9c6b-fdd2d6c20773",
"metadata": {},
"source": [
"Zunächst werden die Wetterstationen in die Klasse Station eingelesen. Aus den Klassen wird ein Dictionary erstellt in dem mittels der Stations_id gesucht werden kann. Weil die Stationsdaten nicht als csv gespeichert sind musste eine eigene Technik entwickeln werden um die Daten auszulesen.\n",
"Zunächst werden die Wetterstationen in die Klasse Station eingelesen. Aus den Klassen wird ein Dictionary erstellt, in welchem mittels der Stations_id gesucht werden kann. Weil die Stationsdaten nicht als CSV gespeichert sind, musste eine eigene Technik entwickelt werden, um die Daten auszulesen.\n",
"\n",
"Als erstes wird so lange gelesen bis kein Leerzeichen mehr erkannt wird. Danach wird gelesen bis wieder ein Leerzeichen erkannt wird. Dadurch können die Felder nacheinander eingelesen werden. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 23,
"id": "430041d7-21fa-47d8-8df9-7933a8749f82",
"metadata": {},
"outputs": [
@ -292,7 +292,7 @@
" Bundesland = result[1]\n",
" y = result[0]\n",
"\n",
" station = Station(Stations_id, Stationshoehe, geoBreite, geoLaenge, Stationsname ,Bundesland)\n",
" station = Station(Stations_id, Stationshoehe, geoBreite, geoLaenge, Stationsname, Bundesland)\n",
" stations[Stations_id] = station\n",
"\n",
" i+=1\n",
@ -309,24 +309,16 @@
"id": "81bbb42e-3bd9-4b29-a6e3-11e1d1593307",
"metadata": {},
"source": [
"Um an die Messerte in den Datein zu kommen müssen diese entpackt werden. \n",
"Das kann einige Zeit in Anspruch nehmen. Es wird immer die Station angezeigt die gerade Importiert wird"
"Um an die Messwerte in den Dateien zu kommen, müssen diese entpackt werden. \n",
"Das kann einige Zeit in Anspruch nehmen. Es wird immer die Station angezeigt, die gerade importiert wird."
]
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": null,
"id": "27966795-ee46-4af1-b63c-0f728333ec79",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Import durchgeführt \r"
]
}
],
"outputs": [],
"source": [
"def import_data(df):\n",
" client = InfluxDBClient(url=influx_url, token=token, org=org)\n",
@ -360,7 +352,7 @@
" p.time(measurement_time,WritePrecision.S)\n",
" write_api.write(bucket=bucket, record=p)\n",
" print(\" \", end='\\r')\n",
" print(\"Import Station: \", station , end='\\r')\n",
" print(\"Import Station: \", station, end='\\r')\n",
" except:\n",
" error += 1\n",
" if error < 1:\n",
@ -392,7 +384,7 @@
"metadata": {},
"source": [
"# Wetterdaten verarbeiten\n",
"Jetzt wo die Daten importiert worden sind können die Daten Verarbeitet werden. "
"Nachdem die Wetterdaten importiert worden sind, können die Daten verarbeitet werden."
]
},
{
@ -400,7 +392,7 @@
"id": "8461cb29-7634-4b70-9f01-0356b5219046",
"metadata": {},
"source": [
"### Höchst,Tiefst und Durchschnittswert"
"### Höchst-, Tiefst- und Durchschnittswert"
]
},
{
@ -408,7 +400,7 @@
"id": "d70b0073-50e1-4042-a8c0-db4848729d4a",
"metadata": {},
"source": [
"Zur veranschaulichung werden die Tages höchst und Tiefstwerte sowie den Durchschnittswert für die letzen 24 Stunden in Bad Lippspringe ermittelt."
"Zur Veranschaulichung wird der Tages-Höchst- und Tiefstwert, sowie der Durchschnittswert für die letzen 24 Stunden in Bad Lippspringe ermittelt."
]
},
{
@ -416,7 +408,7 @@
"id": "dacfcc8e-a74b-4067-8f55-ac4063294dec",
"metadata": {},
"source": [
"Als erstes müssen die Daten der letzen 24 Stunden aus der Datenbank abgerufen werden. Dazu wird mithilfe des Query Clients ein Flux Query ausgeführt der nach den gewünschten Daten filtert."
"Als erstes müssen die Daten der letzen 24 Stunden aus der Datenbank abgerufen werden. Dazu wird mithilfe des Query Clients ein Flux Query ausgeführt, der nach den gewünschten Daten filtert."
]
},
{
@ -441,15 +433,15 @@
"id": "711e5ab4-c5c0-4e03-bc49-fd2f2d0946ed",
"metadata": {},
"source": [
"Als nächstes werden einige Variablen definiert um den höchst und Tiefstwert zu erhalten. \n",
"Für den Höchstwert nehmen wir Standartmäßig einen sehr nidrigen und für den Tiefstwert einen sehr hohen Wert.\n",
"Als nächstes werden einige Variablen definiert um den Höchst- und Tiefstwert zu erhalten.\n",
"Für den Höchstwert nehmen wir standardmäßig einen sehr niedrigen und für den Tiefstwert einen sehr hohen Wert.\n",
"\n",
"Außerdem wird für den Durschnittswert ein Zähler und eine Summen Variable definiert."
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": null,
"id": "053593fb-1fad-4280-b519-a163b89daa7f",
"metadata": {},
"outputs": [],
@ -496,26 +488,18 @@
"id": "8a9d2fd8-08ac-4b32-83b0-df03285dda93",
"metadata": {},
"source": [
"Um den Durchschnittswert auszurechnen muss nur noch die Summe aller Werte, also die Variable sum, durch die Anzahl der Werte i geteilt werden."
"Um den Durchschnittswert auszurechnen, muss nur noch die Summe aller Werte, also die Variable sum, durch die Anzahl der Werte i geteilt werden."
]
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": null,
"id": "6cf90047-ba7b-42fc-b012-aa9647d60191",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Die durchschnittestemperatur der letzten 24h liegt bei: 16.825000000000003\n"
]
}
],
"outputs": [],
"source": [
"average = sum / i\n",
"print(\"Die durchschnittestemperatur der letzten 24h liegt bei: \"+ str(average))"
"print(\"Die Durchschnittstemperatur der letzten 24h liegt bei: \"+ str(average))"
]
},
{
@ -555,7 +539,7 @@
"id": "033f9c72-859b-4d64-92d3-6def4aaaecf4",
"metadata": {},
"source": [
"Zum bestimmen der Heißstesten Wetterstation müssen ersteinmal mehrere Varialben definiert werden."
"Zum Bestimmen der heißesten Wetterstation müssen zuerst mehrere Varialben definiert werden."
]
},
{
@ -565,8 +549,8 @@
"metadata": {},
"outputs": [],
"source": [
"station_name = \"\" # Name der Station die gerade Verarbeitet wird\n",
"max_station_temp = -254 # Höchsttemperatur der heißesten Station \n",
"station_name = \"\" # Name der Station, die gerade Verarbeitet wird\n",
"max_station_temp = -254 # Höchsttemperatur der heißesten Station\n",
"max_station_name = \"\" # Name der heißesten Station"
]
},
@ -575,36 +559,28 @@
"id": "add9133e-09df-4773-9913-9f617beeee5f",
"metadata": {},
"source": [
"Die nächste Schleife iteriert über die Zeilen der Tabelle. Dabei wird für jede Station der höchstwert bestimmt."
"Die nächste Schleife iteriert über die Zeilen der Tabelle. Dabei wird für jede Station der Höchstwert bestimmt."
]
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": null,
"id": "c5be1f84-d6a0-42cb-9ce8-38d5de155a53",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Die heißeste Station ist Cottbus mit einer Temperatur von 32.2C\n"
]
}
],
"outputs": [],
"source": [
"for table in result: \n",
" max = -254 # Maximal Wert der aktuell Verarbeiteten Station\n",
" max = -254 # Maximalwert der aktuell verarbeiteten Station\n",
" for record in table.records:\n",
" station_name = record.get_measurement() # Abfragen des Stationsnamens\n",
" value = record.get_value() # Abfragen des Messwertes\n",
" if value > max:\n",
" max = value \n",
" if max > max_station_temp: # Wenn die aktuelle Station heißer ist als der bisherige Maximalwert\n",
" max_station_temp = max # den neuen heißsten Wert Speichern\n",
" max_station_temp = max # den neuen heißesten Wert speichern\n",
" max_station_name = station_name # und auch den Namen der Station speichern\n",
"\n",
"print(\"Die heißeste Station ist \" + str(max_station_name) + \" mit einer Temperatur von \" + str(max_station_temp) + \"C\" )"
"print(\"Die heißeste Station ist \" + str(max_station_name) + \" mit einer Temperatur von \" + str(max_station_temp) + \"C.\" )"
]
},
{
@ -612,23 +588,15 @@
"id": "95c26c18-6993-4245-b8f8-58fce2377179",
"metadata": {},
"source": [
"Zum bestimmen der nidrigsten Temperatur ist ganz Ähnlich"
"Zum Bestimmen der niedrigsten Temperatur ist ziemlich ähnlich."
]
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": null,
"id": "3736b28c-c6b0-4d94-a750-6598d28dc316",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Die kälteste Station ist Öhringen mit einer Temperatur von 18.4C\n"
]
}
],
"outputs": [],
"source": [
"min_station_temp = 254 # Höchsttemperatur der heißesten Station \n",
"min_station_name = \"\" # Name der heißesten Station\n",
@ -644,16 +612,8 @@
" min_station_temp = max \n",
" min_station_name = station_name\n",
"\n",
"print(\"Die kälteste Station ist \" + str(min_station_name) + \" mit einer Temperatur von \" + str(min_station_temp) + \"C\" )"
"print(\"Die kälteste Station ist \" + str(min_station_name) + \" mit einer Temperatur von \" + str(min_station_temp) + \"C.\" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e71ea5cd-12fe-4f5d-bf2f-4fa91e2c78dc",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {

Binary file not shown.