A Python decoder for Sentinel-1 Level 0 files. The Level 0 format consists of the raw space packets downlinked from the Sentinel-1 spacecraft. This package decodes these packets and produces the raw I/Q sensor output from the SAR instrument, which can then be further processed to focus a SAR image.
An example Jupyter notebook demonstrating the process of decoding Level 0 data and forming an image is available on GitHub here or on nbviewer.org here.
This code was originally based on an implementation in C by jmfriedt, which can be found here.
The core decoding functions are implemented in Rust and run multithreaded, so I/Q extraction is quite fast. Bypass, 3/4/5-bit BAQ, and FDBAQ are supported.
Full documentation — API reference, ESA spec links, and usage details.
pip install sentinel1decoderRequires Python 3.9–3.13, NumPy 2.0+, and Pandas.
import sentinel1decoder
l0file = sentinel1decoder.Level0File(filename)
l0file.packet_metadata # packet metadata
l0file.ephemeris # satellite ephemeris
iq_data = l0file.get_acquisition_chunk_data(0) # decode I/Q for acquisition chunk 0- Demo notebook — decoding Level 0 data and forming an image