{
  "cells": [
    {
      "cell_type": "raw",
      "metadata": {
        "vscode": {
          "languageId": "raw"
        }
      },
      "source": [
        "# HAR-UP Dataset - Comprehensive Demo\n",
        "\n",
        "This notebook demonstrates the HAR-UP pipeline using `gaitsetpy`:\n",
        "- Load dataset (auto-download structure if missing)\n",
        "- EDA: basic stats, missing data, activity distribution\n",
        "- Sliding windows and HAR-UP feature extraction\n",
        "- Try multiple classification models\n",
        "- Visualize sensor time-series\n",
        "\n",
        "Note: Initial run may take time to structure/download the dataset.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Data dir: data\\harup\n"
          ]
        }
      ],
      "source": [
        "# Setup\n",
        "import os\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "import gaitsetpy as gsp\n",
        "from gaitsetpy.dataset import HARUPLoader\n",
        "from gaitsetpy.features import HARUPFeatureExtractor\n",
        "from gaitsetpy.eda.visualization import plot_sensor_timeseries, plot_all_sensors, plot_activity_distribution\n",
        "from gaitsetpy.eda.analyzers import harup_basic_stats, harup_missing_data_report, harup_activity_stats\n",
        "from gaitsetpy.classification.models import get_classification_model\n",
        "\n",
        "DATA_DIR = os.path.join('data', 'harup')\n",
        "print(f\"Data dir: {DATA_DIR}\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Directory data\\harup does not exist. Attempting to download HAR-UP dataset...\n",
            "\n",
            "================================================================================\n",
            "HAR-UP DATASET DOWNLOAD\n",
            "================================================================================\n",
            "The HAR-UP dataset can be downloaded automatically or manually.\n",
            "\n",
            "Options:\n",
            "1. Automatic download (recommended)\n",
            "2. Manual download\n",
            "3. Skip download (if you already have the dataset elsewhere)\n",
            "\n",
            "Downloading HAR-UP dataset ZIP to: data\\harup\\HAR-UP_Dataset.zip\n",
            "This may take some time depending on your internet connection...\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Download Progress: 100%|██████████| 441k/441k [00:00<00:00, 1.18MiB/s]\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Download completed successfully! File saved to: data\\harup\\HAR-UP_Dataset.zip\n",
            "\n",
            "Extracting the downloaded ZIP file...\n",
            "Extraction failed: DataSet directory not found after extraction.\n",
            "Extracting HAR-UP dataset zip to: data\\harup\n",
            "Extraction complete.\n",
            "HAR-UP dataset not found after download attempt.\n",
            "Please ensure the dataset is organized in the following structure:\n",
            "DataSet/Subject{i}/Activity{j}/Trial{k}/Subject{i}Activity{j}Trial{k}.csv\n",
            "[HARUP] Loaded columns for S01_A01_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A01_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A01_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A02_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A02_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A02_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A04_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A04_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A04_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A05_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A05_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A05_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A06_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A06_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A06_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A07_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A07_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A07_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A08_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A08_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A08_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A09_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A09_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A09_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A10_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A10_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A10_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A11_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A11_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S01_A11_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A01_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A01_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A01_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A02_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A02_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A02_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A03_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A03_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A03_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A04_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A04_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A04_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A05_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A05_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A05_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A06_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A06_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A06_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A07_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A07_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A07_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A08_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A08_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A08_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A09_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A09_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A09_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A10_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A10_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A10_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A11_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A11_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S02_A11_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A01_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A01_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A01_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A02_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A02_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A02_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A03_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A03_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A03_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A04_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A04_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A04_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A05_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A05_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A05_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A06_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A06_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A06_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A07_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A07_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A07_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A08_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A08_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A08_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A09_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A09_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A09_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A10_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A10_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A10_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A11_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A11_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S03_A11_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A01_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A01_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A01_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A02_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A02_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A02_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A03_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A03_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A03_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A04_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A04_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A04_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A05_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A05_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A05_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A06_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A06_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A06_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A07_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A07_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A07_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A08_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A08_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A08_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A09_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A09_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A09_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A10_T01.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A10_T02.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "[HARUP] Loaded columns for S04_A10_T03.csv: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X', 'NECK_ACC_Y', 'NECK_ACC_Z', 'NECK_ANG_X', 'NECK_ANG_Y', 'NECK_ANG_Z', 'NECK_LUMINOSITY', 'PCKT_ACC_X', 'PCKT_ACC_Y', 'PCKT_ACC_Z', 'PCKT_ANG_X', 'PCKT_ANG_Y', 'PCKT_ANG_Z', 'PCKT_LUMINOSITY', 'WRST_ACC_X', 'WRST_ACC_Y', 'WRST_ACC_Z', 'WRST_ANG_X', 'WRST_ANG_Y', 'WRST_ANG_Z', 'WRST_LUMINOSITY', 'IR_1', 'IR_2', 'IR_3', 'IR_4']\n",
            "Loaded 4 recordings. First: Subject_01_A01_T01\n",
            "Columns: ['TIME', 'HELMET_RAW', 'BELT_ACC_X', 'BELT_ACC_Y', 'BELT_ACC_Z', 'BELT_ANG_X', 'BELT_ANG_Y', 'BELT_ANG_Z', 'BELT_LUMINOSITY', 'NECK_ACC_X']\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>TIME</th>\n",
              "      <th>HELMET_RAW</th>\n",
              "      <th>BELT_ACC_X</th>\n",
              "      <th>BELT_ACC_Y</th>\n",
              "      <th>BELT_ACC_Z</th>\n",
              "      <th>BELT_ANG_X</th>\n",
              "      <th>BELT_ANG_Y</th>\n",
              "      <th>BELT_ANG_Z</th>\n",
              "      <th>BELT_LUMINOSITY</th>\n",
              "      <th>NECK_ACC_X</th>\n",
              "      <th>...</th>\n",
              "      <th>WRST_ANG_Z</th>\n",
              "      <th>WRST_LUMINOSITY</th>\n",
              "      <th>IR_1</th>\n",
              "      <th>IR_2</th>\n",
              "      <th>IR_3</th>\n",
              "      <th>IR_4</th>\n",
              "      <th>subject_id</th>\n",
              "      <th>activity_id</th>\n",
              "      <th>trial_id</th>\n",
              "      <th>activity_label</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>24-May-2018 11:36:37</td>\n",
              "      <td>51.9</td>\n",
              "      <td>0.953571</td>\n",
              "      <td>-0.015700</td>\n",
              "      <td>0.166557</td>\n",
              "      <td>-0.778000</td>\n",
              "      <td>-0.157000</td>\n",
              "      <td>0.0494</td>\n",
              "      <td>477.936200</td>\n",
              "      <td>0.966967</td>\n",
              "      <td>...</td>\n",
              "      <td>0.172500</td>\n",
              "      <td>336.511000</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Walking</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>24-May-2018 11:36:37</td>\n",
              "      <td>51.9</td>\n",
              "      <td>0.953571</td>\n",
              "      <td>-0.015700</td>\n",
              "      <td>0.166557</td>\n",
              "      <td>-0.778000</td>\n",
              "      <td>-0.157000</td>\n",
              "      <td>0.0494</td>\n",
              "      <td>477.936200</td>\n",
              "      <td>0.966967</td>\n",
              "      <td>...</td>\n",
              "      <td>0.172500</td>\n",
              "      <td>336.511000</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Walking</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>24-May-2018 11:36:37</td>\n",
              "      <td>51.9</td>\n",
              "      <td>0.953571</td>\n",
              "      <td>-0.015700</td>\n",
              "      <td>0.166557</td>\n",
              "      <td>-0.778000</td>\n",
              "      <td>-0.157000</td>\n",
              "      <td>0.0494</td>\n",
              "      <td>477.936200</td>\n",
              "      <td>0.966967</td>\n",
              "      <td>...</td>\n",
              "      <td>0.172500</td>\n",
              "      <td>336.511000</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Walking</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>24-May-2018 11:36:37</td>\n",
              "      <td>51.9</td>\n",
              "      <td>0.953571</td>\n",
              "      <td>-0.015700</td>\n",
              "      <td>0.166557</td>\n",
              "      <td>-0.778000</td>\n",
              "      <td>-0.157000</td>\n",
              "      <td>0.0494</td>\n",
              "      <td>477.936200</td>\n",
              "      <td>0.966967</td>\n",
              "      <td>...</td>\n",
              "      <td>0.172500</td>\n",
              "      <td>336.511000</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Walking</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>24-May-2018 11:36:38</td>\n",
              "      <td>52.0</td>\n",
              "      <td>0.947333</td>\n",
              "      <td>-0.015067</td>\n",
              "      <td>0.190633</td>\n",
              "      <td>1.553111</td>\n",
              "      <td>1.214667</td>\n",
              "      <td>0.5300</td>\n",
              "      <td>494.419667</td>\n",
              "      <td>0.970200</td>\n",
              "      <td>...</td>\n",
              "      <td>-0.416833</td>\n",
              "      <td>347.984333</td>\n",
              "      <td>1</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1.0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>Walking</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>5 rows × 38 columns</p>\n",
              "</div>"
            ],
            "text/plain": [
              "                   TIME  HELMET_RAW  BELT_ACC_X  BELT_ACC_Y  BELT_ACC_Z  \\\n",
              "0  24-May-2018 11:36:37        51.9    0.953571   -0.015700    0.166557   \n",
              "1  24-May-2018 11:36:37        51.9    0.953571   -0.015700    0.166557   \n",
              "2  24-May-2018 11:36:37        51.9    0.953571   -0.015700    0.166557   \n",
              "3  24-May-2018 11:36:37        51.9    0.953571   -0.015700    0.166557   \n",
              "4  24-May-2018 11:36:38        52.0    0.947333   -0.015067    0.190633   \n",
              "\n",
              "   BELT_ANG_X  BELT_ANG_Y  BELT_ANG_Z  BELT_LUMINOSITY  NECK_ACC_X  ...  \\\n",
              "0   -0.778000   -0.157000      0.0494       477.936200    0.966967  ...   \n",
              "1   -0.778000   -0.157000      0.0494       477.936200    0.966967  ...   \n",
              "2   -0.778000   -0.157000      0.0494       477.936200    0.966967  ...   \n",
              "3   -0.778000   -0.157000      0.0494       477.936200    0.966967  ...   \n",
              "4    1.553111    1.214667      0.5300       494.419667    0.970200  ...   \n",
              "\n",
              "   WRST_ANG_Z  WRST_LUMINOSITY  IR_1  IR_2  IR_3  IR_4  subject_id  \\\n",
              "0    0.172500       336.511000     1   1.0   1.0   1.0           1   \n",
              "1    0.172500       336.511000     1   1.0   1.0   1.0           1   \n",
              "2    0.172500       336.511000     1   1.0   1.0   1.0           1   \n",
              "3    0.172500       336.511000     1   1.0   1.0   1.0           1   \n",
              "4   -0.416833       347.984333     1   1.0   1.0   1.0           1   \n",
              "\n",
              "   activity_id  trial_id  activity_label  \n",
              "0            1         1         Walking  \n",
              "1            1         1         Walking  \n",
              "2            1         1         Walking  \n",
              "3            1         1         Walking  \n",
              "4            1         1         Walking  \n",
              "\n",
              "[5 rows x 38 columns]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "# 1) Load HAR-UP\n",
        "loader = HARUPLoader()\n",
        "data, names = loader.load_data(DATA_DIR)\n",
        "if not data:\n",
        "    print(\"No data loaded. Please download the HAR-UP dataset. See https://sites.google.com/up.edu.mx/har-up/\")\n",
        "else:\n",
        "    print(f\"Loaded {len(data)} recordings. First: {names[0]}\")\n",
        "    print(\"Columns:\", list(data[0].columns)[:10])\n",
        "    display(data[0].head())\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Basic stats:\n",
            "                  count        mean         std          min         25%  \\\n",
            "HELMET_RAW       3240.0   45.457652  663.894733 -2048.000000  -21.000000   \n",
            "BELT_ACC_X       3240.0    0.710545    0.360265    -0.297583    0.616758   \n",
            "BELT_ACC_Y       3240.0    0.031494    0.076581    -0.334067   -0.015850   \n",
            "BELT_ACC_Z       3240.0    0.114736    0.523624    -1.012500   -0.237557   \n",
            "BELT_ANG_X       3240.0    0.130958   29.844158  -127.985714   -4.458429   \n",
            "BELT_ANG_Y       3240.0   -0.785168   22.366477  -222.296667   -2.635571   \n",
            "BELT_ANG_Z       3240.0    0.584176    9.566540   -53.260000   -0.197571   \n",
            "BELT_LUMINOSITY  3240.0  395.693735  274.002708     0.000000  251.948000   \n",
            "NECK_ACC_X       3240.0   -0.775235    0.364601    -1.091900   -0.918120   \n",
            "NECK_ACC_Y       3240.0    0.126316    0.268196    -1.292920    0.007860   \n",
            "NECK_ACC_Z       3240.0   -0.477298    0.184230    -0.963775   -0.549860   \n",
            "NECK_ANG_X       3240.0   -0.222024   18.604547  -177.225000   -1.112400   \n",
            "NECK_ANG_Y       3240.0    0.633811   24.710499  -326.395000   -1.486944   \n",
            "NECK_ANG_Z       3240.0    0.018130   15.058402  -144.611111   -0.747889   \n",
            "NECK_LUMINOSITY  3240.0   85.018418   86.611733     0.000000   53.439000   \n",
            "PCKT_ACC_X       3240.0    0.549902    0.467938    -0.962950   -0.090540   \n",
            "PCKT_ACC_Y       3240.0   -0.260510    0.296919    -2.036300   -0.416500   \n",
            "PCKT_ACC_Z       3240.0    0.402137    0.454832    -0.937000    0.092000   \n",
            "PCKT_ANG_X       3240.0    0.150759   33.281715  -128.720000   -3.822500   \n",
            "PCKT_ANG_Y       3240.0   -0.853207   18.081002   -94.120000   -3.856667   \n",
            "PCKT_ANG_Z       3240.0   -0.039688   10.035600   -59.466667   -1.157500   \n",
            "PCKT_LUMINOSITY  3240.0    3.571378    1.596474     0.000000    2.607000   \n",
            "WRST_ACC_X       3240.0   -0.248088    0.665292    -1.341550   -0.898988   \n",
            "WRST_ACC_Y       3240.0   -0.377315    0.261005    -1.093067   -0.509900   \n",
            "WRST_ACC_Z       3240.0    0.189138    0.461608    -0.903780   -0.123267   \n",
            "WRST_ANG_X       3240.0   11.020123   76.153485  -507.500000   -7.479667   \n",
            "WRST_ANG_Y       3240.0  -57.539185  317.660394 -2910.919500   -4.561000   \n",
            "WRST_ANG_Z       3240.0  -27.491887  171.384685 -1752.767467   -5.792833   \n",
            "WRST_LUMINOSITY  3240.0  501.755610  246.622353     0.000000  368.787000   \n",
            "IR_1             3240.0    0.811111    0.391481     0.000000    1.000000   \n",
            "IR_2             3240.0    0.916667    0.274748     0.000000    1.000000   \n",
            "IR_3             3240.0    0.987037    0.111759     0.000000    1.000000   \n",
            "IR_4             3240.0    0.772222    0.417619     0.000000    1.000000   \n",
            "subject_id       3240.0    1.000000    0.000000     1.000000    1.000000   \n",
            "activity_id      3240.0    7.518519    2.727112     1.000000    6.000000   \n",
            "trial_id         3240.0    2.000000    0.816623     1.000000    1.000000   \n",
            "\n",
            "                        50%         75%          max  \n",
            "HELMET_RAW         0.000000  136.363636  2047.000000  \n",
            "BELT_ACC_X         0.903160    0.942714     1.267980  \n",
            "BELT_ACC_Y         0.047186    0.074960     0.225800  \n",
            "BELT_ACC_Z        -0.111667    0.281012     1.048567  \n",
            "BELT_ANG_X         0.569333    2.886756   146.345714  \n",
            "BELT_ANG_Y        -0.110286    1.520571   263.213333  \n",
            "BELT_ANG_Z         0.359222    1.755750    52.556000  \n",
            "BELT_LUMINOSITY  319.385000  449.203000   931.090333  \n",
            "NECK_ACC_X        -0.880087   -0.808025     1.510083  \n",
            "NECK_ACC_Y         0.074550    0.292081     2.290433  \n",
            "NECK_ACC_Z        -0.489780   -0.352680     0.315033  \n",
            "NECK_ANG_X         0.397275    1.928500   164.280000  \n",
            "NECK_ANG_Y         0.214000    1.797444   281.500000  \n",
            "NECK_ANG_Z         0.343125    1.443000    94.820000  \n",
            "NECK_LUMINOSITY   58.279000   69.724000   614.344000  \n",
            "PCKT_ACC_X         0.820529    0.929346     1.282840  \n",
            "PCKT_ACC_Y        -0.220900   -0.045175     1.221940  \n",
            "PCKT_ACC_Z         0.233125    0.901280     1.524275  \n",
            "PCKT_ANG_X        -0.453000    4.464286   126.453333  \n",
            "PCKT_ANG_Y        -0.940833    1.743600    66.053333  \n",
            "PCKT_ANG_Z        -0.210000    0.918429    45.218000  \n",
            "PCKT_LUMINOSITY    3.656000    3.941500     8.609000  \n",
            "WRST_ACC_X        -0.425500    0.133600     1.018400  \n",
            "WRST_ACC_Y        -0.442400   -0.235715     0.579500  \n",
            "WRST_ACC_Z        -0.005633    0.644329     1.521375  \n",
            "WRST_ANG_X         0.705857   18.157286   548.582050  \n",
            "WRST_ANG_Y         0.439000    4.123311   167.900714  \n",
            "WRST_ANG_Z        -0.198250    3.649714   215.495875  \n",
            "WRST_LUMINOSITY  524.929000  753.761333  1156.530000  \n",
            "IR_1               1.000000    1.000000     1.000000  \n",
            "IR_2               1.000000    1.000000     1.000000  \n",
            "IR_3               1.000000    1.000000     1.000000  \n",
            "IR_4               1.000000    1.000000     1.000000  \n",
            "subject_id         1.000000    1.000000     1.000000  \n",
            "activity_id        7.000000   10.000000    11.000000  \n",
            "trial_id           2.000000    3.000000     3.000000  \n",
            "\n",
            "Missing data report:\n",
            "TIME               0\n",
            "HELMET_RAW         0\n",
            "BELT_ACC_X         0\n",
            "BELT_ACC_Y         0\n",
            "BELT_ACC_Z         0\n",
            "BELT_ANG_X         0\n",
            "BELT_ANG_Y         0\n",
            "BELT_ANG_Z         0\n",
            "BELT_LUMINOSITY    0\n",
            "NECK_ACC_X         0\n",
            "NECK_ACC_Y         0\n",
            "NECK_ACC_Z         0\n",
            "NECK_ANG_X         0\n",
            "NECK_ANG_Y         0\n",
            "NECK_ANG_Z         0\n",
            "NECK_LUMINOSITY    0\n",
            "PCKT_ACC_X         0\n",
            "PCKT_ACC_Y         0\n",
            "PCKT_ACC_Z         0\n",
            "PCKT_ANG_X         0\n",
            "PCKT_ANG_Y         0\n",
            "PCKT_ANG_Z         0\n",
            "PCKT_LUMINOSITY    0\n",
            "WRST_ACC_X         0\n",
            "WRST_ACC_Y         0\n",
            "WRST_ACC_Z         0\n",
            "WRST_ANG_X         0\n",
            "WRST_ANG_Y         0\n",
            "WRST_ANG_Z         0\n",
            "WRST_LUMINOSITY    0\n",
            "IR_1               0\n",
            "IR_2               0\n",
            "IR_3               0\n",
            "IR_4               0\n",
            "subject_id         0\n",
            "activity_id        0\n",
            "trial_id           0\n",
            "activity_label     0\n",
            "dtype: int64\n",
            "\n",
            "Activity stats:\n",
            "activity_label\n",
            "Falling backwards                 120\n",
            "Falling forward using hands       720\n",
            "Falling forward using knees       120\n",
            "Falling sideward                  360\n",
            "Falling sitting in empty chair    720\n",
            "Lying                             720\n",
            "Sitting                           120\n",
            "Standing                          120\n",
            "Walking                           120\n",
            "Walking upstairs                  120\n",
            "Name: count, dtype: int64\n",
            "\n",
            "Plotting activity distribution...\n"
          ]
        },
        {
          "data": {
            "image/png": "[encoded data, 34916 characters]",
            "text/plain": [
              "<Figure size 1000x400 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Plotting all sensors...\n"
          ]
        },
        {
          "data": {
            "image/png": "[encoded data, 760896 characters]",
            "text/plain": [
              "<Figure size 2000x2700 with 33 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Plotting BELT_ACC_X...\n"
          ]
        },
        {
          "data": {
            "image/png": "[encoded data, 71844 characters]",
            "text/plain": [
              "<Figure size 1600x400 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "# 2) EDA & Visualization (on first recording)\n",
        "if data:\n",
        "    print(\"Basic stats:\")\n",
        "    harup_basic_stats(data[0])\n",
        "    print(\"\\nMissing data report:\")\n",
        "    harup_missing_data_report(data[0])\n",
        "    print(\"\\nActivity stats:\")\n",
        "    harup_activity_stats(data[0])\n",
        "    print(\"\\nPlotting activity distribution...\")\n",
        "    plot_activity_distribution(data[0])\n",
        "    print(\"\\nPlotting all sensors...\")\n",
        "    plot_all_sensors(data[0])\n",
        "    print(\"\\nPlotting BELT_ACC_X...\")\n",
        "    plot_sensor_timeseries(data[0], 'BELT_ACC_X')\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Created 4 window sets\n"
          ]
        }
      ],
      "source": [
        "# 3) Sliding windows\n",
        "window_size = 100\n",
        "step_size = 50\n",
        "if data:\n",
        "    windows = loader.create_sliding_windows(data, names, window_size, step_size)\n",
        "    print(f\"Created {len(windows)} window sets\")\n",
        "else:\n",
        "    windows = []\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Extracting features from 33 sensor windows\n",
            "Processing BELT_ACC_X with 63 windows\n",
            "Processing BELT_ACC_Y with 63 windows\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Processing BELT_ACC_Z with 63 windows\n",
            "Processing BELT_ANG_X with 63 windows\n",
            "Processing BELT_ANG_Y with 63 windows\n",
            "Processing BELT_ANG_Z with 63 windows\n",
            "Processing BELT_LUMINOSITY with 63 windows\n",
            "Processing NECK_ACC_X with 63 windows\n",
            "Processing NECK_ACC_Y with 63 windows\n",
            "Processing NECK_ACC_Z with 63 windows\n",
            "Processing NECK_ANG_X with 63 windows\n",
            "Processing NECK_ANG_Y with 63 windows\n",
            "Processing NECK_ANG_Z with 63 windows\n",
            "Processing NECK_LUMINOSITY with 63 windows\n",
            "Processing PCKT_ACC_X with 63 windows\n",
            "Processing PCKT_ACC_Y with 63 windows\n",
            "Processing PCKT_ACC_Z with 63 windows\n",
            "Processing PCKT_ANG_X with 63 windows\n",
            "Processing PCKT_ANG_Y with 63 windows\n",
            "Processing PCKT_ANG_Z with 63 windows\n",
            "Processing PCKT_LUMINOSITY with 63 windows\n",
            "Processing WRST_ACC_X with 63 windows\n",
            "Processing WRST_ACC_Y with 63 windows\n",
            "Processing WRST_ACC_Z with 63 windows\n",
            "Processing WRST_ANG_X with 63 windows\n",
            "Processing WRST_ANG_Y with 63 windows\n",
            "Processing WRST_ANG_Z with 63 windows\n",
            "Processing WRST_LUMINOSITY with 63 windows\n",
            "Processing HELMET_RAW with 63 windows\n",
            "Processing IR_1 with 63 windows\n",
            "Processing IR_2 with 63 windows\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Processing IR_3 with 63 windows\n",
            "Processing IR_4 with 63 windows\n",
            "Extracting features from 33 sensor windows\n",
            "Processing BELT_ACC_X with 66 windows\n",
            "Processing BELT_ACC_Y with 66 windows\n",
            "Processing BELT_ACC_Z with 66 windows\n",
            "Processing BELT_ANG_X with 66 windows\n",
            "Processing BELT_ANG_Y with 66 windows\n",
            "Processing BELT_ANG_Z with 66 windows\n",
            "Processing BELT_LUMINOSITY with 66 windows\n",
            "Processing NECK_ACC_X with 66 windows\n",
            "Processing NECK_ACC_Y with 66 windows\n",
            "Processing NECK_ACC_Z with 66 windows\n",
            "Processing NECK_ANG_X with 66 windows\n",
            "Processing NECK_ANG_Y with 66 windows\n",
            "Processing NECK_ANG_Z with 66 windows\n",
            "Processing NECK_LUMINOSITY with 66 windows\n",
            "Processing PCKT_ACC_X with 66 windows\n",
            "Processing PCKT_ACC_Y with 66 windows\n",
            "Processing PCKT_ACC_Z with 66 windows\n",
            "Processing PCKT_ANG_X with 66 windows\n",
            "Processing PCKT_ANG_Y with 66 windows\n",
            "Processing PCKT_ANG_Z with 66 windows\n",
            "Processing PCKT_LUMINOSITY with 66 windows\n",
            "Processing WRST_ACC_X with 66 windows\n",
            "Processing WRST_ACC_Y with 66 windows\n",
            "Processing WRST_ACC_Z with 66 windows\n",
            "Processing WRST_ANG_X with 66 windows\n",
            "Processing WRST_ANG_Y with 66 windows\n",
            "Processing WRST_ANG_Z with 66 windows\n",
            "Processing WRST_LUMINOSITY with 66 windows\n",
            "Processing HELMET_RAW with 66 windows\n",
            "Processing IR_1 with 66 windows\n",
            "Processing IR_2 with 66 windows\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Processing IR_3 with 66 windows\n",
            "Processing IR_4 with 66 windows\n",
            "Extracting features from 33 sensor windows\n",
            "Processing BELT_ACC_X with 66 windows\n",
            "Processing BELT_ACC_Y with 66 windows\n",
            "Processing BELT_ACC_Z with 66 windows\n",
            "Processing BELT_ANG_X with 66 windows\n",
            "Processing BELT_ANG_Y with 66 windows\n",
            "Processing BELT_ANG_Z with 66 windows\n",
            "Processing BELT_LUMINOSITY with 66 windows\n",
            "Processing NECK_ACC_X with 66 windows\n",
            "Processing NECK_ACC_Y with 66 windows\n",
            "Processing NECK_ACC_Z with 66 windows\n",
            "Processing NECK_ANG_X with 66 windows\n",
            "Processing NECK_ANG_Y with 66 windows\n",
            "Processing NECK_ANG_Z with 66 windows\n",
            "Processing NECK_LUMINOSITY with 66 windows\n",
            "Processing PCKT_ACC_X with 66 windows\n",
            "Processing PCKT_ACC_Y with 66 windows\n",
            "Processing PCKT_ACC_Z with 66 windows\n",
            "Processing PCKT_ANG_X with 66 windows\n",
            "Processing PCKT_ANG_Y with 66 windows\n",
            "Processing PCKT_ANG_Z with 66 windows\n",
            "Processing PCKT_LUMINOSITY with 66 windows\n",
            "Processing WRST_ACC_X with 66 windows\n",
            "Processing WRST_ACC_Y with 66 windows\n",
            "Processing WRST_ACC_Z with 66 windows\n",
            "Processing WRST_ANG_X with 66 windows\n",
            "Processing WRST_ANG_Y with 66 windows\n",
            "Processing WRST_ANG_Z with 66 windows\n",
            "Processing WRST_LUMINOSITY with 66 windows\n",
            "Processing HELMET_RAW with 66 windows\n",
            "Processing IR_1 with 66 windows\n",
            "Processing IR_2 with 66 windows\n",
            "Processing IR_3 with 66 windows\n",
            "Processing IR_4 with 66 windows\n",
            "Extracting features from 33 sensor windows\n",
            "Processing BELT_ACC_X with 51 windows\n",
            "Processing BELT_ACC_Y with 51 windows\n",
            "Processing BELT_ACC_Z with 51 windows\n",
            "Processing BELT_ANG_X with 51 windows\n",
            "Processing BELT_ANG_Y with 51 windows\n",
            "Processing BELT_ANG_Z with 51 windows\n",
            "Processing BELT_LUMINOSITY with 51 windows\n",
            "Processing NECK_ACC_X with 51 windows\n",
            "Processing NECK_ACC_Y with 51 windows\n",
            "Processing NECK_ACC_Z with 51 windows\n",
            "Processing NECK_ANG_X with 51 windows\n",
            "Processing NECK_ANG_Y with 51 windows\n",
            "Processing NECK_ANG_Z with 51 windows\n",
            "Processing NECK_LUMINOSITY with 51 windows\n",
            "Processing PCKT_ACC_X with 51 windows\n",
            "Processing PCKT_ACC_Y with 51 windows\n",
            "Processing PCKT_ACC_Z with 51 windows\n",
            "Processing PCKT_ANG_X with 51 windows\n",
            "Processing PCKT_ANG_Y with 51 windows\n",
            "Processing PCKT_ANG_Z with 51 windows\n",
            "Processing PCKT_LUMINOSITY with 51 windows\n",
            "Processing WRST_ACC_X with 51 windows\n",
            "Processing WRST_ACC_Y with 51 windows\n",
            "Processing WRST_ACC_Z with 51 windows\n",
            "Processing WRST_ANG_X with 51 windows\n",
            "Processing WRST_ANG_Y with 51 windows\n",
            "Processing WRST_ANG_Z with 51 windows\n",
            "Processing WRST_LUMINOSITY with 51 windows\n",
            "Processing HELMET_RAW with 51 windows\n"
          ]
        },
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:124: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"skewness\"] = skew(window_data)\n",
            "C:\\Users\\ahars\\AppData\\Roaming\\Python\\Python313\\site-packages\\gaitsetpy\\features\\harup_features.py:125: RuntimeWarning: Precision loss occurred in moment calculation due to catastrophic cancellation. This occurs when the data are nearly identical. Results may be unreliable.\n",
            "  features[\"kurtosis\"] = kurtosis(window_data)\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Processing IR_1 with 51 windows\n",
            "Processing IR_2 with 51 windows\n",
            "Processing IR_3 with 51 windows\n",
            "Processing IR_4 with 51 windows\n",
            "Extracted features for 4 recordings\n"
          ]
        }
      ],
      "source": [
        "# 4) Extract features using HARUPFeatureExtractor\n",
        "if windows:\n",
        "    features_data = loader.extract_features(windows)\n",
        "    print(f\"Extracted features for {len(features_data)} recordings\")\n",
        "else:\n",
        "    features_data = []\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Prepared 4 feature dicts\n"
          ]
        }
      ],
      "source": [
        "# 5) Prepare features for classification\n",
        "import numpy as np\n",
        "\n",
        "def to_scalar(x):\n",
        "    if isinstance(x, (list, np.ndarray)):\n",
        "        if len(x) == 0:\n",
        "            return 0.0\n",
        "        return float(np.mean(x))\n",
        "    return float(x)\n",
        "\n",
        "feature_dicts = []\n",
        "if features_data:\n",
        "    for rec in features_data:\n",
        "        name = rec[\"name\"]\n",
        "        features_list = rec[\"features\"]\n",
        "        if not features_list:\n",
        "            continue\n",
        "        feature_keys = [k for k in features_list[0].keys() if k not in (\"sensor\", \"label\")]\n",
        "        features_map = {k: [to_scalar(f.get(k, 0)) for f in features_list] for k in feature_keys}\n",
        "        annotations = [f[\"label\"] for f in features_list if \"label\" in f]\n",
        "        feature_dicts.append({\"name\": name, \"features\": features_map, \"annotations\": annotations})\n",
        "\n",
        "print(f\"Prepared {len(feature_dicts)} feature dicts\")\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [
        {
          "ename": "AttributeError",
          "evalue": "'str' object has no attribute 'UPPER'",
          "output_type": "error",
          "traceback": [
            "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
            "\u001b[31mAttributeError\u001b[39m                            Traceback (most recent call last)",
            "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[7]\u001b[39m\u001b[32m, line 6\u001b[39m\n\u001b[32m      4\u001b[39m model_names = [\u001b[33m'\u001b[39m\u001b[33mrandom_forest\u001b[39m\u001b[33m'\u001b[39m, \u001b[33m'\u001b[39m\u001b[33mmlp\u001b[39m\u001b[33m'\u001b[39m, \u001b[33m'\u001b[39m\u001b[33mlstm\u001b[39m\u001b[33m'\u001b[39m, \u001b[33m'\u001b[39m\u001b[33mbilstm\u001b[39m\u001b[33m'\u001b[39m, \u001b[33m'\u001b[39m\u001b[33mcnn\u001b[39m\u001b[33m'\u001b[39m, \u001b[33m'\u001b[39m\u001b[33mgnn\u001b[39m\u001b[33m'\u001b[39m]\n\u001b[32m      5\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m model_name \u001b[38;5;129;01min\u001b[39;00m model_names:\n\u001b[32m----> \u001b[39m\u001b[32m6\u001b[39m     \u001b[38;5;28mprint\u001b[39m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[33m--- \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[43mmodel_name\u001b[49m\u001b[43m.\u001b[49m\u001b[43mUPPER\u001b[49m()\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m ---\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m      7\u001b[39m     kwargs = {}\n\u001b[32m      8\u001b[39m     \u001b[38;5;28;01mtry\u001b[39;00m:\n",
            "\u001b[31mAttributeError\u001b[39m: 'str' object has no attribute 'UPPER'"
          ]
        }
      ],
      "source": [
        "# 6) Train and evaluate multiple models\n",
        "if feature_dicts:\n",
        "    from pprint import pprint\n",
        "    model_names = ['random_forest', 'mlp', 'lstm', 'bilstm', 'cnn', 'gnn']\n",
        "    for model_name in model_names:\n",
        "        print(f\"\\n--- {model_name.upper()} ---\")  # Fixed: use .upper() not .UPPER()\n",
        "        kwargs = {}\n",
        "        try:\n",
        "            X_tmp = []\n",
        "            y_tmp = []\n",
        "            feat_keys = list(feature_dicts[0]['features'].keys()) if feature_dicts[0]['features'] else []\n",
        "            n = min(len(feature_dicts[0]['annotations']), len(next(iter(feature_dicts[0]['features'].values())))) if feat_keys else 0\n",
        "            for i in range(n):\n",
        "                X_tmp.append([float(feature_dicts[0]['features'][k][i]) for k in feat_keys])\n",
        "                y_tmp.append(feature_dicts[0]['annotations'][i])\n",
        "            import numpy as _np\n",
        "            X_tmp = _np.array(X_tmp, dtype=_np.float32) if X_tmp else None\n",
        "            num_classes = len(_np.unique(y_tmp)) if y_tmp else None\n",
        "            if X_tmp is not None:\n",
        "                if model_name == 'cnn':\n",
        "                    kwargs['input_channels'] = X_tmp.shape[1]\n",
        "                if model_name in ['lstm', 'bilstm']:\n",
        "                    kwargs['input_size'] = X_tmp.shape[1]\n",
        "                if model_name in ['cnn', 'lstm', 'bilstm'] and num_classes is not None:\n",
        "                    kwargs['num_classes'] = int(num_classes)\n",
        "                if model_name == 'gnn' and num_classes is not None:\n",
        "                    kwargs['input_dim'] = X_tmp.shape[1]\n",
        "                    kwargs['output_dim'] = int(num_classes)\n",
        "        except Exception:\n",
        "            pass\n",
        "        try:\n",
        "            model = get_classification_model(model_name, **{k: v for k, v in kwargs.items() if v is not None})\n",
        "        except Exception as e:\n",
        "            print(f\"Could not instantiate {model_name}: {e}\")\n",
        "            continue\n",
        "        train_kwargs = {}\n",
        "        eval_kwargs = {}\n",
        "        if model_name == 'gnn':\n",
        "            total_windows = sum(len(fd['annotations']) for fd in feature_dicts)\n",
        "            adj = _np.eye(total_windows, dtype=_np.float32)\n",
        "            train_kwargs['adjacency_matrix'] = adj\n",
        "            eval_kwargs['adjacency_matrix'] = adj\n",
        "        try:\n",
        "            model.train(feature_dicts, **train_kwargs)\n",
        "            metrics = model.evaluate(feature_dicts, detailed_report=True, **eval_kwargs)\n",
        "            print(\"Classification Report:\")\n",
        "            if 'classification_report' in metrics:\n",
        "                pprint(metrics['classification_report'])\n",
        "            else:\n",
        "                print(\"No detailed report available.\")\n",
        "        except Exception as e:\n",
        "            print(f\"Training/evaluation failed for {model_name}: {e}\")\n",
        "else:\n",
        "    print(\"No features to train models.\")\n"
      ]
    },
    {
      "cell_type": "raw",
      "metadata": {
        "vscode": {
          "languageId": "raw"
        }
      },
      "source": [
        "## Tips\n",
        "- Adjust `subjects`, `activities`, and `trials` in loader to subset the data.\n",
        "- Window size 100 at 100Hz equals 1 second; step 50 equals 0.5 seconds overlap.\n",
        "- For GPU models, ensure PyTorch is installed; the notebook will skip them otherwise.\n"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.13.3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}
