asammdf
ASAM MDF measurement data file parser
What it is and what it does
asammdf is a parser and editor for ASAM MDF measurement data files used in automotive and industrial testing. It reads MDF versions 2, 3, and 4, extracts channels and signals, and supports operations like filtering, time-slicing, and format conversion. The library is built around a Signal class for unified handling of multi-rate time-series data from different sources, which is more flexible than pandas DataFrames when channels have mismatched time bases.
The package depends on numpy, pandas, lxml, and several compression libraries (lz4, zstd, isal) to handle large measurement files efficiently. It includes support for CAN and LIN bus logging extraction, attachment handling, and export to multiple formats (HDF5, Matlab v7.3, CSV, parquet). The library targets Python 3.10+ and is actively maintained with a stable, production-ready status.
Use it for:
- Extract and plot specific signals from automotive test measurement files for analysis and visualization.
- Filter a subset of channels from a large MDF file and cut to a time window for focused analysis.
- Convert MDF v3 or v4 files to v4.10 format or export to pandas/HDF5 for downstream processing.
- Parse CAN bus logging measurements and extract signals using a CAN database (.dbc or .arxml).
- Merge multiple MDF files with the same structure while handling large files on resource-constrained systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
asammdf parses, edits, and exports ASAM MDF measurement data files (versions 2, 3, and 4), supporting CAN/LIN bus logging, channel filtering, time-domain operations, and conversion to pandas, HDF5, Matlab, CSV, and parquet formats.
Yes, with conditions. Install if you work with ASAM MDF files and need a Python-native parser with active maintenance and no known vulnerabilities. The LGPLv3+ copyleft license is a blocker for proprietary software distribution; the medium install friction (12 dependencies) is manageable for most environments. The 801 GitHub stars and recent activity (9 days since last release) indicate a stable, well-supported project.
Install
asammdf on PyPI
pip
pip install asammdfuv
uv add asammdfpoetry
poetry add asammdfInstalling asammdf
Before you install
Medium install friction due to 12 runtime dependencies including numpy, pandas, lxml, and compression libraries (lz4, zstd, isal). Actively maintained with recent releases; last commit 2026-08-06 and 801 GitHub stars indicate stable, ongoing development.
License in practice
LGPLv3+ copyleft license requires derivative works to be licensed under compatible terms and source code to be made available; acceptable for internal use and open-source projects, but restrictive for proprietary software distribution.
Quickstart
from asammdf import MDF
mdf = MDF('sample.mdf')
speed = mdf.get('WheelSpeed')
short = mdf.filter(['WheelSpeed']).cut(start=10, stop=12)
short.convert('4.10').save('output.mf4')
Requires Python >= 3.10; MDF file must be a valid ASAM MDF v2, v3, or v4 file.
Verify before relying
- Performance comparison claims ('faster than other Python-based mdf libraries') lack quantitative benchmarks in the fact sheet.
- Actual memory footprint and scalability limits for 'large files' (e.g., 5GB merges) are not specified.
- Whether CAN/LIN database support (.dbc, .arxml) is fully functional or experimental.
Package facts
| License | LGPLv3+ (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 12 — chardet, canmatrix, isal, deflate, lxml, lz4, numexpr, numpy, pandas, python-dateutil, typing-extensions, zstd |
| Maintenance | actively maintained — 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,566,663/month — #3,756 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: asammdf-8.8.23-cp310-abi3-macosx_11_0_arm64.whl; asammdf-8.8.23-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; asammdf-8.8.23-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; asammdf-8.8.23-cp310-abi3-win_amd64.whl
Keywords: read, reader, edit, editor, parse, parser, asam, mdf, measurement
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
canmatrixCanmatrix parses, manipulates, and converts CAN…
permissive · top 5,000 on PyPI
ldfparserParses LIN Description Files (LDF) to extract…
permissive · top 5,000 on PyPI
cantoolsCantools parses automotive CAN bus database…
permissive · top 5,000 on PyPI
npTDMSRead and write TDMS files (LabVIEW data format)…
copyleft · top 15,000 on PyPI
mat73Loads MATLAB 7.3 .mat files (stored as HDF5)…
copyleft · top 15,000 on PyPI
utideUTide performs tidal analysis and prediction on…
permissive · top 15,000 on PyPI
pymatreaderReads MATLAB .mat files in both legacy and…
permissive · top 15,000 on PyPI
line-protocol-parserParses InfluxDB line protocol strings into…
permissive · top 15,000 on PyPI
GridDataFormatsGridDataFormats reads and writes n-dimensional…
copyleft · top 15,000 on PyPI
pyEDFlibpyEDFlib reads and writes EDF+/BDF+ biomedical…
permissive · top 15,000 on PyPI