API Reference

ACC

flirt.acc.get_acc_features(data: pandas.core.frame.DataFrame, window_length: int = 60, window_step_size: float = 1, data_frequency: int = 32, num_cores: int = 0)[source]

Computes statistical ACC features based on the l2-norm of the x-, y-, and z- acceleration.

Parameters
  • data (pd.DataFrame) – input ACC time series in x-, y-, and z- direction

  • window_length (int) – the window size in seconds to consider

  • window_step_size (int) – the time step to shift each window

  • data_frequency (int) – the frequency of the input signal

  • num_cores (int, optional) – number of cores to use for parallel processing, by default use all available

Returns

ACC Features – A DataFrame containing statistical aggregation features.

Return type

pd.DataFrame

Notes

DataFrame contains the following ACC features

  • Statistical Features: acc_entropy, acc_perm_entropy, acc_svd_entropy, acc_mean, acc_min, acc_max, acc_ptp, acc_sum, acc_energy, acc_skewness, acc_kurtosis, acc_peaks, acc_rms, acc_lineintegral, acc_n_above_mean, acc_n_below_mean, acc_iqr, acc_iqr_5_95, acc_pct_5, acc_pct_95

Examples

>>> import flirt.reader.empatica
>>> acc = flirt.reader.empatica.read_acc_file_into_df("ACC.csv")
>>> acc_features = flirt.get_acc_features(acc, 60)

HRV

flirt.hrv.get_hrv_features(data: pandas.core.series.Series, window_length: int = 180, window_step_size: int = 1, domains: List[str] = ['td', 'fd', 'stat'], threshold: float = 0.2, clean_data: bool = True, num_cores: int = 0)[source]

Computes HRV features for different domains (time-domain, frequency-domain, non-linear, statistical).

Parameters
  • data (pd.Series) – input IBIs in milliseconds

  • window_length (int) – the epoch width (aka window size) in seconds to consider

  • window_step_size (int) – the step size for the sliding window in seconds

  • domains (List[str]) – domains to calculate (possible values: “td”, “fd”, “nl”, “stat”)

  • threshold (float) – the relative portion of IBIs that need to be present in a window for processing. Otherwise, the window is dropped

  • clean_data (bool, optional) – whether obviously invalid IBIs should be removed before processing, by default True

  • num_cores (int, optional) – number of cores to use for parallel processing, by default use all available

Returns

HRV Features – A DataFrame containing all chosen features (i.e., time domain, frequency domain, non-linear features, and/or statistical features)

Return type

pd.DataFrame

Notes

DataFrame contains the following HRV features

  • Time Domain: rmssd, sdnn, sdsd, nni_50, pnni_50, nni_20, pnni_20, mean_hr, max_hr, min_hr, std_hr, cvsd, cvnni

  • Frequency Domain: tital_power, hf, vlf, lf, lf_hf_ratio, lfnu, hfnu

  • Non-Linear Features: SD1, SD2, SD2SD1, CSI, CVI, CSI_Modified

  • Statistical Features: ibi_entropy, ibi_perm_entropy, ibi_svd_entropy, ibi_ibi_mean, ibi_min, ibi_max, ibi_ptp, ibi_sum, ibi_energy, ibi_skewness, ibi_kurtosis, ibi_peaks, ibi_rms, ibi_lineintegral, ibi_n_above_mean, ibi_n_below_mean, ibi_iqr, ibi_iqr_5_95, ibi_pct_5, ibi_pct_95

Examples

>>> import flirt.reader.empatica
>>> ibis = flirt.reader.empatica.read_ibi_file_into_df("IBI.csv")
>>> hrv_features = flirt.get_hrv_features(ibis['ibi'], 60, 1, ["td", "fd", "stat"], 0.8)

EDA

flirt.eda.get_eda_features(data: pandas.core.series.Series, window_length: int = 60, window_step_size: int = 1, data_frequency: int = 4, num_cores: int = 0)[source]

Computes statistical EDA features based on the signal decompositon into phasic/tonic components of the skin conductivity.

Parameters
  • data (pd.Series) – input EDA time series

  • window_length (int) – the window size in seconds to consider

  • window_step_size (int) – the time step to shift each window

  • data_frequency (int) – the frequency of the input signal

  • num_cores (int, optional) – number of cores to use for parallel processing, by default use all available

Returns

EDA Features – A DataFrame containing statistical aggregation features of the tonic/phasic EDA components.

Return type

pd.DataFrame

Examples

>>> import flirt.reader.empatica
>>> eda = flirt.reader.empatica.read_eda_file_into_df("EDA.csv")
>>> acc_features = flirt.get_eda_features(eda['eda'], 180, 1)

Reader

flirt.reader.empatica.read_acc_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Warning

function ‘flirt.reader.empatica.read_acc_file_into_df’ is undocumented

flirt.reader.empatica.read_bvp_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Warning

