-- aerdemir 2016-04-14 17:10:11 This specification is asking for input from the community. Please provide your feedback

Target Outcome

To process Tekscan pressure data for a static loading condition (exported as csv file) and generate:



  • Python. Python is a programming language (GPL compatible license, http://www.python.org/). Python is the default scripting environment for Open Knee(s); for more details, please refer to Infrastructure/ScriptingEnvironment.

  • SciPy. SciPy is a Python based open-source software for mathematics, science, and engineering (BSD license, see http://www.scipy.org/).

  • Spyder. Spyder is an interactive development environment for Python with advanced editing, interactive testing, debugging and introspection features (MIT license, see http://code.google.com/p/spyderlib/).

  • npTDMS. npTDMS is Cross-platform, NumPy based module for reading TDMS files produced by LabVIEW. TDMS files are the binary files used for the robotic testing raw data. (LGPL license, see https://pypi.python.org/pypi/npTDMS/).

Previous Protocols


Python Script




Import Tekscan Parameters

The script is robust in that in imports both values and units (defaults listed below) from the csv file. Tekscan data imported includes:

Compute contact metrics

Compute averaged pressure array data


XML file

Includes (as specified above):

Average pressure sensor image

File type: png

Sample Results

Following are example output files (xml, png) for analysis of oks007 at a flexion angle of 60 degrees and and quadriceps force of 600N.

XML file

        <Input_File type="csv">oks007-intact-60-600-2_M.csv</Input_File>
                <rows units="sensels">44</rows>
                <cols units="sensels">44</cols>
                <sensel_area units="mm^2">1.6129</sensel_area>
                <noise_threshold units="raw">3</noise_threshold>
                <scale_factor units="MPa/raw">0.0011882</scale_factor>
                <saturation_pressure type="Exponential Extrapolation" units="MPa">7.34773</saturation_pressure>
                        <Point num="1">
                                <force units="N">49.9998</force>
                                <sum units="raw">3173</sum>
                                <loaded_cells units="count">109</loaded_cells>
                        <Point num="2">
                                <force units="N">100.0</force>
                                <sum units="raw">5370</sum>
                                <loaded_cells units="count">135</loaded_cells>
                        <Point num="3">
                                <force units="N">200.0</force>
                                <sum units="raw">9195</sum>
                                <loaded_cells units="count">176</loaded_cells>
                        <Point num="4">
                                <force units="N">400.0</force>
                                <sum units="raw">15543</sum>
                                <loaded_cells units="count">231</loaded_cells>
                        <Point num="5">
                                <force units="N">599.998</force>
                                <sum units="raw">21169</sum>
                                <loaded_cells units="count">268</loaded_cells>
                <area units="mm^2">783.8694</area>
                <force units="N">387.19987076</force>
                        <value units="MPa">2.1456</value>
                                <row units="sensels">19</row>
                                <col units="sensels">40</col>
        <Pressure_Array processing="averaged" type="numpy array" units="MPa">array([[0.0000,...],...])</Pressure_Array>

Average pressure sensor image


Anatomical orientation of pressure sensor

oks007-superior_M_AVG.png oks007-inferior_M_AVG.png oks007-medial_M_AVG.png oks007-lateral_M_AVG.png