Daten aus Datei importieren
Was sind Datenquellen?
Eine Datenquelle ist der zentrale Container für Signale in ScryLab. Die konzeptionelle Einführung finden Sie unter Konzepte: Datenquellen.
Daten können entweder klassisch aus Dateien importiert oder programmgesteuert über die REST API gesendet werden – beide Wege führen zu einer Datenquelle, deren Signale im Source Signals Browser verfügbar sind.
Sie können persistierte Mess- oder Simulationsdaten über den “Load Data Source”-Button
im Data Source Browser oder über die Befehlsleiste (Strg+P) mit dem Befehl Load Data Source laden.
Aktuell unterstützt ScryLab den Import von Dateien in folgenden Formaten:
| Format | Endungen |
|---|---|
| MDF | .mf4, .mf3, .dat, .mdf |
| HDF5 | .h5, .hdf5 |
| CSV | .csv |
| Excel | .xlsx, .xls |
Die folgenden Abschnitte beschreiben, wie jedes Format aufgebaut sein muss, damit ScryLab Ihre Signale korrekt einliest.
Weitere Formate
Weitere Formate werden in Zukunft folgen. Falls Sie ein bestimmtes Format benötigen, kontaktieren Sie uns gerne über das Kontaktformular oder per E-Mail.
MDF
MDF (.mf4, .mf3, .dat, .mdf) ist ein standardisiertes Messformat – hier müssen Sie nichts vorbereiten. ScryLab liest die Datei so, wie sie ist:
- Jeder Datenkanal wird zu einem Signal. Der Kanalname ist der Signalname, die Einheit stammt aus den Kanal-Metadaten.
- Der Master-Channel jeder Kanalgruppe dient als x-Achse (in der Regel die Zeit).
- Kommt derselbe Kanalname mehrfach vor, wird nur die erste Occurrence importiert.
HDF5
ScryLab liest HDF5-Dateien in einem von zwei Layouts. Das Layout wird automatisch erkannt: Enthält irgendeine Group auf oberster Ebene ein Dataset namens y, wird die gesamte Datei als grouped gelesen, sonst als flat.
Grouped-Layout (empfohlen)
Jedes Signal ist eine Group, die ihre Samples als Datasets enthält. In diesem Layout schreibt ScryLab auch selbst, wenn es HDF5 exportiert.
| Dataset | Erforderlich | Bedeutung |
|---|---|---|
y | ja | 1‑D-Array der y-Samples |
x | nein | 1‑D-x-Achse, gleiche Länge wie y. Fehlt es, wird der Laufindex verwendet |
z | nein | 1‑D-z-Samples (für 3‑D-Signale) |
Die Einheiten stammen aus den Group-Attributen y_unit, x_unit und z_unit (ersatzweise wird ein unit-Attribut am x/y-Dataset verwendet). Der Group-Name ist der Signalname; verschachtelte Groups sind erlaubt und werden zu einem Pfad, z. B. motor/temperatur.
# Beispiel, geschrieben mit h5pyimport h5py, numpy as np
t = np.linspace(0, 1, 1000)with h5py.File("messung.h5", "w") as f: g = f.create_group("Sinus 5Hz") g.create_dataset("x", data=t) g.create_dataset("y", data=np.sin(2 * np.pi * 5 * t)) g.attrs["x_unit"] = "s" g.attrs["y_unit"] = "V"Flat-Layout
Jedes 1‑D-Dataset wird als Signal behandelt (nur y-Samples); als x-Achse dient der Laufindex. Die Einheit stammt aus dem unit-Attribut des Datasets. Verschachtelte Groups werden durchlaufen und zu einem Pfad im Signalnamen.
Welches Layout soll ich nehmen?
Nutzen Sie das Grouped-Layout, sobald Sie eine echte x-Achse (Zeit, Frequenz, …) haben oder Einheiten setzen wollen. Das Flat-Layout ist nur für reine Werte-Vektoren gedacht.
CSV & Excel
Tabellarische Dateien werden spaltenweise importiert: jede numerische Spalte wird zu einem Signal, die Spaltenüberschrift ist der Signalname. Text-Spalten und Spalten ohne Überschrift (Unnamed: …) werden ignoriert. Bei Excel wird jedes Blatt als eigene Datenquelle importiert.
Zeitachse
ScryLab versucht, die x-Achse automatisch zu erkennen:
- Eine Spalte mit typischem Zeit-Namen wird als Zeitachse verwendet:
time,zeit,timestamp,t,sec,secs,seconds,time_s. Der Vergleich ist unabhängig von Groß-/Kleinschreibung, und ein Einheiten-Suffix in Klammern wird ignoriert – so werden auchZeit [s]oderTIME (s)erkannt. - Andernfalls wird die erste Spalte verwendet, sofern sie numerisch und streng monoton steigend ist.
- Trifft nichts davon zu, wird der Laufindex zur x-Achse.
Zeit [s]; Drehzahl; Spannung0.00; 0.0; 1.980.01; 0.5; 2.010.02; 1.1; 2.04Mehrere Sensoren mit eigener Zeitachse
Enthält eine Tabelle mehr als eine Zeitspalte, verwendet ScryLab ein Spaltenpaar-Layout: Jede Zeitspalte gilt für die Wertespalten rechts von ihr bis zur nächsten Zeitspalte. So lassen sich asynchron abgetastete Kanäle nebeneinander ablegen. Kürzere Kanäle dürfen mit Leerzellen aufgefüllt sein – ScryLab schneidet dieses Padding pro Signal ab.
Damit sich die Zeitspalten unterscheiden lassen, geben Sie jeder einen Zeit-Namen mit Suffix, z. B. Time_A / Time_B oder zeit_sensor1 / zeit_sensor2 – die Präfixe time_, zeit_, timestamp_ usw. werden alle erkannt. Zwei Spalten, die schlicht Time heißen, funktionieren ebenfalls (die zweite wird beim Einlesen zu Time.1 umbenannt). Was nicht geht, ist das kurze t_-Präfix (t_1, t_2): Es ist bewusst ausgeschlossen, damit eine Spalte wie t_motor (eine Temperatur) nicht als Zeitachse missverstanden wird.
Zeit_A; Druck; Zeit_B; Temperatur0.00; 1013; 0.0; 21.40.01; 1012; 0.5; 21.50.02; 1014; ; 21.6CSV-Details
Das Trennzeichen (Komma, Semikolon oder Tab) wird automatisch erkannt, ebenso die deutsche Zahlenschreibweise mit Dezimalkomma (1,5). CSV- und Excel-Dateien enthalten keine Einheiten-Information – so importierte Signale haben daher keine Einheit, die Sie später in ScryLab zuweisen können.