def container_factory(self, container: SigContainer, a: int, b: int, splitter_id: str) -> SigContainer: c = SigContainer( container.d.deepcopy(empty_folders=["meta", "annotations"])) c.d["signals/data"] = c.d["signals/data"][:, a:b] newlog = list(c.d["log"]) newlog.append(f"{splitter_id}@{a}-{b}") c.d["log"] = newlog if "annotations" in container.d: c.d["annotations"].update( SigContainer.cut_annots(container.d["annotations"], a, b)) return c
def apply(self, container: SigContainer) -> Sequence[SigContainer]: container = self.prepare_container(container) containers = [] #TODO: zohlednit kanály for i in range(container.channel_count): c = SigContainer( container.d.deepcopy(["annotations"], empty_folders=["signals", "meta"])) c.d["signals/data"] = container.d["signals/data"][i, :].reshape( 1, container.sample_count) c.d["signals/channels"] = [container.d["signals/channels"][i]] c.d["signals/units"] = [container.d["signals/units"][i]] c.d["signals/fs"] = container.d["signals/fs"] c.d["log"] = list(container.d["log"]) c.d["log"].append(f"C{i}") containers.append(c) return containers
def prepare_container(self, container: SigContainer) -> SigContainer: return SigContainer(container.d.deepcopy(shared_folders=["annotations"], empty_folders=["meta"]))
def container_factory(container: SigContainer): nc = SigContainer(container.d.deepcopy()) nc.d["log"] = list(nc.d["log"]) return nc
def prepare_container(self, container: SigContainer) -> SigContainer: return SigContainer(container.d.deepcopy(["signals", "annotation"]))