The Digital RF project encompasses a standardized HDF5 format for reading and writing of radio frequency data and the software for doing so. The format is designed to be self-documenting for data archive and to allow rapid random access for data processing.
This package includes:
digital_rfPython package- Tools for managing and processing Digital RF data
gr_digital_rfPython package for interfacing with GNU Radio- GNU Radio Companion blocks
thor.pyUHD radio recorder script- Example scripts and applications
Digital RF C and MATLAB libraries can be found at the official source code repository. To build from source, you must have the HDF5 library and headers installed.
For help and/or questions, contact the user mailing list.
If you plan on using Digital RF with GNU Radio, make sure to run the pip command in the same Python environment that your GNU Radio installation uses so that GNU Radio can find the packages. Depending on your GNU Radio installation, it may be necessary to add the Digital RF blocks to your GRC blocks path by creating or editing the GRC configuration file
| Unix (local): | $HOME/.gnuradio/config.conf |
|---|---|
| Windows (local): | %APPDATA%/.gnuradio/config.conf |
| Unix (global): | /etc/gnuradio/conf.d/grc.conf |
| Custom (global): | {INSTALL_PREFIX}/etc/gnuradio/conf.d/grc.conf |
to contain:
[grc]
local_blocks_path = {PIP_PREFIX}/share/gnuradio/grc/blocks
(replacing {PIP_PREFIX} with the pip installation prefix, "/usr/local" for example).
The following code will load and read data located in a directory "/data/test".
Load the module and create a reader object:
import digital_rf as drf
do = drf.DigitalRFReader('/data/test')
List channels:
do.get_channels()
Get data bounds for channel 'cha':
s, e = do.get_bounds('cha')
Read first 10 samples from channel 'cha':
data = do.read_vector(s, 10, 'cha')