C3Dtools API package - Read c3d files
Project description
pyc3dtools
This is python package that you can use it to read your c3d file. Actually, this is an C3Dtools.com API. The C3Dtools.com is a free web-based biomechanical toolbox. On C3Dtools.com you can :
- Lower Body Inverse Kinematic - Plug-in Gait Model NEW
- Convert C3D file to ASCII and create .TRC and .MOT that is compatible with the Opensim
- Convert Xsens IMU sensors data to .sto to use in Opensim(Opensens)
- Detect Gait events based on kinematic data
- Calculate spatiotemporal gait parameters based on kinematic data
- Apply Butterworth low-pass and high-pass digital filtering
- Free C3D files repository
- Trim C3D file
Install
pip install pyc3dtools
Usage
First of all, create an account (Register) and then log in to your account, you can find the API token on the home page
and then import pyc3dtools package
import pyc3dtools
Finally pass the API token and your file path to the readC3D function as an input,
c3d = pyc3dtools.readC3D(TOKEN,'TYPE-2.C3D')
Get data
1.Header section
Number_of_Markers = c3d['Header']['Number_of_Points']
First_Frame = c3d['Header']['first_frame']
Last_Frame = c3d['Header']['last_frame']
Video_Sampling_Rate = c3d['Header']['Video_Frame_Rate']
Number_of_Analog_Channels = c3d['Header']['Analog_number_channel']
Analog_Sample_Rate = c3d['Header']['Analog_Frame_Rate']
Analog_sample_per_video_frame = c3d['Header']['Analog_sample_per_Frame']
2.Marker & Analog Labels
Markers_Label = c3d['Markers Label']
Analog_Label = c3d['Analog Label']
3. Markers
### c3d['Markers'][frame][marker][:3]
p1 = c3d['Markers'][0][0][:3] # Get the position of the first marker (x,y,z) in the first frame
p2 = c3d['Markers'][100][0][:3] # Get the position of the first marker (x,y,z) in the 100th frame
p3 = c3d['Markers'][100][1][:3] # Get the position of the second marker (x,y,z) in the 100th frame
5. Units and Coordinate System
Units = c3d['Units']
coordinate_System = c3d['Coordinate system'] #[X_SCREEN, Y_SCREEN]
6. ForcePlate Type 2,3,4,5
### c3d['ForcePlate'][Plate Number]['FZ'][Frame][Analog Frame per Video Frame]
Number_Of_Forceplates = len(result['ForcePlate'])
Force = c3d['ForcePlate'][0]['FX'][100] ,c3d['ForcePlate'][0]['FY'][100],c3d['ForcePlate'][0]['FZ'][100]
Force = c3d['ForcePlate'][0]['FX'][100][10] ,c3d['ForcePlate'][0]['FY'][100][10],c3d['ForcePlate'][0]['FZ'][100][10]
Corners c3d['ForcePlate'][0]['corners']
Origin = c3d['ForcePlate'][0]['Origin']
### c3d['ForcePlate'][Plate Number]['COP'][Frame][X|Y|Z][Frame][Analog Frame per Video Frame]
Xcop_frame_50_1 = c3d['ForcePlate'][0]['COP'][50][0][1]
Ycop_frame_50_1 = c3d['ForcePlate'][0]['COP'][50][1][1]
Zcop_frame_50_1 = c3d['ForcePlate'][0]['COP'][50][2][1]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyc3dtools-0.1.2.win-amd64.zip
.
File metadata
- Download URL: pyc3dtools-0.1.2.win-amd64.zip
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5742370403c1daebfbb72c887d2ca14aed934c02ec03a20a06de3e69ae6d3ede |
|
MD5 | c4262ab14b0d94fa723870b471b4fb7f |
|
BLAKE2b-256 | 307cf5f96e73994b1b22b57488e6a3966afddfe8d948ef514e8036fa7105adeb |
File details
Details for the file pyc3dtools-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: pyc3dtools-0.1.2-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d82552ee049e2fc1ae8b509b48fc6a8f820bfab9131aa82838ba0ea4375fd128 |
|
MD5 | 56382b355c7233b946888f61963d146b |
|
BLAKE2b-256 | acaabb601fc2914422ed8f0d064047d630064b19d8ea4d2068e15a31a2844d05 |