{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Read Cortex Motion Analysis Corporation .trc file\n", "\n", "> Marcos Duarte \n", "> [Laboratory of Biomechanics and Motor Control](http://demotu.org/) \n", "> Federal University of ABC, Brazil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Motion Analysis Corporation (MAC, http://www.motionanalysis.com/) builds motion capture systems and their software (e.g., Cortex) generates files in ASCII and binary formats for the different signals (kinematics, analog data, force plate data, etc.). Here are functions for reading most of the files saved in ASCII format. These files have headers with few lines with meta data and the signals are stored in columns and the rows for the different frames (instants of time).\n", "\n", "The \".trc\" (Track Row Column) file in ASCII contains X-Y-Z position data for the reflective markers from a motion capture trial. The position data for each marker is organized into 3 columns per marker (X, Y and Z position) with each row being a new frame. The position data is relative to the global coordinate system of the capture volume and the position values are in the units used for calibration.\n", "\n", "The \".anc\" (Analog ASCII Row Column) file contains ASCII analog data in row-column format. The data is derived from \".anb\" analog binary files. These binary \".anb\" files are generated simultaneously with video \".vc\" files if an optional analog input board is used in conjunction with video data capture.\n", "\n", "The \".cal\" file contains force plate calibration parameters. \n", "\n", "The \".forces\" file contains force plate data. The data is saved based on the \"forcepla.cal\" file of the trial and converts the raw force plate data into calibrated forces. The units used are Newtons and Newton-meters and each line in the file equates to one analog sample.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.480987Z", "start_time": "2021-11-17T19:18:21.859755Z" } }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "import numpy as np\n", "%matplotlib notebook\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "from scipy import signal\n", "\n", "import sys\n", "sys.path.insert(1, r'./../functions') # add to pythonpath\n", "\n", "from read_trc import read_trc" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.491921Z", "start_time": "2021-11-17T19:18:22.481872Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Read .trc file format from Cortex MAC.\n", "\n", " This function: 1. Read trc file; 2. Can delete or replace markers (columns)\n", " with empty data; 3. Correct number of markers in the header according to\n", " the actual number of non-empty markers; 4. Can save a '.trc' file with\n", " updated information and data; 5. Return header information (optional) and\n", " data (marker position) as dataframe or dataarray.\n", "\n", " The .trc (track row column) file in ASCII contains X-Y-Z position\n", " data for the reflective markers from a motion capture trial. The\n", " position data for each marker is organized into 3 columns per marker\n", " (X, Y and Z position) with each row being a new frame. The position\n", " data is relative to the global coordinate system of the capture volume\n", " and the position values are in the units used for calibration.\n", "\n", " Parameters\n", " ----------\n", " fname : string\n", " Full file name of the .trc file to be opened.\n", " fname2 : string (default = '')\n", " Full file name of the .trc file to be saved with updated information\n", " and data if desired.\n", " If fname2 is '', no file is saved.\n", " If fname2 is '=', the original file name will be used.\n", " If fname2 is a string with length between 1 and 3 (other than '='),\n", " e.g., '_2', this string is appended to the original file name.\n", " units : string (default = '')\n", " Change the units of the data if desired.\n", " Accepted output units are 'm' or 'mm'.\n", " dropna : bool (default = False)\n", " True: Delete column if it has only missing or NaN values.\n", " False: preserve column and replace column values by parameter `na`\n", " (see below) if inputed, otherwise maintain default pandas value (NaN).\n", " na : float or None (default = 0.0)\n", " Value to replace (if `dropna` is False) column values if this column\n", " has only missing or NaN values. Input None to maintain default pandas\n", " value for this case (NaN).\n", " fmt : string (default = 'multi')\n", " Format of the output: 'uni', 'multi', 'xarray'\n", " 'uni': returns variable with trc header info plus pandas\n", " dataframe with markerxyz as labels and \"Frame#\" and \"Time\" as columns;\n", " 'multi': returns variable with trc header info plus multilabel pandas\n", " dataframe with \"Marker\", \"Coordinate\" and \"XYZ\", as labels and \"Time\"\n", " as index;\n", " 'xarray': returns variable as dataarray xarray and trc header info as\n", " attributes of this dataarray.\n", " show_msg : bool (default = True)\n", " Whether to print messages about the execution of the intermediary steps\n", " (True) or not (False).\n", "\n", " Returns\n", " -------\n", " h : Python dictionary with .trc header info (if `fmt` = 'uni' or 'multi')\n", " keys: header (the .trc full header), data_rate (Hz), camera_rate (Hz),\n", " nframes, nmarkers, markers (names), xyz (X1,Y1,Z1...), units.\n", " data : pandas dataframe or xarray dataarray\n", " Three possible output formats according to the `fmt` option:\n", " 'uni': dataframe with shape (nframes, 2+3*nmarkers) with markerxyz as\n", " labels and columns: Frame#, time and position data, or\n", " 'multi': fataframe with shape (nframes, 3*nmarkers) with \"Marker\",\n", " \"Coordinate\" and \"XYZ\" as labels, \"Time\" as index, and data position\n", " as columns, or\n", " 'xarray': dataarray with dims=['time', 'marker', 'component'] and trc\n", " header info as attributes of this dataarray.\n", "\n", " Examples\n", " --------\n", "\n", " Notes\n", " -----\n", "\n", " \n" ] } ], "source": [ "print(read_trc.__doc__)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.501726Z", "start_time": "2021-11-17T19:18:22.492956Z" } }, "outputs": [], "source": [ "import sys, os\n", "\n", "path2 = r'./../data/'\n", "fname = os.path.join(path2, 'arm26_elbow_flex.trc')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.522210Z", "start_time": "2021-11-17T19:18:22.502474Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/arm26_elbow_flex.trc\" ... done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Frame#Timer_acromionxr_acromionyr_acromionzr_humerus_epicondylexr_humerus_epicondyleyr_humerus_epicondylezr_radius_styloidxr_radius_styloidyr_radius_styloidz
010.000000-13.05452439.505476169.505476-12.559380-297.414380199.985620-13.124683-533.569683251.420317
120.008333-12.96064839.599352169.599352-12.567324-297.422324199.977676-12.867025-533.600380251.382550
230.016667-12.85342539.706575169.706575-12.574394-297.429394199.970606-12.582610-533.629817251.345015
340.025000-12.73642939.823571169.823571-12.580312-297.435312199.964688-12.246998-533.658334251.306576
450.033333-12.61355639.946444169.946444-12.584846-297.439846199.960154-11.837471-533.686073251.266170
\n", "
" ], "text/plain": [ " Frame# Time r_acromionx r_acromiony r_acromionz \\\n", "0 1 0.000000 -13.054524 39.505476 169.505476 \n", "1 2 0.008333 -12.960648 39.599352 169.599352 \n", "2 3 0.016667 -12.853425 39.706575 169.706575 \n", "3 4 0.025000 -12.736429 39.823571 169.823571 \n", "4 5 0.033333 -12.613556 39.946444 169.946444 \n", "\n", " r_humerus_epicondylex r_humerus_epicondyley r_humerus_epicondylez \\\n", "0 -12.559380 -297.414380 199.985620 \n", "1 -12.567324 -297.422324 199.977676 \n", "2 -12.574394 -297.429394 199.970606 \n", "3 -12.580312 -297.435312 199.964688 \n", "4 -12.584846 -297.439846 199.960154 \n", "\n", " r_radius_styloidx r_radius_styloidy r_radius_styloidz \n", "0 -13.124683 -533.569683 251.420317 \n", "1 -12.867025 -533.600380 251.382550 \n", "2 -12.582610 -533.629817 251.345015 \n", "3 -12.246998 -533.658334 251.306576 \n", "4 -11.837471 -533.686073 251.266170 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, df = read_trc(fname, fname2='', dropna=True, na=0.0, fmt='uni')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.533474Z", "start_time": "2021-11-17T19:18:22.522962Z" } }, "outputs": [ { "data": { "text/plain": [ "{'header': [['PathFileType',\n", " '4',\n", " '(X/Y/Z)',\n", " 'arm26_elbow_flex.trc',\n", " '',\n", " '',\n", " '',\n", " '',\n", " '',\n", " '',\n", " ''],\n", " ['DataRate',\n", " 'CameraRate',\n", " 'NumFrames',\n", " 'NumMarkers',\n", " 'Units',\n", " 'OrigDataRate',\n", " 'OrigDataStartFrame',\n", " 'OrigNumFrames',\n", " '',\n", " '',\n", " ''],\n", " ['120', '120', '121', '3', 'mm', '120', '1', '121', '', '', ''],\n", " ['Frame#',\n", " 'Time',\n", " 'r_acromion',\n", " '',\n", " '',\n", " 'r_humerus_epicondyle',\n", " '',\n", " '',\n", " 'r_radius_styloid',\n", " '',\n", " '',\n", " ''],\n", " ['', '', 'X1', 'Y1', 'Z1', 'X2', 'Y2', 'Z2', 'X3', 'Y3', 'Z3']],\n", " 'data_rate': 120.0,\n", " 'camera_rate': 120.0,\n", " 'nframes': 121,\n", " 'nmarkers': 3,\n", " 'markers': ['r_acromion', 'r_humerus_epicondyle', 'r_radius_styloid'],\n", " 'xyz': ['X1', 'Y1', 'Z1', 'X2', 'Y2', 'Z2', 'X3', 'Y3', 'Z3'],\n", " 'units': 'mm',\n", " 'fname': './../data/arm26_elbow_flex.trc',\n", " 'fname2': ''}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.556096Z", "start_time": "2021-11-17T19:18:22.534265Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/arm26_elbow_flex.trc\" ... done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Markerr_acromionr_humerus_epicondyler_radius_styloid
CoordinateXYZXYZXYZ
XYZX1Y1Z1X2Y2Z2X3Y3Z3
Time
0.000000-13.05452439.505476169.505476-12.559380-297.414380199.985620-13.124683-533.569683251.420317
0.008333-12.96064839.599352169.599352-12.567324-297.422324199.977676-12.867025-533.600380251.382550
0.016667-12.85342539.706575169.706575-12.574394-297.429394199.970606-12.582610-533.629817251.345015
0.025000-12.73642939.823571169.823571-12.580312-297.435312199.964688-12.246998-533.658334251.306576
0.033333-12.61355639.946444169.946444-12.584846-297.439846199.960154-11.837471-533.686073251.266170
\n", "
" ], "text/plain": [ "Marker r_acromion r_humerus_epicondyle \\\n", "Coordinate X Y Z X Y \n", "XYZ X1 Y1 Z1 X2 Y2 \n", "Time \n", "0.000000 -13.054524 39.505476 169.505476 -12.559380 -297.414380 \n", "0.008333 -12.960648 39.599352 169.599352 -12.567324 -297.422324 \n", "0.016667 -12.853425 39.706575 169.706575 -12.574394 -297.429394 \n", "0.025000 -12.736429 39.823571 169.823571 -12.580312 -297.435312 \n", "0.033333 -12.613556 39.946444 169.946444 -12.584846 -297.439846 \n", "\n", "Marker r_radius_styloid \n", "Coordinate Z X Y Z \n", "XYZ Z2 X3 Y3 Z3 \n", "Time \n", "0.000000 199.985620 -13.124683 -533.569683 251.420317 \n", "0.008333 199.977676 -12.867025 -533.600380 251.382550 \n", "0.016667 199.970606 -12.582610 -533.629817 251.345015 \n", "0.025000 199.964688 -12.246998 -533.658334 251.306576 \n", "0.033333 199.960154 -11.837471 -533.686073 251.266170 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, df = read_trc(fname, fname2='', dropna=True, na=0.0, fmt='multi')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.894989Z", "start_time": "2021-11-17T19:18:22.556999Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/arm26_elbow_flex.trc\" ... done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'Position data' (time: 121, marker: 3, component: 3)>\n",
       "array([[[ -13.05452443,   39.50547557,  169.5054756 ],\n",
       "        [ -12.55937962, -297.4143796 ,  199.9856204 ],\n",
       "        [ -13.12468341, -533.5696827 ,  251.4203173 ]],\n",
       "\n",
       "       [[ -12.96064763,   39.59935237,  169.5993524 ],\n",
       "        [ -12.56732433, -297.4223243 ,  199.9776757 ],\n",
       "        [ -12.86702479, -533.6003803 ,  251.3825496 ]],\n",
       "\n",
       "       [[ -12.85342531,   39.70657469,  169.7065747 ],\n",
       "        [ -12.57439418, -297.4293942 ,  199.9706058 ],\n",
       "        [ -12.58261002, -533.6298174 ,  251.345015  ]],\n",
       "\n",
       "       ...,\n",
       "\n",
       "       [[ -11.91518938,   40.64481062,  170.6448106 ],\n",
       "        [ -12.50145015, -297.3564501 ,  200.0435499 ],\n",
       "        [ 231.0730594 , -300.0052994 ,  231.0669795 ]],\n",
       "\n",
       "       [[ -11.96689527,   40.59310473,  170.5931047 ],\n",
       "        [ -12.50375329, -297.3587533 ,  200.0412467 ],\n",
       "        [ 231.0449219 , -299.7324972 ,  231.0210452 ]],\n",
       "\n",
       "       [[ -12.03835742,   40.52164258,  170.5216426 ],\n",
       "        [ -12.50767284, -297.3626728 ,  200.0373272 ],\n",
       "        [ 231.0167559 , -299.4841418 ,  230.9769121 ]]])\n",
       "Coordinates:\n",
       "  * time       (time) float64 0.0 0.008333 0.01667 0.025 ... 0.9833 0.9917 1.0\n",
       "  * marker     (marker) <U20 'r_acromion' ... 'r_radius_styloid'\n",
       "  * component  (component) <U1 'X' 'Y' 'Z'\n",
       "Attributes:\n",
       "    header:       [['PathFileType', '4', '(X/Y/Z)', 'arm26_elbow_flex.trc', '...\n",
       "    data_rate:    120.0\n",
       "    camera_rate:  120.0\n",
       "    nframes:      121\n",
       "    nmarkers:     3\n",
       "    markers:      ['r_acromion', 'r_humerus_epicondyle', 'r_radius_styloid']\n",
       "    xyz:          ['X1', 'Y1', 'Z1', 'X2', 'Y2', 'Z2', 'X3', 'Y3', 'Z3']\n",
       "    units:        mm\n",
       "    fname:        ./../data/arm26_elbow_flex.trc\n",
       "    fname2:       
" ], "text/plain": [ "\n", "array([[[ -13.05452443, 39.50547557, 169.5054756 ],\n", " [ -12.55937962, -297.4143796 , 199.9856204 ],\n", " [ -13.12468341, -533.5696827 , 251.4203173 ]],\n", "\n", " [[ -12.96064763, 39.59935237, 169.5993524 ],\n", " [ -12.56732433, -297.4223243 , 199.9776757 ],\n", " [ -12.86702479, -533.6003803 , 251.3825496 ]],\n", "\n", " [[ -12.85342531, 39.70657469, 169.7065747 ],\n", " [ -12.57439418, -297.4293942 , 199.9706058 ],\n", " [ -12.58261002, -533.6298174 , 251.345015 ]],\n", "\n", " ...,\n", "\n", " [[ -11.91518938, 40.64481062, 170.6448106 ],\n", " [ -12.50145015, -297.3564501 , 200.0435499 ],\n", " [ 231.0730594 , -300.0052994 , 231.0669795 ]],\n", "\n", " [[ -11.96689527, 40.59310473, 170.5931047 ],\n", " [ -12.50375329, -297.3587533 , 200.0412467 ],\n", " [ 231.0449219 , -299.7324972 , 231.0210452 ]],\n", "\n", " [[ -12.03835742, 40.52164258, 170.5216426 ],\n", " [ -12.50767284, -297.3626728 , 200.0373272 ],\n", " [ 231.0167559 , -299.4841418 , 230.9769121 ]]])\n", "Coordinates:\n", " * time (time) float64 0.0 0.008333 0.01667 0.025 ... 0.9833 0.9917 1.0\n", " * marker (marker) \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Markerr_acromionr_humerus_epicondyler_radius_styloid
CoordinateXYZXYZXYZ
XYZX1Y1Z1X2Y2Z2X3Y3Z3
Time
0.000000-13.05452439.505476169.5054760.00.00.0-13.124683-533.569683251.420317
0.008333-12.96064839.599352169.5993520.00.00.0-12.867025-533.600380251.382550
0.016667-12.85342539.706575169.7065750.00.00.0-12.582610-533.629817251.345015
0.025000-12.73642939.823571169.8235710.00.00.0-12.246998-533.658334251.306576
0.033333-12.61355639.946444169.9464440.00.00.0-11.837471-533.686073251.266170
\n", "" ], "text/plain": [ "Marker r_acromion r_humerus_epicondyle \\\n", "Coordinate X Y Z X Y Z \n", "XYZ X1 Y1 Z1 X2 Y2 Z2 \n", "Time \n", "0.000000 -13.054524 39.505476 169.505476 0.0 0.0 0.0 \n", "0.008333 -12.960648 39.599352 169.599352 0.0 0.0 0.0 \n", "0.016667 -12.853425 39.706575 169.706575 0.0 0.0 0.0 \n", "0.025000 -12.736429 39.823571 169.823571 0.0 0.0 0.0 \n", "0.033333 -12.613556 39.946444 169.946444 0.0 0.0 0.0 \n", "\n", "Marker r_radius_styloid \n", "Coordinate X Y Z \n", "XYZ X3 Y3 Z3 \n", "Time \n", "0.000000 -13.124683 -533.569683 251.420317 \n", "0.008333 -12.867025 -533.600380 251.382550 \n", "0.016667 -12.582610 -533.629817 251.345015 \n", "0.025000 -12.246998 -533.658334 251.306576 \n", "0.033333 -11.837471 -533.686073 251.266170 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, df = read_trc(fname, fname2='', dropna=False, na=0.0, fmt='multi')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.956386Z", "start_time": "2021-11-17T19:18:22.933590Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/arm26_elbow_flex_e.trc\" ... Number of markers changed from 3 to 2.\n", "done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Markerr_acromionr_radius_styloid
CoordinateXYZXYZ
XYZX1Y1Z1X2Y2Z2
Time
0.000000-13.05452439.505476169.505476-13.124683-533.569683251.420317
0.008333-12.96064839.599352169.599352-12.867025-533.600380251.382550
0.016667-12.85342539.706575169.706575-12.582610-533.629817251.345015
0.025000-12.73642939.823571169.823571-12.246998-533.658334251.306576
0.033333-12.61355639.946444169.946444-11.837471-533.686073251.266170
\n", "
" ], "text/plain": [ "Marker r_acromion r_radius_styloid \\\n", "Coordinate X Y Z X Y \n", "XYZ X1 Y1 Z1 X2 Y2 \n", "Time \n", "0.000000 -13.054524 39.505476 169.505476 -13.124683 -533.569683 \n", "0.008333 -12.960648 39.599352 169.599352 -12.867025 -533.600380 \n", "0.016667 -12.853425 39.706575 169.706575 -12.582610 -533.629817 \n", "0.025000 -12.736429 39.823571 169.823571 -12.246998 -533.658334 \n", "0.033333 -12.613556 39.946444 169.946444 -11.837471 -533.686073 \n", "\n", "Marker \n", "Coordinate Z \n", "XYZ Z2 \n", "Time \n", "0.000000 251.420317 \n", "0.008333 251.382550 \n", "0.016667 251.345015 \n", "0.025000 251.306576 \n", "0.033333 251.266170 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, df = read_trc(fname, fname2='', dropna=True, na=0.0, fmt='multi')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:22.994412Z", "start_time": "2021-11-17T19:18:22.957454Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/arm26_elbow_flex_e.trc\" ... Number of markers changed from 3 to 2.\n", "done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.DataArray 'Position data' (time: 121, marker: 2, component: 3)>\n",
       "array([[[ -13.05452443,   39.50547557,  169.5054756 ],\n",
       "        [ -13.12468341, -533.5696827 ,  251.4203173 ]],\n",
       "\n",
       "       [[ -12.96064763,   39.59935237,  169.5993524 ],\n",
       "        [ -12.86702479, -533.6003803 ,  251.3825496 ]],\n",
       "\n",
       "       [[ -12.85342531,   39.70657469,  169.7065747 ],\n",
       "        [ -12.58261002, -533.6298174 ,  251.345015  ]],\n",
       "\n",
       "       [[ -12.73642902,   39.82357098,  169.823571  ],\n",
       "        [ -12.24699837, -533.6583339 ,  251.3065762 ]],\n",
       "\n",
       "       [[ -12.6135559 ,   39.9464441 ,  169.9464441 ],\n",
       "        [ -11.83747124, -533.6860727 ,  251.2661701 ]],\n",
       "\n",
       "       [[ -12.48889884,   40.07110116,  170.0711012 ],\n",
       "        [ -11.33375263, -533.7129239 ,  251.2228408 ]],\n",
       "\n",
       "       [[ -12.36661015,   40.19338985,  170.1933899 ],\n",
       "        [ -10.71857495, -533.7384701 ,  251.1757657 ]],\n",
       "...\n",
       "       [[ -11.92946669,   40.63053331,  170.6305333 ],\n",
       "        [ 231.1686938 , -301.8004443 ,  231.2845456 ]],\n",
       "\n",
       "       [[ -11.89222162,   40.66777838,  170.6677784 ],\n",
       "        [ 231.1493615 , -301.2057996 ,  231.2236921 ]],\n",
       "\n",
       "       [[ -11.87722018,   40.68277982,  170.6827798 ],\n",
       "        [ 231.1262125 , -300.7204226 ,  231.1675614 ]],\n",
       "\n",
       "       [[ -11.88496206,   40.67503794,  170.6750379 ],\n",
       "        [ 231.1004416 , -300.3270241 ,  231.1155571 ]],\n",
       "\n",
       "       [[ -11.91518938,   40.64481062,  170.6448106 ],\n",
       "        [ 231.0730594 , -300.0052994 ,  231.0669795 ]],\n",
       "\n",
       "       [[ -11.96689527,   40.59310473,  170.5931047 ],\n",
       "        [ 231.0449219 , -299.7324972 ,  231.0210452 ]],\n",
       "\n",
       "       [[ -12.03835742,   40.52164258,  170.5216426 ],\n",
       "        [ 231.0167559 , -299.4841418 ,  230.9769121 ]]])\n",
       "Coordinates:\n",
       "  * time       (time) float64 0.0 0.008333 0.01667 0.025 ... 0.9833 0.9917 1.0\n",
       "  * marker     (marker) <U16 'r_acromion' 'r_radius_styloid'\n",
       "  * component  (component) <U1 'X' 'Y' 'Z'\n",
       "Attributes:\n",
       "    header:       [['PathFileType', '4', '(X/Y/Z)', 'arm26_elbow_flex.trc', '...\n",
       "    data_rate:    120.0\n",
       "    camera_rate:  120.0\n",
       "    nframes:      121\n",
       "    nmarkers:     2\n",
       "    markers:      ['r_acromion', 'r_radius_styloid']\n",
       "    xyz:          ['X1', 'Y1', 'Z1', 'X2', 'Y2', 'Z2']\n",
       "    units:        mm\n",
       "    fname:        ./../data/arm26_elbow_flex_e.trc\n",
       "    fname2:       
" ], "text/plain": [ "\n", "array([[[ -13.05452443, 39.50547557, 169.5054756 ],\n", " [ -13.12468341, -533.5696827 , 251.4203173 ]],\n", "\n", " [[ -12.96064763, 39.59935237, 169.5993524 ],\n", " [ -12.86702479, -533.6003803 , 251.3825496 ]],\n", "\n", " [[ -12.85342531, 39.70657469, 169.7065747 ],\n", " [ -12.58261002, -533.6298174 , 251.345015 ]],\n", "\n", " [[ -12.73642902, 39.82357098, 169.823571 ],\n", " [ -12.24699837, -533.6583339 , 251.3065762 ]],\n", "\n", " [[ -12.6135559 , 39.9464441 , 169.9464441 ],\n", " [ -11.83747124, -533.6860727 , 251.2661701 ]],\n", "\n", " [[ -12.48889884, 40.07110116, 170.0711012 ],\n", " [ -11.33375263, -533.7129239 , 251.2228408 ]],\n", "\n", " [[ -12.36661015, 40.19338985, 170.1933899 ],\n", " [ -10.71857495, -533.7384701 , 251.1757657 ]],\n", "...\n", " [[ -11.92946669, 40.63053331, 170.6305333 ],\n", " [ 231.1686938 , -301.8004443 , 231.2845456 ]],\n", "\n", " [[ -11.89222162, 40.66777838, 170.6677784 ],\n", " [ 231.1493615 , -301.2057996 , 231.2236921 ]],\n", "\n", " [[ -11.87722018, 40.68277982, 170.6827798 ],\n", " [ 231.1262125 , -300.7204226 , 231.1675614 ]],\n", "\n", " [[ -11.88496206, 40.67503794, 170.6750379 ],\n", " [ 231.1004416 , -300.3270241 , 231.1155571 ]],\n", "\n", " [[ -11.91518938, 40.64481062, 170.6448106 ],\n", " [ 231.0730594 , -300.0052994 , 231.0669795 ]],\n", "\n", " [[ -11.96689527, 40.59310473, 170.5931047 ],\n", " [ 231.0449219 , -299.7324972 , 231.0210452 ]],\n", "\n", " [[ -12.03835742, 40.52164258, 170.5216426 ],\n", " [ 231.0167559 , -299.4841418 , 230.9769121 ]]])\n", "Coordinates:\n", " * time (time) float64 0.0 0.008333 0.01667 0.025 ... 0.9833 0.9917 1.0\n", " * marker (marker) \n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Frame#TimeR.ASISxR.ASISyR.ASISzL.ASISxL.ASISyL.ASISzR.PSISxR.PSISy...V_R.TT_KJCzV_L.TT_KJCxV_L.TT_KJCyV_L.TT_KJCzV_R.MT2xV_R.MT2yV_R.MT2zV_L.MT2xV_L.MT2yV_L.MT2z
010.000516.54236966.88000-306.10416531.67438981.34631-560.16077315.74045977.08398...0.00.00.00.00.00.00.00.00.00.0
120.007523.92200967.96594-308.23773539.83044982.78345-561.77612323.29425977.64166...0.00.00.00.00.00.00.00.00.00.0
230.013531.20807968.92493-310.12112547.60663984.00653-563.42725330.56866978.15283...0.00.00.00.00.00.00.00.00.00.0
340.020538.24219969.77612-311.72064555.40649985.09637-564.85162337.63867978.81207...0.00.00.00.00.00.00.00.00.00.0
450.027545.11420970.81128-313.07266563.14301986.00916-566.06659344.50589979.21619...0.00.00.00.00.00.00.00.00.00.0
..................................................................
1791801.1931875.04834958.35535-290.670041897.06970960.27222-546.900941678.10901977.31805...0.00.00.00.00.00.00.00.00.00.0
1801811.2001885.37988958.09222-291.674291907.52881960.81549-547.971441688.67249977.12646...0.00.00.00.00.00.00.00.00.00.0
1811821.2071895.50452957.80798-292.718751917.97290961.49707-548.997991699.17065977.02045...0.00.00.00.00.00.00.00.00.00.0
1821831.2131905.40540957.61029-293.842501928.34631962.31494-550.087041709.65186976.93237...0.00.00.00.00.00.00.00.00.00.0
1831841.2201916.91516958.57813-294.854431938.59363963.29272-551.263061720.05396976.89636...0.00.00.00.00.00.00.00.00.00.0
\n", "

184 rows × 167 columns

\n", "" ], "text/plain": [ " Frame# Time R.ASISx R.ASISy R.ASISz L.ASISx L.ASISy \\\n", "0 1 0.000 516.54236 966.88000 -306.10416 531.67438 981.34631 \n", "1 2 0.007 523.92200 967.96594 -308.23773 539.83044 982.78345 \n", "2 3 0.013 531.20807 968.92493 -310.12112 547.60663 984.00653 \n", "3 4 0.020 538.24219 969.77612 -311.72064 555.40649 985.09637 \n", "4 5 0.027 545.11420 970.81128 -313.07266 563.14301 986.00916 \n", ".. ... ... ... ... ... ... ... \n", "179 180 1.193 1875.04834 958.35535 -290.67004 1897.06970 960.27222 \n", "180 181 1.200 1885.37988 958.09222 -291.67429 1907.52881 960.81549 \n", "181 182 1.207 1895.50452 957.80798 -292.71875 1917.97290 961.49707 \n", "182 183 1.213 1905.40540 957.61029 -293.84250 1928.34631 962.31494 \n", "183 184 1.220 1916.91516 958.57813 -294.85443 1938.59363 963.29272 \n", "\n", " L.ASISz R.PSISx R.PSISy ... V_R.TT_KJCz V_L.TT_KJCx \\\n", "0 -560.16077 315.74045 977.08398 ... 0.0 0.0 \n", "1 -561.77612 323.29425 977.64166 ... 0.0 0.0 \n", "2 -563.42725 330.56866 978.15283 ... 0.0 0.0 \n", "3 -564.85162 337.63867 978.81207 ... 0.0 0.0 \n", "4 -566.06659 344.50589 979.21619 ... 0.0 0.0 \n", ".. ... ... ... ... ... ... \n", "179 -546.90094 1678.10901 977.31805 ... 0.0 0.0 \n", "180 -547.97144 1688.67249 977.12646 ... 0.0 0.0 \n", "181 -548.99799 1699.17065 977.02045 ... 0.0 0.0 \n", "182 -550.08704 1709.65186 976.93237 ... 0.0 0.0 \n", "183 -551.26306 1720.05396 976.89636 ... 0.0 0.0 \n", "\n", " V_L.TT_KJCy V_L.TT_KJCz V_R.MT2x V_R.MT2y V_R.MT2z V_L.MT2x \\\n", "0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2 0.0 0.0 0.0 0.0 0.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 0.0 \n", ".. ... ... ... ... ... ... \n", "179 0.0 0.0 0.0 0.0 0.0 0.0 \n", "180 0.0 0.0 0.0 0.0 0.0 0.0 \n", "181 0.0 0.0 0.0 0.0 0.0 0.0 \n", "182 0.0 0.0 0.0 0.0 0.0 0.0 \n", "183 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", " V_L.MT2y V_L.MT2z \n", "0 0.0 0.0 \n", "1 0.0 0.0 \n", "2 0.0 0.0 \n", "3 0.0 0.0 \n", "4 0.0 0.0 \n", ".. ... ... \n", "179 0.0 0.0 \n", "180 0.0 0.0 \n", "181 0.0 0.0 \n", "182 0.0 0.0 \n", "183 0.0 0.0 \n", "\n", "[184 rows x 167 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, data = read_trc('./../data/walk.trc', fname2='', dropna=False, na=0.0, fmt='uni')\n", "data" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:23.133494Z", "start_time": "2021-11-17T19:18:23.061216Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/walk.trc\" ... Number of markers changed from 28 to 55.\n", "done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MarkerR_ASISL_ASISR_PSISL_PSIS...V_R_TT_KJCV_L_TT_KJCV_R_MT2V_L_MT2
CoordinateXYZXYZXYZX...ZXYZXYZXYZ
XYZX1Y1Z1X2Y2Z2X3Y3Z3X4...Z52X53Y53Z53X54Y54Z54X55Y55Z55
Time
0.000516.54236966.88000-306.10416531.67438981.34631-560.16077315.74045977.08398-388.89532312.81592...0.00.00.00.00.00.00.00.00.00.0
0.007523.92200967.96594-308.23773539.83044982.78345-561.77612323.29425977.64166-391.11392320.88770...0.00.00.00.00.00.00.00.00.00.0
0.013531.20807968.92493-310.12112547.60663984.00653-563.42725330.56866978.15283-393.34290328.17276...0.00.00.00.00.00.00.00.00.00.0
0.020538.24219969.77612-311.72064555.40649985.09637-564.85162337.63867978.81207-395.60764335.90649...0.00.00.00.00.00.00.00.00.00.0
0.027545.11420970.81128-313.07266563.14301986.00916-566.06659344.50589979.21619-397.85052343.31287...0.00.00.00.00.00.00.00.00.00.0
..................................................................
1.1931875.04834958.35535-290.670041897.06970960.27222-546.900941678.10901977.31805-385.062291678.84143...0.00.00.00.00.00.00.00.00.00.0
1.2001885.37988958.09222-291.674291907.52881960.81549-547.971441688.67249977.12646-386.238681689.18640...0.00.00.00.00.00.00.00.00.00.0
1.2071895.50452957.80798-292.718751917.97290961.49707-548.997991699.17065977.02045-387.413641699.72668...0.00.00.00.00.00.00.00.00.00.0
1.2131905.40540957.61029-293.842501928.34631962.31494-550.087041709.65186976.93237-388.508031710.00281...0.00.00.00.00.00.00.00.00.00.0
1.2201916.91516958.57813-294.854431938.59363963.29272-551.263061720.05396976.89636-389.467961720.32813...0.00.00.00.00.00.00.00.00.00.0
\n", "

184 rows × 165 columns

\n", "
" ], "text/plain": [ "Marker R_ASIS L_ASIS \\\n", "Coordinate X Y Z X Y \n", "XYZ X1 Y1 Z1 X2 Y2 \n", "Time \n", "0.000 516.54236 966.88000 -306.10416 531.67438 981.34631 \n", "0.007 523.92200 967.96594 -308.23773 539.83044 982.78345 \n", "0.013 531.20807 968.92493 -310.12112 547.60663 984.00653 \n", "0.020 538.24219 969.77612 -311.72064 555.40649 985.09637 \n", "0.027 545.11420 970.81128 -313.07266 563.14301 986.00916 \n", "... ... ... ... ... ... \n", "1.193 1875.04834 958.35535 -290.67004 1897.06970 960.27222 \n", "1.200 1885.37988 958.09222 -291.67429 1907.52881 960.81549 \n", "1.207 1895.50452 957.80798 -292.71875 1917.97290 961.49707 \n", "1.213 1905.40540 957.61029 -293.84250 1928.34631 962.31494 \n", "1.220 1916.91516 958.57813 -294.85443 1938.59363 963.29272 \n", "\n", "Marker R_PSIS L_PSIS ... \\\n", "Coordinate Z X Y Z X ... \n", "XYZ Z2 X3 Y3 Z3 X4 ... \n", "Time ... \n", "0.000 -560.16077 315.74045 977.08398 -388.89532 312.81592 ... \n", "0.007 -561.77612 323.29425 977.64166 -391.11392 320.88770 ... \n", "0.013 -563.42725 330.56866 978.15283 -393.34290 328.17276 ... \n", "0.020 -564.85162 337.63867 978.81207 -395.60764 335.90649 ... \n", "0.027 -566.06659 344.50589 979.21619 -397.85052 343.31287 ... \n", "... ... ... ... ... ... ... \n", "1.193 -546.90094 1678.10901 977.31805 -385.06229 1678.84143 ... \n", "1.200 -547.97144 1688.67249 977.12646 -386.23868 1689.18640 ... \n", "1.207 -548.99799 1699.17065 977.02045 -387.41364 1699.72668 ... \n", "1.213 -550.08704 1709.65186 976.93237 -388.50803 1710.00281 ... \n", "1.220 -551.26306 1720.05396 976.89636 -389.46796 1720.32813 ... \n", "\n", "Marker V_R_TT_KJC V_L_TT_KJC V_R_MT2 V_L_MT2 \n", "Coordinate Z X Y Z X Y Z X Y Z \n", "XYZ Z52 X53 Y53 Z53 X54 Y54 Z54 X55 Y55 Z55 \n", "Time \n", "0.000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "0.007 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "0.013 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "0.020 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "0.027 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... ... ... ... ... ... \n", "1.193 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1.200 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1.207 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1.213 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1.220 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", "[184 rows x 165 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, data = read_trc('./../data/walk.trc', fname2='', dropna=False, na=0.0, fmt='multi')\n", "data" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2021-11-17T19:18:23.176017Z", "start_time": "2021-11-17T19:18:23.134292Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Opening file \"./../data/walk.trc\" ... done.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
MarkerR_ASISL_ASISR_PSISL_PSIS...R_MT2L_Knee_MedialL_Ankle_MedialL_MT2
CoordinateXYZXYZXYZX...ZXYZXYZXYZ
XYZX1Y1Z1X2Y2Z2X3Y3Z3X4...Z25X26Y26Z26X27Y27Z27X28Y28Z28
Time
0.000516.54236966.88000-306.10416531.67438981.34631-560.16077315.74045977.08398-388.89532312.81592...-295.95847584.31927491.83475-451.49405640.91467102.96970-461.64136766.4901767.05472-520.25671
0.007523.92200967.96594-308.23773539.83044982.78345-561.77612323.29425977.64166-391.11392320.88770...-296.16809585.61047491.72031-452.45239641.00195102.78003-461.30609766.7088066.18866-519.62793
0.013531.20807968.92493-310.12112547.60663984.00653-563.42725330.56866978.15283-393.34290328.17276...-296.09930586.44348491.23099-453.99197641.22186102.52743-461.05392766.9268265.27229-519.13348
0.020538.24219969.77612-311.72064555.40649985.09637-564.85162337.63867978.81207-395.60764335.90649...-295.37305588.36719491.34662-454.16455641.47699102.29733-460.72614767.0934464.64764-518.64502
0.027545.11420970.81128-313.07266563.14301986.00916-566.06659344.50589979.21619-397.85052343.31287...-294.78860589.59979491.36469-454.49768641.77759102.33441-460.27908767.2384064.11570-518.32220
..................................................................
1.1931875.04834958.35535-290.670041897.06970960.27222-546.900941678.10901977.31805-385.062291678.84143...-349.126311974.25183481.42581-449.719942117.11304115.82814-464.732332238.68921116.63618-525.20459
1.2001885.37988958.09222-291.674291907.52881960.81549-547.971441688.67249977.12646-386.238681689.18640...-348.931271982.22021480.87662-450.355712121.40991113.80779-464.638492244.71509110.86374-523.01886
1.2071895.50452957.80798-292.718751917.97290961.49707-548.997991699.17065977.02045-387.413641699.72668...-348.683991989.57397480.27377-451.052802124.43408112.07399-464.435762248.97974104.70275-520.64160
1.2131905.40540957.61029-293.842501928.34631962.31494-550.087041709.65186976.93237-388.508031710.00281...-348.856411996.14453479.61557-451.709872127.16431110.69190-464.257322252.4196898.64201-519.56976
1.2201916.91516958.57813-294.854431938.59363963.29272-551.263061720.05396976.89636-389.467961720.32813...-348.741002001.50623478.78607-452.587802129.84302109.49210-464.427342255.6106093.78249-518.34271
\n", "

184 rows × 84 columns

\n", "
" ], "text/plain": [ "Marker R_ASIS L_ASIS \\\n", "Coordinate X Y Z X Y \n", "XYZ X1 Y1 Z1 X2 Y2 \n", "Time \n", "0.000 516.54236 966.88000 -306.10416 531.67438 981.34631 \n", "0.007 523.92200 967.96594 -308.23773 539.83044 982.78345 \n", "0.013 531.20807 968.92493 -310.12112 547.60663 984.00653 \n", "0.020 538.24219 969.77612 -311.72064 555.40649 985.09637 \n", "0.027 545.11420 970.81128 -313.07266 563.14301 986.00916 \n", "... ... ... ... ... ... \n", "1.193 1875.04834 958.35535 -290.67004 1897.06970 960.27222 \n", "1.200 1885.37988 958.09222 -291.67429 1907.52881 960.81549 \n", "1.207 1895.50452 957.80798 -292.71875 1917.97290 961.49707 \n", "1.213 1905.40540 957.61029 -293.84250 1928.34631 962.31494 \n", "1.220 1916.91516 958.57813 -294.85443 1938.59363 963.29272 \n", "\n", "Marker R_PSIS L_PSIS ... \\\n", "Coordinate Z X Y Z X ... \n", "XYZ Z2 X3 Y3 Z3 X4 ... \n", "Time ... \n", "0.000 -560.16077 315.74045 977.08398 -388.89532 312.81592 ... \n", "0.007 -561.77612 323.29425 977.64166 -391.11392 320.88770 ... \n", "0.013 -563.42725 330.56866 978.15283 -393.34290 328.17276 ... \n", "0.020 -564.85162 337.63867 978.81207 -395.60764 335.90649 ... \n", "0.027 -566.06659 344.50589 979.21619 -397.85052 343.31287 ... \n", "... ... ... ... ... ... ... \n", "1.193 -546.90094 1678.10901 977.31805 -385.06229 1678.84143 ... \n", "1.200 -547.97144 1688.67249 977.12646 -386.23868 1689.18640 ... \n", "1.207 -548.99799 1699.17065 977.02045 -387.41364 1699.72668 ... \n", "1.213 -550.08704 1709.65186 976.93237 -388.50803 1710.00281 ... \n", "1.220 -551.26306 1720.05396 976.89636 -389.46796 1720.32813 ... \n", "\n", "Marker R_MT2 L_Knee_Medial L_Ankle_Medial \\\n", "Coordinate Z X Y Z X \n", "XYZ Z25 X26 Y26 Z26 X27 \n", "Time \n", "0.000 -295.95847 584.31927 491.83475 -451.49405 640.91467 \n", "0.007 -296.16809 585.61047 491.72031 -452.45239 641.00195 \n", "0.013 -296.09930 586.44348 491.23099 -453.99197 641.22186 \n", "0.020 -295.37305 588.36719 491.34662 -454.16455 641.47699 \n", "0.027 -294.78860 589.59979 491.36469 -454.49768 641.77759 \n", "... ... ... ... ... ... \n", "1.193 -349.12631 1974.25183 481.42581 -449.71994 2117.11304 \n", "1.200 -348.93127 1982.22021 480.87662 -450.35571 2121.40991 \n", "1.207 -348.68399 1989.57397 480.27377 -451.05280 2124.43408 \n", "1.213 -348.85641 1996.14453 479.61557 -451.70987 2127.16431 \n", "1.220 -348.74100 2001.50623 478.78607 -452.58780 2129.84302 \n", "\n", "Marker L_MT2 \n", "Coordinate Y Z X Y Z \n", "XYZ Y27 Z27 X28 Y28 Z28 \n", "Time \n", "0.000 102.96970 -461.64136 766.49017 67.05472 -520.25671 \n", "0.007 102.78003 -461.30609 766.70880 66.18866 -519.62793 \n", "0.013 102.52743 -461.05392 766.92682 65.27229 -519.13348 \n", "0.020 102.29733 -460.72614 767.09344 64.64764 -518.64502 \n", "0.027 102.33441 -460.27908 767.23840 64.11570 -518.32220 \n", "... ... ... ... ... ... \n", "1.193 115.82814 -464.73233 2238.68921 116.63618 -525.20459 \n", "1.200 113.80779 -464.63849 2244.71509 110.86374 -523.01886 \n", "1.207 112.07399 -464.43576 2248.97974 104.70275 -520.64160 \n", "1.213 110.69190 -464.25732 2252.41968 98.64201 -519.56976 \n", "1.220 109.49210 -464.42734 2255.61060 93.78249 -518.34271 \n", "\n", "[184 rows x 84 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h, data = read_trc('./../data/walk.trc', fname2='', dropna=True, na=0.0, fmt='multi')\n", "data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.12" }, "nbTranslate": { "displayLangs": [ "*" ], "hotkey": "alt-t", "langInMainMenu": true, "sourceLang": "en", "targetLang": "fr", "useGoogleTranslate": true }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }