import pandas as pd from gui.config import * class NbusFrameParser: def __init__(self, dataframe): self._df = dataframe def get_pos_ref(self, series): return self._parse_data_phase(series, MeasuringPhase.POS_REF, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z]) def get_pos_begin(self, series): return self._parse_data_phase(series, MeasuringPhase.POS_START, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z]) def get_pos_end(self, series): return self._parse_data_phase(series, MeasuringPhase.POS_END, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z]) def get_acc(self, series): return self._parse_data_phase(series, MeasuringPhase.MOVEMENT, [CN_TIME, CN_ACC_X, CN_ACC_Y, CN_ACC_Z]) def get_gyr(self, series): return self._parse_data_phase(series, MeasuringPhase.MOVEMENT, [CN_TIME, CN_GYR_X, CN_GYR_Y, CN_GYR_Z]) def _parse_data_phase(self, series, phase, columns): return ( self._df.loc[ (self._df[CN_SER] == series) & (self._df[CN_PHA] == NBUS_DATA_PHASE_MAPPING[phase.value]), columns ] .apply(pd.to_numeric) .to_numpy() .T )