Installation

setigen currently targets Python 3.10 through 3.14.

You can use pip to install the package automatically:

pip install setigen

Alternately, you can clone the repository and install it directly. At the command line, execute:

git clone git@github.com:bbrzycki/setigen.git
python -m pip install .

For local development, install the package in editable mode with the project extras:

python -m pip install -e ".[dev]"

setigen includes a compatibility pin on setuptools because blimpy currently imports pkg_resources at runtime. Normal installs pick this up automatically.

One of the dependencies for setigen is blimpy, which is used for working with BL filterbank data products. Note that you can still generate synthetic data frames even without observational data!

Because of how the bitshuffle package was written, if you are working with HDF5 data products (e.g. ending with “.hdf5” or “.h5”), you may also need to do the following, especially if you’d like to save setigen frame data as HDF5 files:

pip install -U git+https://github.com/h5py/h5py
pip install git+https://github.com/kiyo-masui/bitshuffle

Note: this can lead to h5py compatibility issues with older versions of Tensorflow. Some work-arounds: if possible, work primarily with filterbank files, or use multiple Python environments to separate data handling and Tensorflow work.

To use GPU with setigen.voltage

setigen.voltage’s GPU acceleration is powered by CuPy (https://docs.cupy.dev/en/stable/install.html). Installation is not required to use vanilla setigen or the voltage module, but it is highly recommended to accelerate voltage computations. Enable it with stg.voltage.set_backend('cupy') before constructing voltage objects. Use stg.voltage.set_backend('numpy') to force CPU execution. The legacy SETIGEN_ENABLE_GPU=1 environment variable is still supported for existing scripts. While it isn’t used directly by setigen, you may also find it helpful to install cusignal (https://github.com/rapidsai/cusignal) for access to CUDA-enabled versions of scipy functions when writing custom voltage signal source functions.