Skip to content
Snippets Groups Projects
Commit 7752d572 authored by Xia, Ning's avatar Xia, Ning :penguin:
Browse files

updated README.md

parent ef129063
No related branches found
No related tags found
No related merge requests found
# Lerneinheit II-II: Kalorimetrie (Präsenz)
## Einführung
Siehe Skript und Aufgabenstellung in [moodle](https://moodle.tu-darmstadt.de/course/view.php?id=36368&section=4#tabs-tree-start).
Siehe Skript und Aufgabenstellung in [moodle](https://moodle.tu-darmstadt.de/course/view.php?id=36368&section=5#tabs-tree-start).
## Materialien
In diesem GitLab Repo finden Sie:
......@@ -19,90 +19,19 @@ In diesem GitLab Repo finden Sie:
- Requirements (`requirements.txt`): Beschreibt die pip-Umgebung, nicht relevant für die Ausarbeitung
- Matplotlib Style (`FST.mplstyle`): Einstellung für Matplotlib nach der FST-Institut-Vorschrift
### H5py Quick Start Guide
https://docs.h5py.org/en/stable/quick.html
### Links
Mehr Infomationen über die Datenstruktur sind in der [README.md](https://git.rwth-aachen.de/fst-tuda/public/lehre/calorimetry_home/-/blob/main/README.md) des Küchentischversuches zu finden.
### Datenstruktur
Messdaten und Metadaten existieren nicht nur in der Festplatte, sondern auch während der Durchführung des Programms im Arbeitsspeicher. Die Daten, die während der Durchführung des Programms eingelesen aus erstellt werden, bezeichnet man als `Runtime Daten`. Die Funktionen, die Sie bei der Bearbeitung implementieren werden, wurden unter Berücksichtigung der spziellen Datenstrukturen implementiert.
#### Runtime Metadaten
Die Datenstruktur basiert auf Python-Dictionary `dict`. `all` bezieht sich auf alle Komponenten des Prüfstandes. Das Value davon ist ein Python-Dictionary, das hat 2 Keys `values` und `names`. Die beinhalten jeweils eine Liste mit den UUIDs und Namen.
[h5py Quick Start Guide](https://docs.h5py.org/en/stable/quick.html)
Das Value von Key `setup_path` muss den Pfad zur Setup-Datei entsprechen, aus der das Metadaten-Dictionary erzeugt wird.
[NumPy Fundamentals](https://numpy.org/doc/stable/user/basics.html)
Weitere Keys entsprechen die Namen der Typen der Komponenten. Das Vaule ist jeweils ein Python-Dictionary mit gleich Key-Value-Paar wie das Vaule von `all` Key. `sensor` Typ ist einer Sonderfall. Das Value-Dictionary kann noch `serials` als Key mit einer Serials-Liste als Value enthalten.
[Matplotlib Pyplot Scatter](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatter)
```python
{
'all': {
'values': [list of all UUIDs],
'names': [list of all names]
},
'setup_path': '/path/to/setup_up.json',
# Only for sensor type, there is serials key
'sensor': {
'values': [list of UUIDs of sensors],
'names': [list of names of sensors],
'serials': [list of serials of sensors]
},
'type1': {
'values': [list of UUIDs of type1],
'names': [list of names of type1]
},
'type2': {
'values': [list of UUIDs of type2],
'names': [list of names of type2]
},
...
}
```
#### Runtime Messdaten
Die Messdaten aller Sensoren werden während des Versuches in ein Python-Dictionary bzw. Liste abgespeichert. Das Dictionary hat UUIDs der Sensoren als Keys. Die entsprechenden Values sind Liste, die zwei Listen enthalten. Die erste Liste enthält die Tempraturdaten, während die zweite die Zeitpunten behalten.
```python
{
'uuid1': [
[list of temprature],
[list of time step]
],
'uuid2': [
[list of temprature],
[list of time step]
],
'uuid3': [
[list of temprature],
[list of time step]
],
...
}
```
#### HDF5 structure
Die Messdaten werden am Ende der Versuche in HDF5-Daten abgespeichert. Die Daten müssen eine bestimmte Struktur aufweisen. In jeder HDF5-Datei existiert eine Sub-Gruppe `RawData`, die die weiteren als UUID benennten Sub-Gruppen enthält. Die Sub-Gruppen in `RawData` beinhalten zwei Datensätze mit den Namen `temperature` und `time`.
Die Metadaten `authors`, `created`, `experiment` und `group_number` sollten als Attribute der HDF5-Datei gespeichert werden. Die Attribute der Sub-Gruppen in `RawData` sind der Name und die Serial-Nummer des ensprechenden Sensores. Die Datasätze `time` beinhalten die Attribute über die verwendete Zeitkonvention. In diesem Fall sind folgende Attribute zu verwenden.
``` python
{
"time_convention": "Unixzeit",
"the_epoch": "Donnerstag, der 1. Januar 1970, 00:00 Uhr UTC",
"time_explanation": "Die Unixzeit zaehlt die vergangenen Sekunden seit The Epoch"
}
```
```
H5-File-Name (+ Attributes: authors, created[time], experiment, groupNumber, testrig)
RawData
UUID1 (+ Attributes: name, serial)
temperature (this is a data set)
timestamp (this is a data set)
UUID2 (+ Attributes: name, serial)
temperature (this is a data set)
timestamp (this is a data set)
UUID3 (+ Attributes: name, serial)
temperature (this is a data set)
timestamp (this is a data set)
...
```
[PyPi: W1ThermSensor](https://pypi.org/project/w1thermsensor/)
## Ausarbeitung
Die Ausarbeitung erfolgt in den Modul `m_labor` und Notebook. In diesen ist bereits eine Gliederung vorgegeben.
Die Ausarbeitung erfolgt in den Modul `m_labor` und Notebook `ausarbeitung_laborversuch.ipynb`. In diesen ist bereits eine Gliederung vorgegeben.
## Abgabe
Die Abgabe erfolgt über [moodle](https://moodle.tu-darmstadt.de/mod/assign/view.php?id=1249200). Committen und pushen Sie zunächst Ihre Änderungen auf GitLab und laden Sie von dort Ihr gesamtes Repo als .zip-Datei herunter (ein direkter Download vom JupyterHub ist leider nicht möglich). Benennen Sie die .zip-Datei nach dem folgenden Schema:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment