Example #1
0
            "x": data.x.to_numpy(),
            "y": data.y.to_numpy(),
            "z": data.z.to_numpy()
        },
        index=pd.to_datetime(data.timestamp, format="%H:%M:%S.%f"),
    )


# definitions
df = read_csv()
soj = Sojourning(df)
input_params = read_config()
params = Params(input_params)

# calc initial pepremters
params.convert_filters_sec2smp(soj.df["diff_ns"])
params.set_var_th(soj.df["norm"])

# go through each section and decide if it is_stay
sections_times = soj.find_sections_idx(params)
for sec in range(len(sections_times) - 1):
    df_slice = soj.get_section_slice(sections_times[sec],
                                     sections_times[sec + 1])
    is_stay = Sojourning.calc_stay_raw(df_slice, params.win_size_smp,
                                       params.var_th)
    soj.set_is_stay(is_stay)

# filter abrupt movements
soj.filter_abrupt_movements(params.abrupt_filt_size, params.abrupt_pctg_th)

# force sectioning