Skip to main content

Python utilities for Breakthrough Listen SETI observations

Project description

Build Status Documentation Status codecov JOSS status

Breakthrough Listen I/O Methods for Python.

Filterbank + Raw file readers

This repository contains Python 2/3 readers for interacting with Sigproc filterbank (.fil), HDF5 (.h5) and guppi raw (.raw) files, as used in the Breakthrough Listen search for intelligent life.

Installation

System Dependencies

Sometimes the pip installation can fail if a system dependency is not installed. To fix this, make sure you have curl and install the required system dependencies with the command bellow:

Debian/Ubuntu
curl https://raw.githubusercontent.com/UCBerkeleySETI/blimpy/master/dependencies.txt | xargs -n 1 sudo apt install --no-install-recommends -y

Manual Installation

The latest release can be installed via pip directly from this repository:

python3 -m pip install -U git+https://github.com/UCBerkeleySETI/blimpy

Or, the latest version of the development code can be installed from the github repo and then run python setup.py install or pip install . (with sudo if required), or by using the following terminal command:

python3 -m pip install -U https://github.com/UCBerkeleySETI/blimpy/tarball/master

To install everything required to run the unit tests, run:

python3 -m pip install -e .[full]

You will need numpy, h5py, astropy, scipy, and matplotlib as dependencies. A pip install should pull in numpy, h5py, and astropy, but you may still need to install scipy and matplotlib separately. To interact with compressed files, you'll need the hdf5plugin package too.

Note that h5py generally needs to be installed in this way:

$ python3 -m pip install --no-binary=h5py h5py

Command line utilities

After installation, some command line utilities will be installed:

  • watutil, Read/write/plot an .h5 file or a .fil file.
  • rawutil, Plot data in a guppi raw file.
  • fil2h5, Convert a .fil file into .h5 format.
  • h52fil, Convert an .h5 file into .fil format.
  • bldice, Dice a smaller frequency region from (either from/to .h5 or .fil).
  • matchfils, Check if two .fil files are the same.
  • calcload, Calculate the Waterfall max_load value needed to load the data array for a given file.
  • rawhdr, Display the header fields of a raw guppi file.
  • stax, For a collection of .h5 or .fil files, create a stack of waterfall plots as a PNG file.

Use the -h flag to any of the above command line utilities to display their available arguments.

Reading blimpy filterbank files in .fil or .h5 format

The blimpy.Waterfall provides a Python API for interacting with filterbank data. It supports all BL filterbank data products; see this example Jupyter notebook for an overview.

From the python, ipython or jupiter notebook environments.

from blimpy import Waterfall
fb = Waterfall('/path/to/filterbank.fil')
#fb = Waterfall('/path/to/filterbank.h5') #works the same way
fb.info()
data = fb.data

Reading guppi raw files

The Guppi Raw format can be read using the GuppiRaw class from guppi.py:

from blimpy import GuppiRaw
gr = GuppiRaw('/path/to/guppirawfile.raw')

header, data = gr.read_next_data_block()

or

from blimpy import GuppiRaw
gr = GuppiRaw('/path/to/guppirawfile.raw')

for header, data_x, data_y in gr.get_data():
    # process data

Note: most users should start analysis with filterbank files, which are smaller in size and have been generated from the guppi raw files.

Using blimpy inside Docker

The blimpy images are pushed to a public repository after each successful build on Travis. If you have Docker installed, you can run the following commands to pull our images, which have the environment and dependencies set up for you.

docker pull fx196/blimpy:py3_kern_stable

Here is a more complete guide on using blimpy in Docker.

Further reading

A detailed overview of the data formats used in Breakthrough Listen can be found in our data format paper. An archive of data files from the Breakthrough Listen program is provided at seti.berkeley.edu/opendata.

If you have any requests or questions, please lets us know!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blimpy-2.0.22.tar.gz (80.8 kB view details)

Uploaded Source

Built Distribution

blimpy-2.0.22-py3-none-any.whl (94.1 kB view details)

Uploaded Python 3

File details

Details for the file blimpy-2.0.22.tar.gz.

File metadata

  • Download URL: blimpy-2.0.22.tar.gz
  • Upload date:
  • Size: 80.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for blimpy-2.0.22.tar.gz
Algorithm Hash digest
SHA256 e9514fc3d109ac8060807ebb27c21b24ebca1bcf015282433d6a5ce001917dba
MD5 918a7537551443d137bb093230168c6f
BLAKE2b-256 9ab50c996c9c358319d661c27a0f4a5d62aa85b991be4116da8ce7451ec68e1c

See more details on using hashes here.

File details

Details for the file blimpy-2.0.22-py3-none-any.whl.

File metadata

  • Download URL: blimpy-2.0.22-py3-none-any.whl
  • Upload date:
  • Size: 94.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

File hashes

Hashes for blimpy-2.0.22-py3-none-any.whl
Algorithm Hash digest
SHA256 0d5ffd6f2950ab71f28d24e1b16d5eee562aacd38d0791f16f697aa515c5afa4
MD5 5f93ba1ea95307705a1667f02e791755
BLAKE2b-256 7d527387bd43a0b58fa9e428ee0f7d49a57721748619a600c3a8a6307ba0dcfb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page