Ich möchte die Ergebnisse von Zeitreihen (Sensordaten) in einer HDF5-Datei speichern. Ich kann meinem Datensatz keine Werte zuordnen. Klar, ich tue etwas falsch, ich bin nur nicht sicher, was ...Zeitreihenspeicher im HDF5-Format
Der Code:
from datetime import datetime, timezone
import h5py
TIME_SERIES_FLOAT = np.dtype([("time", h5py.special_dtype(vlen=str)),
("value", np.float)])
h5 = h5py.File('balh.h5', "w")
dset = create_dataset('data', (1, 2), chunks=True, maxshape=(None, 2), dtype=TIME_SERIES_FLOAT)
dset[0]['time'] = datetime.now(timezone.utc).astimezone().isoformat()
dset[0]['value'] = 0.0
Dann wird der Update-Code des Datensatzes ändert die Größe und Werte hinzufügt. Klar, dass pro Wert zu tun ist ineffizient:
size = list(dset.shape)
size[0] += 1
dset.resize(tuple(size))
dset[size[0]-1]['time'] = datetime.now(timezone.utc).astimezone().isoformat()
dset[size[0]-1]['value'] = value
Eine viel bessere Methode, einige Daten in eine np.array
zu sammeln wäre und dann hinzufügen, dass jeder so oft ...
Ist das sinnvoll ...