PyXDF
PyXDF is a Python importer for XDF files.
Sample usage
The following example loads minimal.xdf (which you can download from here) and prints/plots all markers:
import matplotlib.pyplot as plt
import numpy as np
import pyxdf
data, header = pyxdf.load_xdf("minimal.xdf")
for stream in data:
y = stream["time_series"]
if isinstance(y, list):
# list of strings, draw one vertical line for each marker
for timestamp, marker in zip(stream["time_stamps"], y):
plt.axvline(x=timestamp)
print(f'Marker "{marker[0]}" @ {timestamp:.2f}s')
elif isinstance(y, np.ndarray):
# numeric data, draw as lines
plt.plot(stream["time_stamps"], y)
else:
raise RuntimeError("Unknown stream format")
plt.show()
Note that you need to have matplotlib installed to run this example (which is not a dependency of PyXDF itself).
Command line interface (CLI)
PyXDF has a command line interface (CLI) with the following commands:
print_metadatawill print basic metadata for each found stream.python -m pyxdf.cli.print_metadata -f=/path/to/my.xdf
playback_lslwill open an XDF file, then replay its data in an infinite loop, but using current timestamps (this is useful for prototyping online processing):python -m pyxdf.cli.playback_lsl /path/to/my.xdf --loop
Installation
The latest stable version can be installed with pip install pyxdf.
For the latest development version, use pip install git+https://github.com/xdf-modules/pyxdf.git.
For maintainers
As soon as a new release is created on GitHub (using a tag labeled e.g. v1.16.3), a PyPI package is automatically created with the version number matching the release tag.
Release files for pyxdf 1.17.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyxdf-1.17.5.tar.gz | 35.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyxdf-1.17.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.2 kB
Release files / pyxdf-1.17.5.tar.gz
| Download URL | pyxdf-1.17.5.tar.gz |
|---|---|
| Size | 35.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97ab76e066855ed2233ebd8a2b046ea01306c5846a9471194c6dbc7e3a6a7bf4
|
|
BLAKE2b-256 checksum How to use checksums |
f6e90e34f94f443fa88d70ddce91d4f3fbce319165dee09309e6ba6029cb1eda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pyxdf-1.17.5-py3-none-any.whl
| Download URL | pyxdf-1.17.5-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3162772dba88ed4516956f91ec05ea87b8c93387a403dacb7497ffcd0ee345af
|
|
BLAKE2b-256 checksum How to use checksums |
922640408ec2d50b5a3794c1fbace10ca36882eb0d97bc2633d76e4edfb29efe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|