Python interface of C3Dserver software for reading and editing C3D motion capture files.
Project description
PyC3Dserver
Python interface of C3Dserver software for reading and editing C3D motion capture files.
Description
PyC3Dserver is a python inteface of C3Dserver using PyWin32.
Installation
PyC3Dserver can be installed from PyPI using pip
on Python>=3.7.
pip install pyc3dserver
Prerequisites
C3Dserver x64 edition (for Windows x64 platforms) installation: https://www.c3dserver.com/
Usage
Most of numerical inputs and outputs for PyC3Dserver will be in the form of NumPy arrays. So let's import NumPy module.
import numpy as np
After the installation of PyC3Dserver, you can import it as follows:
import pyc3dserver as c3d
You can get the COM object of C3Dserver like this. You need to use this COM object while you are working with PyC3Dserver module.
# Get the COM object of C3Dserver
itf = c3d.c3dserver()
Then, you can open a C3D file.
# Open a C3D file
ret = c3d.open_c3d(itf, "sample_file.c3d")
Following functions are the most useful ones to extract the information from a C3D file. All the outputs are python dictionary types.
# For the information of header
dict_header = c3d.get_dict_header(itf)
# For the information of all groups
dict_groups = c3d.get_dict_groups(itf)
# For the information of all markers(points)
dict_markers = c3d.get_dict_markers(itf)
# For the information of all forces/moments
dict_forces = c3d.get_dict_forces(itf)
# For the information of all analogs(excluding or including forces/moments)
dict_analogs = c3d.get_dict_analogs(itf)
If you made any modification in the C3Dserver and want to save it, you need to use the following function explicitly.
# Save the C3D file from C3Dserver
ret = c3d.save_c3d(itf, "new_file.c3d")
After all your processes, it is recommended to close the C3D file from C3Dserver.
# Close the C3D file from C3Dserver
ret = c3d.close_c3d(itf)
Examples
There are more functions to get the information of individual markers and analogs. Also there are other functions for editing C3D files. You can find some examples here.
Limitations
PyC3Dserver tries to implement some useful functions using C3Dserver internally, but it does not cover full potential features of C3Dserver. You can develop your own functions using the COM object of C3Dserver in Python.
And PyC3Dserver is under heavy development so that many things may change during this period.
Dependencies
References
Python IDE recommendation
- Spyder for MATLAB friendly users
- Visual Studio Code
Acknowledgement
This work was funded by the European Union's Horizon 2020 research and innovation programme (Project EXTEND - Bidirectional Hyper-Connected Neural System) under grant agreement No 779982.
How to cite this work
License
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 pyc3dserver-0.2.0.tar.gz
.
File metadata
- Download URL: pyc3dserver-0.2.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/0.0.0 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4a7a3606356a66d24d09fb8e23c3e37038a9ab9fcb6efc7bfb591dab114375a |
|
MD5 | 791ee98054189a0e355ecb487dfd8a43 |
|
BLAKE2b-256 | 70c09be04677ffcad95dbc4f72de87b1c45741ced388fbb3ed5c97ad289b9733 |
File details
Details for the file pyc3dserver-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: pyc3dserver-0.2.0-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/0.0.0 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97f69461f800f00b12bf203ffdb5226915d91b53efee78f7a89cfad58d7c4572 |
|
MD5 | c9087a4b8359ec8c280db55da99cf410 |
|
BLAKE2b-256 | 2b3d066e80444f57267697939c9c5e15d3afb6332db15e13978699aef93e0a10 |