2019-11-06 19:34:47 +01:00
import pandas as pd
2020-06-05 01:32:28 +02:00
from ar . ar_base import base_ar_features
2019-11-06 19:34:47 +01:00
2020-06-05 01:32:28 +02:00
ar_data = pd . read_csv ( snakemake . input [ 0 ] , parse_dates = [ " local_date_time " ] )
2020-04-21 00:05:54 +02:00
ar_deltas = pd . read_csv ( snakemake . input [ 1 ] , parse_dates = [ " local_start_date_time " , " local_end_date_time " , " local_start_date " , " local_end_date " ] )
2020-06-05 01:32:28 +02:00
day_segment = snakemake . params [ " segment " ]
requested_features = snakemake . params [ " features " ]
ar_features = pd . DataFrame ( columns = [ " local_date " ] )
2019-12-04 18:04:20 +01:00
2020-06-05 01:32:28 +02:00
ar_features = ar_features . merge ( base_ar_features ( ar_data , ar_deltas , day_segment , requested_features ) , on = " local_date " , how = " outer " )
2020-01-17 17:39:30 +01:00
2020-06-05 01:32:28 +02:00
assert len ( requested_features ) + 1 == ar_features . shape [ 1 ] , " The number of features in the output dataframe (= " + str ( ar_features . shape [ 1 ] ) + " ) does not match the expected value (= " + str ( len ( requested_features ) ) + " + 1). Verify your activity recognition feature extraction functions "
2019-12-04 18:04:20 +01:00
2020-06-05 01:32:28 +02:00
ar_features . to_csv ( snakemake . output [ 0 ] , index = False )