diff --git a/core/functions/test_hdf.py b/core/functions/test_hdf.py new file mode 100644 index 0000000000000000000000000000000000000000..bd7fd764345840e80c63bdd49f7aad4a8d5ad2ca --- /dev/null +++ b/core/functions/test_hdf.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 +# c=CellsHDF.from_source("/home/alan/Documents/sync_docs/PhD/tmp/DO6MS2_003store.h5") +import h5py +from core.cells import Cells +import pandas as pd + +f = h5py.File("/home/alan/Documents/sync_docs/PhD/tmp/DO6MS2_003store.h5") +tracks = f["/extraction/general/None/area"][()] +cell = Cells.from_source("/home/alan/Documents/sync_docs/PhD/tmp/DO6MS2_003store.h5") +from postprocessor.core.picker import Picker + +picker = Picker(tracks=pd.DataFrame(tracks), cells=cell) diff --git a/core/processor.py b/core/processor.py index 917b951773a11d0b4d591be8951993382f824bbb..32cc0f313c92ced1ed3e8fd677414838f9bb29cd 100644 --- a/core/processor.py +++ b/core/processor.py @@ -1,13 +1,41 @@ +class Parameters: + def __init__(self, merger=None, picker=None, processes=None, branches=None): + self.merger = merger + self.picker = picker + self.processes = processes + self.branches = branches + + def __getitem__(self, item): + return getattr(self, item) + + class PostProcessor: - def __init__(self, parameters): + def __init__(self, parameters, signals): self.parameters = parameters self.merger = Merger(parameters["merger"]) self.picker = Picker(parameters["picker"]) - self.processes, self.branches = [ - (self.get_process(process), branch) - for process, branch in parameters["processes"] + self.processes = [ + self.get_process(process) for process in parameters["processes"] ] + self.branches = parameters["branches"] def run(self): + self.merger.run(signals.get_branch(self.branches["merger"])) + self.picker.run(signals.get_branch(self.branches["picker"])) + for process, branch in zip(self.processes, self.branches["processes"]): + process.run(signals.get_branch(branch)) + + +class Signals: + def __init__(self, file): + self._file = h5py.File(file, "r") + + def get_branch(self, branch): + return self._file[branch][()] + + def branch_to_df(self): pass + + def close(self): + self._file.close()