コード例 #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) -> SigContainer:
        container = self.prepare_container(container)
        fs = container.d["signals/fs"]
        lag = container.lag
        start = TimeUnit.to_sample(self.start, fs,
                                   TimeUnit.time_unit_mapper(self.start), lag)
        end = TimeUnit.to_sample(self.end, fs,
                                 TimeUnit.time_unit_mapper(self.end), lag)
        container.d["signals/data"] = container.d["signals/data"][:, start:end]
        container.d["signals/lag"] = lag - start

        if "annotations" in container.d:
            adict = container.d["annotations"]
            newdict = SigContainer.cut_annots(adict, start, end)
            adict.update(newdict)

        return container