nbus_frame_parser.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import pandas as pd
  2. from gui.config import *
  3. class NbusFrameParser:
  4. def __init__(self, dataframe):
  5. self._df = dataframe
  6. def get_pos_ref(self, series):
  7. return self._parse_data_phase(series, MeasuringPhase.POS_REF, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z])
  8. def get_pos_begin(self, series):
  9. return self._parse_data_phase(series, MeasuringPhase.POS_START, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z])
  10. def get_pos_end(self, series):
  11. return self._parse_data_phase(series, MeasuringPhase.POS_END, [CN_TOF_X, CN_TOF_Y, CN_TOF_Z])
  12. def get_acc(self, series):
  13. return self._parse_data_phase(series, MeasuringPhase.MOVEMENT, [CN_TIME, CN_ACC_X, CN_ACC_Y, CN_ACC_Z])
  14. def get_gyr(self, series):
  15. return self._parse_data_phase(series, MeasuringPhase.MOVEMENT, [CN_TIME, CN_GYR_X, CN_GYR_Y, CN_GYR_Z])
  16. def _parse_data_phase(self, series, phase, columns):
  17. return (
  18. self._df.loc[
  19. (self._df[CN_SER] == series) & (self._df[CN_PHA] == NBUS_DATA_PHASE_MAPPING[phase.value]),
  20. columns
  21. ]
  22. .apply(pd.to_numeric)
  23. .to_numpy()
  24. .T
  25. )