Additional information can be found on the Discussion page.

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, 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

  • Spyder. Spyder is an interactive development environment for Python with advanced editing, interactive testing, debugging and introspection features (MIT license, see

  • 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

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

Specifications/PressureAnalysis (last edited 2019-04-17 17:59:52 by owings)