function ‘flirt.reader.empatica.read_bvp_file_into_df’ is undocumented

flirt.reader.empatica.read_eda_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Warning

function ‘flirt.reader.empatica.read_eda_file_into_df’ is undocumented

flirt.reader.empatica.read_hr_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Warning

function ‘flirt.reader.empatica.read_hr_file_into_df’ is undocumented

flirt.reader.empatica.read_ibi_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Reads an Empatica IBI file into a DataFrame.

Parameters

filepath_or_buffer – filepath as string or buffer (file)

Returns

IBIs – a pd.DataFrame with an ‘ibi’ columns, IBIs in milliseconds

Return type

pd.DataFrame

flirt.reader.empatica.read_temp_file_into_df(filepath_or_buffer) pandas.core.frame.DataFrame[source]

Warning

function ‘flirt.reader.empatica.read_temp_file_into_df’ is undocumented

flirt.reader.garmin.read_acc_file_into_df(file: str) pandas.core.frame.DataFrame[source]

Reads a Garmin accelerometer data file (as exported from the Android data logger application) into a pandas DataFrame

Parameters

file (str) – file path

Returns

a pandas DataFrame representing the file contents

Return type

pd.DataFrame

flirt.reader.garmin.read_data_file_into_df(file: str, filter_type: Optional[str] = None) pandas.core.frame.DataFrame[source]

Reads a Garmin data file (as exported from the Android data logger application) into a pandas DataFrame

Parameters
  • file (str) – file path

  • filter_type (str, optional) – filter the values by type and return only matching values (e.g. ‘hrv’, ‘hr’, ‘steps’), by default None

Returns

a pandas DataFrame representing the file contents

Return type

pd.DataFrame

flirt.reader.holter.get_starttime_from_holter(holter_path: str) datetime.datetime[source]

Reads the start time of a holter file

Parameters

holter_path (str) – path to the holter file

Returns

the start datetime of the Holter file

Return type

datetime

flirt.reader.holter.read_holter_ibi_file_into_df(start_time: datetime.datetime, ibi_file: str) pandas.core.frame.DataFrame[source]

Reads a Holter IBI file (from Lifecard CF) into a pandas DataFrame

Parameters
  • start_time (datetime) – starttime of the file (should be retrieved from Holter file)

  • ibi_file (str) – path to the IBI file

Returns

DataFrame containing the IBIs

Return type

pd.DataFrame

Simple

flirt.simple.get_features_for_empatica_archive(zip_file_path: str, window_length: int = 180, window_step_size: int = 1, hrv_features: bool = True, eda_features: bool = True, acc_features: bool = True, debug: bool = False, num_cores: int = 0) pandas.core.frame.DataFrame[source]

This function provides a standard set of HRV, EDA, ACC features for a given Empatica archive (e.g. downloaded from E4 connect)

Parameters
  • zip_file_path (str) – path to the Empatica zip file

  • window_length (int) – the epoch width (window size) in seconds, for which features should be calculated

  • window_step_size (int) – the step size for the sliding window in seconds

  • hrv_features (bool) – whether HRV features should be calculated from the archive

  • eda_features (bool) – whether EDA features should be calculated from the archive

  • acc_features (bool) – whether ACC features should be calculated from the archive

  • debug (bool) – whether debug output should be printed

  • num_cores (int, optional) – number of cores to use for parallel processing, by default use all available

Returns

a pandas DataFrame containing a standard set of features for Empatica

Return type

pd.DataFrame

Examples

>>> import flirt.simple
>>> features = flirt.simple.get_features_for_empatica_archive("1560460372_A12345.zip")

Stats

flirt.stats.get_stat_features(data: pandas.core.frame.DataFrame, window_length: int = 60, window_step_size: int = 1, data_frequency: int = 32, entropies: bool = True, num_cores: int = 0)[source]

Computes several statistical and entropy-based time series features for each column in the provided DataFrame.

Parameters
  • data (pd.DataFrame) – input time series

  • window_length (int) – the epoch width (aka window size) in seconds to consider

  • entropies (bool) – whether to calculate entropy features

  • num_cores (int, optional) – number of cores to use for parallel processing, by default use all available

Returns

TS Features – A DataFrame containing all ststistical and entropy-based features.

Return type

pd.DataFrame

Notes

DataFrame contains the following stat features

  • Statistical Features: entropy (optional), perm_entropy (optional), svd_entropy (optional), mean, min, max, ptp, sum, energy, skewness, kurtosis, peaks, rms, lineintegral, n_above_mean, n_below_mean, iqr, iqr_5_95, pct_5, pct_95

Examples

>>> import flirt.reader.empatica
>>> acc = flirt.reader.empatica.read_acc_file_into_df("ACC.csv")
>>> acc_features = flirt.get_stat_features(acc, 60, 1, entropies=False)