diff --git a/baseprocessor.py b/baseprocessor.py index 85d61e1..c70b213 100644 --- a/baseprocessor.py +++ b/baseprocessor.py @@ -9,8 +9,9 @@ from functools import partial import numpy as np import tables - from tables import HDF5ExtError +from tables.registry import class_name_dict + from params import default_params, load_params from units import U import traceback @@ -408,8 +409,14 @@ class HDF5Container(BaseProcessor): except TypeError: data = np.array([data]) + group_name = os.path.dirname(name_full) + if group_name in self.save: + group = self.save[group_name] + if not isinstance(group, class_name_dict['Group']): + self._log(f"{group_name} already there and no a group, deleting", "WARNING") + self.save.remove_node(group) self.save.create_array( - os.path.dirname(name_full), + group_name, os.path.basename(name_full), data, description, diff --git a/snapshotprocessor.py b/snapshotprocessor.py index 4d061d1..49584eb 100644 --- a/snapshotprocessor.py +++ b/snapshotprocessor.py @@ -489,6 +489,8 @@ class SnapshotProcessor(HDF5Container): self.open() if "/maps" not in self.save: self.save.create_group("/", "maps", "2D maps") + if "/hist" not in self.save: + self.save.create_group("/", "hist", "Histograms") if "/datasets" not in self.save: self.save.create_group("/", "datasets", "Complex datasets") self.save.root.maps._v_attrs.center = center