Add data_visualization/README.md
This commit is contained in:
parent
8f80a64b21
commit
4fab9f723d
1 changed files with 109 additions and 0 deletions
109
data_visualization/README.md
Normal file
109
data_visualization/README.md
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
# Data Visualization – Lichtsichtbarkeit ohne Streumittel
|
||||||
|
|
||||||
|
## Überblick
|
||||||
|
Diese Webanwendung visualisiert und analysiert Sensordaten aus dem Experiment **„Lichtsichtbarkeit ohne Streumittel“**. Ziel ist es, zeitabhängige Intensitätswerte verschiedener Logger visuell und interaktiv darzustellen, um insbesondere Anomalien oder signifikante Intensitätsänderungen zu erkennen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ziel und Funktionsumfang
|
||||||
|
**Ziel der Anwendung:**
|
||||||
|
- Unterstützung der wissenschaftlichen Auswertung von Logger-Daten.
|
||||||
|
- Bereitstellung einer intuitiven Weboberfläche zur Filterung und Untersuchung der Messverläufe.
|
||||||
|
|
||||||
|
**Kernfunktionen:**
|
||||||
|
- Anzeige der Intensitätswerte in Diagrammen über die Zeit.
|
||||||
|
- Datenabruf per API-Route `/data` (GET).
|
||||||
|
- Filterung nach Sensor-ID und Zeitfenster.
|
||||||
|
- Interaktion mit Diagrammen: Hervorhebung von Peaks, Markierung von Anomalien.
|
||||||
|
- Responsives Layout mit klarer Trennung zwischen Steuerung und Darstellung.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Architekturüberblick
|
||||||
|
Die Anwendung ist vollständig clientseitig aufgebaut und folgt dem MVC-ähnlichen Prinzip:
|
||||||
|
|
||||||
|
| Ebene | Beschreibung |
|
||||||
|
|------------------|---------------|
|
||||||
|
| **UI (View)** | HTML/CSS-Komponenten zur Darstellung von Diagrammen und Steuerelementen. |
|
||||||
|
| **Logic (Controller)** | JavaScript-Module zur Interaktion, Filterlogik und Visualisierung. |
|
||||||
|
| **Data (Model)** | Lädt Messdaten über die definierte API `/data` (GET) und speichert sie im Browser-Speicher. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Datenfluss
|
||||||
|
1. Beim Laden ruft das Frontend Messdaten über `GET /data` ab.
|
||||||
|
2. Die Daten bestehen aus einem JSON-Array von Messobjekten mit Feldern:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"timestamp": "YYYY-MM-DDTHH:mm:ssZ",
|
||||||
|
"intensity": <Number>,
|
||||||
|
"wavelength": <Number>,
|
||||||
|
"sensor_id": <String>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
3. Nach Empfang werden die Daten im Browser verarbeitet (Filterung, Transformation und Visualisierung).
|
||||||
|
4. Diagramme aktualisieren sich dynamisch, sobald Nutzer Filter oder Zeiträume ändern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## API-Dokumentation
|
||||||
|
### Route: `/data`
|
||||||
|
- **Methode:** GET
|
||||||
|
- **Zweck:** Liefert Sensordaten zur Darstellung und Analyse.
|
||||||
|
- **Optionale Parameter:**
|
||||||
|
- `log_file_path`: Pfad oder Identifier einer spezifischen Datei oder Messreihe.
|
||||||
|
- **Antwort:** JSON-Array von Messobjekten mit Zeitstempel, Intensität, Wellenlänge und Sensor-ID.
|
||||||
|
|
||||||
|
Beispielaufruf:
|
||||||
|
```
|
||||||
|
GET /data?log_file_path=session_01.json
|
||||||
|
```
|
||||||
|
Beispielantwort:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{"timestamp": "2026-02-12T13:00:00Z", "intensity": 0.83, "wavelength": 532, "sensor_id": "S01"},
|
||||||
|
{"timestamp": "2026-02-12T13:00:10Z", "intensity": 0.79, "wavelength": 532, "sensor_id": "S01"}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ordnerstruktur
|
||||||
|
```
|
||||||
|
/ (Projektwurzel)
|
||||||
|
├── index.html
|
||||||
|
├── css/
|
||||||
|
│ └── style.css
|
||||||
|
├── js/
|
||||||
|
│ ├── app.js # Initialisierung und UI-Management
|
||||||
|
│ ├── api.js # Datenabruf /data
|
||||||
|
│ ├── chart.js # Diagramm-Rendering und Interaktion
|
||||||
|
│ └── filters.js # Filterlogik für Zeiträume und Sensoren
|
||||||
|
└── README.md # Dokumentation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nutzerinteraktion
|
||||||
|
- Auswahl bestimmter Sensoren erfolgt über Dropdown oder Checkbox.
|
||||||
|
- Zeiträume können durch Eingabe oder Slider definiert werden.
|
||||||
|
- Hover-Events auf Diagrammelementen zeigen Werte und Anomalie-Hinweise.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Entwicklung und Erweiterung
|
||||||
|
**Basis-Technologien:** HTML5, CSS3, JavaScript (ES6+).
|
||||||
|
|
||||||
|
**Modularität:**
|
||||||
|
- Jedes Modul (z. B. `api.js`, `chart.js`) ist unabhängig testbar.
|
||||||
|
- Neue Sensorparameter oder Darstellungsformen (z. B. Spektralvergleiche) können leicht ergänzt werden.
|
||||||
|
|
||||||
|
**Erweiterungsideen:**
|
||||||
|
- Exportfunktionen für CSV oder PNG.
|
||||||
|
- Erweiterte Statistikfunktionen (Mittelwerte, Standardabweichungen).
|
||||||
|
- Live-Daten-Modus über WebSocket.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lizenz und Copyright
|
||||||
|
© 2026 Donau2Space.de
|
||||||
Loading…
Reference in a new issue