zjb.main.data.series 源代码

import pickle
from enum import Enum as ZJBEnum

import numpy as np
from mne.io import RawArray
from traits.api import Enum, Float, Int, Property

from zjb._traits.types import Instance
from .base import ArrayData
from .space import SurfaceSpace
from ..data.space import Space
from ..dtb.atlas import RegionSpace


[文档] class TimeUnit(ZJBEnum): """ 时间单位枚举类。 这个枚举类定义了不同的时间单位。 Attributes ---------- UNKNOWN : str 未知时间单位。 MILLISECOND : str 毫秒。 SECOND : str 秒。 """ UNKNOWN = "unknown" MILLISECOND = "ms" SECOND = "s"
[文档] class SpaceSeries(ArrayData): """ 空间序列类。 该类用于表示与空间相关的数据序列。 Attributes ---------- space : Space 空间实例。 data : array 包含空间序列数据的 NumPy 数组。 """ space = Instance(Space)
[文档] class TimeSeries(SpaceSeries): """ 时间序列类。 该类继承自 SpaceSeries,用于表示随时间变化的空间数据序列。 Attributes ---------- time_dim : int 数据中代表时间的维度。 sample_unit : TimeUnit 采样的时间单位。 sample_period : float 采样间隔时间。 start_time : float 序列的开始时间。 time : Property 根据开始时间、采样间隔和时间维度计算的时间数组。 """ time_dim = Int(0) # 时间的维度 sample_unit = Enum(TimeUnit) # 采样单位 sample_period = Float(1) # 采样间隔 start_time = Float(0.0) # 开始时间 time = Property()
[文档] def save_file(self, file_path): """ 将 TimeSeries 实例保存到pickle文件。 Parameters ---------- file_path : str 要保存文件的路径。 """ with open(file_path, "wb") as f: pickle.dump(self, f)
[文档] @classmethod def from_file(cls, file_path): """ 从pickle文件加载 TimeSeries 实例。 Parameters ---------- file_path : str 要加载的文件路径。 Returns ------- TimeSeries 从文件中加载的 TimeSeries 实例。 """ with open(file_path, "rb") as f: cls = pickle.load(f) return cls
[文档] def _get_time(self): """ 计算并返回时间数组。 Returns ------- np.ndarray 时间序列的 NumPy 数组。 """ time = self.start_time + ( np.arange(self.data.shape[self.time_dim]) * self.sample_period ) return time
[文档] class RegionalTimeSeries(TimeSeries): """ 脑区时间序列类。 该类继承自 TimeSeries,用于表示随时间变化的脑区数据序列。 Attributes ---------- space : RegionSpace 表示脑区的空间实例。 """ space = Instance(RegionSpace)
[文档] class VertexalTimeSeries(TimeSeries): """ 顶点时间序列类。 该类继承自 TimeSeries,用于表示随时间变化的顶点数据序列。 Attributes ---------- space : SurfaceSpace 表示皮层的空间实例。 """ space = Instance(SurfaceSpace)
[文档] class MNEsimSeries(ArrayData): """MNE仿真的数据""" rawarray = Instance(RawArray)