---
id: sigmf
version: "1.11.1"
license: GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record)
license_treatment: copyleft
maintenance: active
---
# SigMF — Easily interact with Signal Metadata Format (SigMF) recordings.
License: copyleft · Maintenance: active · Downloads: 74.3K/mo
## 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 above — 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
pip install sigmf
uv add sigmf
poetry add sigmf
## Installing 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. Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record) (copyleft)
- Python support: supports_current
- Install friction: low
- Maintenance: active
- Downloads: 74.3K/month (top 15,000 on PyPI)
- Known vulnerabilities: none known
## Tags
signal metadata format library, sigmf recording reader writer, RF time series metadata, gnuradio signal format, compressed signal archive, WAV metadata extraction, radio signal recording, signal-processing, radio-frequency, metadata-format
[View on SkillFed](https://skillfed.io/packages/sigmf) · [View on PyPI](https://pypi.org/project/sigmf/)