From db1193e76db1546160e88859719b8844e57994e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <amuoz@ed.ac.uk>
Date: Wed, 14 Jul 2021 14:15:01 +0100
Subject: [PATCH] fix signals

Former-commit-id: 1350a0a00f92c081caeecc264a1be046c470e83f
---
 core/io/base.py             |  1 +
 core/io/signal.py           | 12 ++++++++----
 core/processor.py           |  2 +-
 examples/basic_processes.py |  8 ++++++++
 examples/signals.py         |  2 +-
 5 files changed, 19 insertions(+), 6 deletions(-)
 create mode 100644 examples/basic_processes.py

diff --git a/core/io/base.py b/core/io/base.py
index 6812bd53..a05aa035 100644
--- a/core/io/base.py
+++ b/core/io/base.py
@@ -13,6 +13,7 @@ class BridgeH5:
     """
 
     def __init__(self, file):
+        self.filename = file
         self._hdf = h5py.File(file, "r")
 
         self._filecheck()
diff --git a/core/io/signal.py b/core/io/signal.py
index 5ae9e505..da5f73f9 100644
--- a/core/io/signal.py
+++ b/core/io/signal.py
@@ -10,12 +10,16 @@ class Signal(BridgeH5):
 
     def __init__(self, file):
         super().__init__(file)
-        self._hdf.close()  # Close the file to use pandas hdf functions
-        # hdf = pd.HDFStore(file)
-        # self.file = file
 
     def __getitem__(self, dataset):
-        return pd.read_hdf(self.file, dataset)
+        dset = self._hdf[dataset]
+        index = pd.MultiIndex.from_arrays(
+            [dset[lbl][()] for lbl in dset.keys() if "axis1_label" in lbl]
+        )
+
+        columns = dset["axis0"][()]
+
+        return pd.DataFrame(dset[("block0_values")][()], index=index, columns=columns)
 
     @staticmethod
     def _if_ext_or_post(name):
diff --git a/core/processor.py b/core/processor.py
index be751b09..eeb3cf9a 100644
--- a/core/processor.py
+++ b/core/processor.py
@@ -10,7 +10,7 @@ from postprocessor.core.io.signal import Signal
 from core.cells import Cells
 
 
-class PostProParameters(ParametersABC):
+class PostProcessorParameters(ParametersABC):
     """
     Anthology of parameters used for postprocessing
     :merger:
diff --git a/examples/basic_processes.py b/examples/basic_processes.py
new file mode 100644
index 00000000..8dd85d5f
--- /dev/null
+++ b/examples/basic_processes.py
@@ -0,0 +1,8 @@
+from postprocessor.core.processor import PostProcessor, PostProcessorParameters
+
+params = PostProcessorParameters.default()
+pp = PostProcessor(
+    "/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01/ph_5_04_005store.h5",
+    params,
+)
+tmp = pp.run()
diff --git a/examples/signals.py b/examples/signals.py
index 2008c8fd..98bdc941 100644
--- a/examples/signals.py
+++ b/examples/signals.py
@@ -1,4 +1,4 @@
-from postprocessor.core.io.signals import Signal
+from postprocessor.core.io.signal import Signal
 
 signal = Signal(
     "/shared_libs/pipeline-core/scripts/data/ph_calibration_dual_phl_ura8_5_04_5_83_7_69_7_13_6_59__01/ph_5_04_001store.h5"
-- 
GitLab