コード例 #1
0
 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
コード例 #2
0
 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
コード例 #3
0
 def prepare_container(self, container: SigContainer) -> SigContainer:
     return SigContainer(container.d.deepcopy(shared_folders=["annotations"],
                                              empty_folders=["meta"]))
コード例 #4
0
 def container_factory(container: SigContainer):
     nc = SigContainer(container.d.deepcopy())
     nc.d["log"] = list(nc.d["log"])
     return nc
コード例 #5
0
 def prepare_container(self, container: SigContainer) -> SigContainer:
     return SigContainer(container.d.deepcopy(["signals", "annotation"]))