Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
phtg:bp:ch3 [2024-05-13 19:02] – [Python: Zeitstempel formatieren] hofphtg:bp:ch3 [2024-05-28 19:23] (aktuell) hof
Zeile 1: Zeile 1:
 # Data Processing # Data Processing
  
-## Data Collection+Um unsere Batterie auszumessen müssen wir zweierlei tun:
  
-Keine Batterie hält ewig - nun möchten wir wissen, wie lange unsere Batterie Strom liefert, und wieviel Energie wir praktisch nutzen konnten, bis sie leer ist. Aus der Physik wissen wir, dass $Spannung\cdot{}Strom$ die Leistung unserer Batterie (bzw. die Leistungsaufnahme der Leuchte) ergibt. Wenn wir die Leistung über die ganze Lebensdauer unseres Systems aufzeichnen, wissen wir, wieviel Arbeit die Batterie insgesamt geleistet hat. +  * Die Spannung und den Strom in unserem Stromkreis messen: [[phtg:bp:ch3:datacollection]] 
 +  * Die Messdaten auswerten und darstellen: [[phtg:bp:ch3:datavisualization]]
  
-  TODO je nach verwendeter Sensortechnik unterscheidet sich dieser Block. +## Lernjob-Produkte
- +
-  TODO: wollen wir wirklich Spannung & Strom messen, oder nur $U$, da $R$ bekannt ist? +
-  +
- +
-### Ziel +
-Schreibe Python-Code wie folgt. Falls die nötigen Python-Kenntnisse noch nicht vorhanden sind, folgst du den untenstehenden Tutorials. +
- +
-  * Datei `batterie.csv` im Schreibmodus öffnen. +
-  * Eine Schleife ausführen, die alle zehn Sekunden die Strom- und Spannungswerte ausliest. +
-  * Für jede Lesung wird eine Zeile (en. _record_) in die Datei geschrieben im folgenden Format: +
-  +
- `<timestamp>, <spannung>, <strom>+
- +
-  * also zum Beispiel (für eine Messung von $U = 1.37V$ und $I = 300mA$): +
-  +
- `2024-06-13 14:08:37.375, 1.37, 0.3` +
- +
-### Tutorials +
- +
-#### Python: Datei Ein- und Ausgabe +
- +
-Wie lesen wir Daten in einer Text-Datei? +
- +
-<code python> +
-# Opens a file for writing (and closes it again after the 'with'). +
-with open('dateiname.csv', 'w') as outfile: +
-    for i in range(10): +
-        line = 'Zeile ' + str(i) + '\n' +
-        outfile.write(line) +
-</code> +
- +
-Beachte: +
-   * Wenn Dateien gelesen oder geschrieben werden, müssen sie beim Betriebssystem reserviert werden. Mit `with` wird sichergestellt, dass die Datei nicht offen bleibt sondern nach dem Lesevorgang wieder geschlossen wird. +
-   * Die Datei (hier 'dateiname.csv') muss sich im gleichen Ordner befinden wie die Python-Datei. +
-   * `'w'` bedeutet *write*, dass die Textdatei nur gelesen und nicht verändert wird. +
-   * `str()` verwandelt die Zahl in einen Text. +
-   * `'\n'` ist der ASCII-Code für einen Zeilenumbruch. +
- +
-##### Aufgabe +
-Beschreibe eine Datei mit einigen Zeilen. Es ist ungünstig, mehr als einige zehntausend Zeilen zu schreiben... +
-#### Python: Schlafen +
-Wir wollen nur alle zehn Sekunden einen neuen Record schreiben, aber der Computer ist viel schneller. Zwischen den Messungen schlafen wir also: +
- +
-<code python> +
-import time +
-duration = 5 +
-print(f'Hello, I will sleep for {duration} seconds!'+
-time.sleep(duration) +
-print('Yawn, just woke up!'+
-</code> +
- +
-##### Aufgabe +
- +
-Führe den obigen Code aus. Ändere ihn so ab, dass der Schlaf nur noch $2.5s$ dauert! +
-#### Python: Zeitstempel formatieren +
- +
-Zeitstempel können aus der `datetime` Bibliothek geholt werden: +
- +
-<code python> +
-from datetime import datetime +
- +
-print(datetime.now()) +
-</code> +
- +
-Mit Python f-Strings können mehrere Argumente praktisch in einen String gepackt werden: +
- +
-<code python> +
-from datetime import datetime +
-timestamp = datetime.now() +
-planet = 'Alderaan' +
-magnitude = 'great' +
-print(f'At {timestamp}, there was a {magnitude} disturbance in the Force on planet {planet}!'+
-</code> +
- +
-##### Aufgabe +
- +
-Ändere den Code so ab, dass eine _small_ disturbance auf dem Planet _Coruscant_ rapportiert wird. +
- +
-(Du weisst nicht, was mit _Alderaan_ oder _Coruscant_ gemeint ist? -> [[wpde>Star Wars]] schauen bis zur nächsten Lektion!) +
- +
-#### CSV-Format +
-Unsere Log-Datei ist im [[wpde>CSV_(Dateiformat)|Comma-Separated-Values]] Format gespeichert: Die Daten sind ganz ähnlich gespeichert wie in einer Tabelle und können auch mit Excel und Sheets geöffnet werden. Jede Zeile entspricht einer Zeile der Tabelle; die Spalten sind meist mit Kommas voneinander getrennt. Manchmal werden aber auch Semikolons oder ein Tabulator (`\t`) als Trennzeichen verwendet. +
- +
-Oft werden in der ersten Zeile die Namen der abgespeicherten Werte festgelegt: +
- +
-<code csv> +
-Zeitstempel,Spannung,Strom +
-2024-06-13 14:08:37.375, 1.37, 0.301 +
-2024-06-13 14:08:47.105, 1.35, 0.295 +
-... +
-</code>+
  
 +  * Teile deine Tabelle (mit den Diagrammen) mit der Lehrperson.
  
 +## Challenge-Produkt
 +  * Füge die Diagramme in das Batterie-Poster ein.
  • phtg/bp/ch3.1715626929.txt.gz
  • Zuletzt geändert: 2024-05-13 19:02
  • von hof