SigMF
Easily interact with Signal Metadata Format (SigMF) recordings.
What it is and what it does
sigmf is a Python library for reading and writing Signal Metadata Format (SigMF) recordings, which is a standard format for storing RF (radio frequency) time-series data along with associated metadata. It implements the SigMF specification and handles both raw SigMF files and compressed archives (gzip, xz, zip), as well as importing from other RF formats like WAV, CDIF, and Signal Hound Spike XML.
The library provides a simple API: load recordings with `fromfile()` or create them from numpy arrays with `fromarray()`, then access samples by index, query metadata like sample rate, and write recordings back to disk. It depends on numpy for array handling, jsonschema for metadata validation, and defusedxml for safe XML parsing. The package is compatible with Python 3.7 through 3.14 and is actively maintained.
Use it for:
- Load RF recordings captured by software-defined radio (SDR) systems for signal analysis and processing.
- Convert between SigMF and other signal formats (WAV, CDIF, XML) while preserving metadata.
- Create and annotate synthetic RF time-series data with frequency, timestamp, and capture metadata.
- Read compressed signal archives without manual decompression.
- Validate signal metadata against the SigMF specification using jsonschema.
- Build gnuradio-compatible signal workflows that require standardized metadata.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes Signal Metadata Format (SigMF) recordings, supporting multiple compression formats and RF time-series file types including WAV, CDIF, and XML.
Yes. sigmf is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and installs with low friction. The copyleft license is standard for signal-processing tools in the radio/gnuradio ecosystem. Install it if you work with RF recordings or need to read/write SigMF files.
Install
sigmf on PyPI
pip
pip install sigmfuv
uv add sigmfpoetry
poetry add sigmfInstalling SigMF
Before you install
Low friction: pure Python wheel with three lightweight runtime dependencies (numpy, jsonschema, defusedxml). Actively maintained with a commit as recent as 2026-01-13 and no known vulnerabilities.
License in practice
Licensed under GNU Lesser General Public License v3 or later (copyleft). You may use and modify sigmf in proprietary applications, but modifications to sigmf itself must be shared under the same license.
Quickstart
pip install sigmf
import sigmf
# Read SigMF recording
meta = sigmf.fromfile("recording.sigmf-meta")
samples = meta[0:1024]
sample_rate = meta.sample_rate
# Write SigMF
import numpy as np
data = np.array([0.1 + 0.2j, 0.3 + 0.4j], dtype=np.complex64)
meta = sigmf.fromarray(data)
meta.tofile("recording")
Package facts
| License | GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record) (copyleft) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — numpy, jsonschema, defusedxml |
| Maintenance | actively maintained — 76 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,282/month — #14,854 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sigmf-1.11.1-py3-none-any.whl
Keywords: gnuradio, radio
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
audiofileReads and writes audio files across formats…
permissive · top 15,000 on PyPI
miniaudioMiniaudio provides Python bindings for…
permissive · top 15,000 on PyPI
edfioedfio reads and writes EDF, EDF+C, BDF, and…
permissive · top 15,000 on PyPI
rf-protocolsDecodes and encodes radio frequency signals for…
permissive · top 15,000 on PyPI
descript-audio-codecCompresses audio into discrete codes at 8 kbps…
permissive · top 15,000 on PyPI
scikit-rfscikit-rf is an object-oriented Python library…
permissive · top 15,000 on PyPI
fmod-toolkitExtracts and exports audio from FMOD sound bank…
permissive · top 15,000 on PyPI
doppler-dspProvides a C99 digital signal processing…
permissive · top 15,000 on PyPI
soundfileReads and writes audio files in formats like…
permissive · top 1,000 on PyPI
stftpitchshiftShifts the pitch and timbre of audio signals…
permissive · top 15,000 on PyPI