OpenXDF is a Python module built for interacting with Open eXchange Data Format files.
OpenXDF files are XML-based header files that provide all of the information necessary to interpret a signal data file. This module gives users simple methods of accessing the data stored in these documents, and helps associate the header information stored in .xdf
files together with the raw data it's referencing.
$ pip install openxdf
Currently requires Python 3.6 with pipenv
installed.
>>> import openxdf
>>> xdf = openxdf.OpenXDF("/path/to/file/.../example.xdf")
>>> xdf.header
{"ID": "Example", "EpochLength": 30, "FrameLength": 1, "Endian": "little",
"File": "Example.rawdata"}
>>> xdf.sources
[{"SourceName": "FP1", "Unit": 1e-06, "UseGridScale": "false",
"MinSamplingRate": 200, "MinSampleWidth": 1, "Ignore": "false",
"PhysicalMax": 3199.9, "Signed": "true", "SampleWidth": 2,
"SampleFrequency": 200, "DigitalMax": 32767, "DigitalMin": -32768,
"PhysicalMin": -3200, "DigitalToVolts": 0.0976563},
{...},
]
>>> signals = openxdf.Signal(xdf, "/path/to/file/.../example.data")
>>> signals.to_numeric(["FP1", "EOG"])
{"FP1": [[100, -10, 5, -25,...], [200, -20, 10, -50, ...]],
"EOG": [[10, -35, 25, -40,...], [65, 20, -100, -10, ...]]}
>>> signals.to_edf("/output/path/.../example.edf")
Please checkout a development branch for whatever features you want to work on.
make dev-tests
make dev-format
Our group uses Semantic Versioning for versioning.
- Ryan Opel
This project is licensed under the GNU General Public License v2.0 - see LICENSE for details.