From 61b725ec5eb1ff1838231c89b624e09cfeb66540 Mon Sep 17 00:00:00 2001 From: Arne Date: Tue, 31 Aug 2021 12:51:25 +0200 Subject: [PATCH] Test & fix doc code (#7) * Add tests for most examples --- .gitignore | 4 +- README.rst | 73 +++++-- docs/installation.rst | 5 +- docs/usage.rst | 165 ++++++++++----- jointly/__init__.py | 2 + test-data/faros-plus-physilog/faros.csv.gz | Bin 0 -> 52153 bytes test-data/faros-plus-physilog/physilog.csv.gz | Bin 0 -> 32574 bytes tests/test_examples.py | 189 ++++++++++++++++++ 8 files changed, 366 insertions(+), 72 deletions(-) create mode 100644 test-data/faros-plus-physilog/faros.csv.gz create mode 100644 test-data/faros-plus-physilog/physilog.csv.gz create mode 100644 tests/test_examples.py diff --git a/.gitignore b/.gitignore index 80f4e05..d24b940 100644 --- a/.gitignore +++ b/.gitignore @@ -216,4 +216,6 @@ $RECYCLE.BIN/ # End of https://www.gitignore.io/api/macos,linux,python,windows,jupyternotebook,visualstudiocode .idea -.vscode \ No newline at end of file +.vscode + +**/tmp_test_file_gen.py \ No newline at end of file diff --git a/README.rst b/README.rst index 89e6a4f..90b36da 100644 --- a/README.rst +++ b/README.rst @@ -42,8 +42,8 @@ Features * remove temporal offsets in the data * remove clock speed offsets by stretching the data -Usage ------ +Installation +------------ Install the package from pypi: @@ -51,6 +51,8 @@ Install the package from pypi: pip install jointly +Usage +----- The data has to be provided in pandas ``DataFrame`` instances with a ``DateTimeIndex`` for each sensor. In the following example, ``Faros`` and ``Empatica`` @@ -61,26 +63,67 @@ in the ``DataFrame`` will be synchronized together with that column. .. code:: python + import pandas as pd + import tempfile + import traceback + import jointly + # load source dataframes with datetime index + faros_df = pd.read_csv( + "./test-data/faros-plus-physilog/faros.csv.gz", + index_col=[0], + parse_dates=True + ) + physilog_df = pd.read_csv( + "./test-data/faros-plus-physilog/physilog.csv.gz", + index_col=[0], + parse_dates=True, + ) + + # the magnitude is a common property that keeps shake information without axis relevance + faros_df["Accel Mag"] = jointly.calculate_magnitude( + faros_df, ["Accel X", "Accel Y", "Accel Z"] + ) + physilog_df["Accel Mag"] = jointly.calculate_magnitude( + physilog_df, ["Accel X", "Accel Y", "Accel Z"] + ) + + # create dictionary of source sensors sources = { - 'Faros': { - 'data': faros_dataframe, - 'ref_column': 'acc_mag', + "Faros": { + "data": faros_df, + "ref_column": "Accel Mag", + }, + "Physilog": { + "data": physilog_df, + "ref_column": "Accel Mag", }, - 'Empatica': { - 'data': empatica_dataframe, - 'ref_column': 'acc_mag', - } } - # prepare the synchronizer - synchronizer = jointly.Synchronizer(sources, reference_source_name='Empatica') - # get a dictionary of: sensor -> synced DataFrame - synced_data = synchronizer.get_synced_data() + # set shake extraction parameters + extractor = jointly.ShakeExtractor() + extractor.start_window_length = pd.Timedelta(seconds=15) + extractor.end_window_length = pd.Timedelta(seconds=10) + extractor.min_length = 3 + extractor.threshold = 0.55 - # save a file for each input sensor - synchronizer.save_pickles("./synced-files/") + # prepare the synchronizer + synchronizer = jointly.Synchronizer( + sources, reference_source_name="Faros", extractor=extractor + ) + + # if the extractor parameters are wrong, print the problem and show the data + try: + # get_synced_data returns a dictionary of sensor names to synced DataFrames + synchronizer.get_synced_data() + except Exception: + traceback.print_exc() + jointly.plot_reference_columns(sources) + + # save a file for each input sensor somewhere + with tempfile.TemporaryDirectory() as tmp_dir: + synchronizer.save_pickles(tmp_dir) Template Credits ---------------- diff --git a/docs/installation.rst b/docs/installation.rst index c847c73..4ce65a2 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -40,12 +40,13 @@ Or download the `tarball`_: $ curl -OL https://github.com/hpi-dhc/jointly/tarball/master -Once you have a copy of the source, you can install it with: +Once you have a copy of the source, you can install it with `poetry`_: .. code-block:: console - $ python setup.py install + $ poetry install .. _Github repo: https://github.com/hpi-dhc/jointly .. _tarball: https://github.com/hpi-dhc/jointly/tarball/master +.. _poetry: https://python-poetry.org/docs/#installation \ No newline at end of file diff --git a/docs/usage.rst b/docs/usage.rst index f9f10a8..b77648b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -3,59 +3,95 @@ Usage ========== -Syncing data ------------- +Preparing Data for Ingestion +---------------------------- The data has to be provided in pandas ``DataFrame`` with a -``DateTimeIndex``. Each signal source, i.e., each sensor, +``DateTimeIndex``. The following example shows how such a dataframe +should look: + +.. code:: python + + import pandas as pd + + faros_df = pd.read_csv( + "./test-data/faros-plus-physilog/faros.csv.gz", + index_col=[0], + parse_dates=True + ) + print(faros_df.head()) + +The output of ``faros_df.head()`` shows that the index is a ``DateTimeIndex``. +The ``NaN`` values due to the different sampling frequencies are ignored during synchronization. + +:: + + Accel X Accel Y Accel Z ECG + 1970-01-01 00:00:01.000 -88.0 771.0 -531.5 -21.0 + 1970-01-01 00:00:01.008 NaN NaN NaN -10.0 + 1970-01-01 00:00:01.010 -86.0 779.0 -539.5 NaN + 1970-01-01 00:00:01.016 NaN NaN NaN -2.0 + 1970-01-01 00:00:01.020 -82.5 781.0 -543.0 NaN + +Each signal source, i.e., each sensor, is given in a dictionary together with the name of the column containing the events that should be synchronized, e.g., the shake common to all sensor signals in the acceleration magnitude. +The name of that column and its frequency can be different for +each sensor. + +Finally, given the source dictionary, the synchronizer instance +can be created. .. code:: python import jointly sources = { - 'Faros': { - 'data': faros.data, - 'ref_column': 'acc_mag', + "Faros": { + "data": faros_df, + "ref_column": "Accel Mag", }, - 'Empatica': { - 'data': empatica.data, - 'ref_column': 'acc_mag', + "Physilog": { + "data": physilog_df, + "ref_column": "Accel Mag", }, - 'Everion': { - 'data': everion.data, - 'ref_column': 'acc_mag', - } + # Any number of sensors can be added + # 'Everion': { + # 'data': everion_dataframe, + # 'ref_column': 'ACCELERATION_MAGNITUDE', + # } } - ref_source_name = 'Empatica' - extractor = jointly.ShakeExtractor() - synchronizer = jointly.Synchronizer(sources, ref_source_name, extractor) - synced_data = synchronizer.get_synced_data() + jointly.Synchronizer(sources, reference_source_name="Faros") Tuning Shake Detection ---------------------- -To optimize results of the shake detection, the following -parameters typically need to be adjusted: +If the shake detection doesn't find all shakes on the first try, +the following parameters will help: .. code:: python + import pandas as pd + import jointly + extractor = jointly.ShakeExtractor() - # this should contain only the start shakes in all data streams - extractor.start_window_length = pd.Timedelta(seconds=N) + # The start window should be long enough to contain + # only the start shake in every data stream + extractor.start_window_length = pd.Timedelta(seconds=15) - # this should contain only the end shakes in all data streams + # The end window (measured from the end of data) + # should be exactly long enough to contain + # only the end shake in every data stream extractor.end_window_length = pd.Timedelta(seconds=3) - # the number of shakes that were done, e.g., 3 + # Set to at most the number of shakes you did extractor.min_length = 3 - # the minimum height of the shakes, in a normalized range + # Shakes are only accepted if they are higher than the + # threshold (with all data normalized). extractor.threshold = 0.5 Debugging @@ -65,14 +101,23 @@ To find issues with the shake detection, it often helps to plot the data. ``plot_reference_columns`` is available to plot the reference columns from a source table. +Problems during synchronization throw exceptions, such as a ``BadWindowException``: + + jointly.synchronization_errors.BadWindowException: + + Start (0 days 00:10:00) or end (0 days 00:10:00) window lengths greater than length of signal Faros (0 days 00:00:36.992000). Make it so each window only covers start or end, not both. + +Thus, the following code catches the problem and prints/shows helpful information: + .. code:: python + # if the extractor parameters are wrong, print the problem and show the data try: - jointly.Synchronizer(sources, reference_signal) - sync_result = synchronizer.save_pickles(tmp_dir) + # get_synced_data returns a dictionary of sensor names to synced DataFrames + synchronizer.get_synced_data() except Exception: traceback.print_exc() - plot_reference_columns(sources) + jointly.plot_reference_columns(sources) Saving data @@ -83,6 +128,10 @@ to create an export file for each data category, while ``save_pickles`` dumps the synchronized dataframes for each individual sensor into a ``.pickle`` each. +To run the following examples, you should already have a ``Synchronizer`` instance +called ``synchronizer`` with an extractor configured such that no exceptions are thrown. +Check the readme file for an example. + ``save_pickles()`` ~~~~~~~~~~~~~~~~~~~~~~~ @@ -102,43 +151,49 @@ key at the root level defines the name of a corresponding file. In each entry, select the source columns by creating a key (for example, add ``Faros`` to select data from the ``Faros`` source) that points to the columns to be extracted from that source, e.g., -``['Accelerometer_X', 'Accelerometer_Y', 'Accelerometer_Z']``. +``['Accel X', 'Accel Y', 'Accel Z']``. .. code:: python + # define output format for two files, one containing all acceleration + # data, the other the ECG data tables = { 'ACC': { - 'Faros': ['Accelerometer_X', 'Accelerometer_Y', 'Accelerometer_Z'], - 'Empatica': ['acc_x', 'acc_y', 'acc_z'], - 'Everion': ['accx_data', 'accy_data', 'accz_data'], - }, - 'PPG': { - 'Empatica': ['bvp'], - 'Everion': ['blood_pulse_wave', 'led2_data', 'led3_data'], - }, - 'EDA': { - 'Empatica': ['eda'], - 'Everion': ['gsr_electrode'], + 'Faros': ['Accel X', 'Accel Y', 'Accel Z'], + 'Physilog': ['Accel X', 'Accel Y', 'Accel Z'], }, 'ECG': { 'Faros': ['ECG'], }, - 'TEMP': { - 'Empatica': ['temp'], - 'Everion': ['temperature_object'], - }, - 'HR': { - 'Empatica': ['hr'], - 'Everion': ['heart_rate', 'heart_rate_quality'], - }, - 'IBI': { - 'Faros': ['HRV'], - 'Empatica': ['ibi'], - 'Everion': ['inter_pulse_interval', 'inter_pulse_interval_deviation'], - } } - synchronizer.save_data(sync_dir_path, tables=tables, save_total_table=False) + # if the extractor parameters are wrong, print the problem and show the data + try: + # get_synced_data returns a dictionary of sensor names to synced DataFrames + with tempfile.TemporaryDirectory() as tmp_dir: + synchronizer.save_data(tmp_dir, tables=tables, save_total_table=False) + print("test") + except Exception: + traceback.print_exc() + jointly.plot_reference_columns(sources) + + +In the resulting CSV file, each combination gets a column like this: +``Faros_Accel X``, or ``Physilog_Accel Z``, etc: + +:: + + Faros_Accel X Faros_Accel Y Faros_Accel Z Physilog_Accel X Physilog_Accel Y Physilog_Accel Z + 1970-01-01 00:00:01.000000000 -88 771 -531.5 + 1970-01-01 00:00:01.010000000 -86 779 -539.5 + 1970-01-01 00:00:01.020000000 -82.5 781 -543 + 1970-01-01 00:00:01.020907696 -0.80457 0.02234 0.61023 + 1970-01-01 00:00:01.030000000 -98 787 -521.5 + 1970-01-01 00:00:01.040000000 -80.5 777 -557 + 1970-01-01 00:00:01.050000000 -94 761.5 -539.5 + 1970-01-01 00:00:01.052150462 -0.81104 0.01721 0.59253 + + Logging ------- @@ -147,8 +202,10 @@ To activate logging simply add the following lines to your code: .. code:: python + import logging from jointly.log import logger - logger.setLevel(10) + + logger.setLevel(logging.DEBUG) This will give you insight into the shake detection, calculation of the timeshifts and stretching factor, and output plots of the segements. diff --git a/jointly/__init__.py b/jointly/__init__.py index 3e00ebb..f0730c4 100644 --- a/jointly/__init__.py +++ b/jointly/__init__.py @@ -1,3 +1,5 @@ from .abstract_extractor import * from .shake_extractor import * from .synchronizer import * +from .helpers import * +from .helpers_plotting import * diff --git a/test-data/faros-plus-physilog/faros.csv.gz b/test-data/faros-plus-physilog/faros.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..120a20401c126148cce00cd1f1c0b900c9b6720d GIT binary patch literal 52153 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ⅆSn+)YOAI$?9mKh5H-@?b2lT#`*TCTxOe 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 W>;>-s2LJ&7{{sMxLWaSnY6Jl7HUJX< literal 0 HcmV?d00001 diff --git a/test-data/faros-plus-physilog/physilog.csv.gz b/test-data/faros-plus-physilog/physilog.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..8e97d6ddf39604c24affe378cfd7a344092a6d79 GIT binary patch literal 32574 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