Skip to main content

Tools for radiation spectral analysis.

Project description

Becquerel is a Python package for analyzing nuclear spectroscopic measurements. The core functionalities are reading and writing different spectrum file types, fitting spectral features, performing detector calibrations, and interpreting measurement results. It includes tools for plotting radiation spectra as well as convenient access to tabulated nuclear data, and it will include fits of different spectral features. It relies heavily on the standard scientific Python stack of numpy, scipy, matplotlib, and pandas. It is intended to be general-purpose enough that it can be useful to anyone from an undergraduate taking a laboratory course to the advanced researcher.


pip install becquerel

Features in development (contributions welcome!)

  • Reading additional Spectrum file types (N42, CHN, CSV)
  • Writing Spectrum objects to various standard formats
  • Fitting spectral features (e.g., gaussian lines with different background models)

If you are interested in contributing or are want to install the package from source, please see the instructions in

Reporting issues

When reporting issues with becquerel, please provide a minimum working example to help identify the problem and tag the issue as a bug.

Feature requests

For a feature request, please create an issue and label it as a new feature.


External dependencies are listed in requirements.txt and will be installed automatically with the standard pip installation. They can also be installed manually with the package manager of your choice (pip, conda, etc). The dependencies beautifulsoup4, lxml and html5lib are necessary for pandas.

Developers require additional requirements which are listed in requirements-dev.txt. We use pytest for unit testing and encourage contributors to use pylint, pycodestyle, pydocstyle and yapf for proper code formatting.

Contribution guidelines

Contributions to becquerel are welcome and encouraged, whether it is reporting bugs, requesting features, or contributing code. Please follow these guidelines when contributing to this project.

Developer Instructions

pip install -r requirements.txt
pip install -r requirements-dev.txt
python develop

(It is more convenient to use develop so that the code is soft-linked from the installation directory, and the installed package will always use the current version of code.)

Running the tests

(Requires requirements-dev.txt to be installed) To run the tests using pytest, from the root directory of the repo:


(python test is still supported also.) By default, a code coverage report is printed to the terminal. Tests marked webtest or plottest are by default skipped for the sake of speed. To run all tests, clear the pre-configured markers option:

pytest -m ""

To produce an HTML code coverage report in directory htmlcov with line-by-line highlighting:

pytest --cov-report html:htmlcov

Code Style Guide

Use google standards


  • Use flake8 in your IDE
  • Use pylint from command line (as in style guide)

Checklist for code contributions:

  • <input type="checkbox" disabled="" /> Branch off of main and name the branch feature-XX or issue-XX
    • <input type="checkbox" disabled="" /> Develop the feature or fix
    • <input type="checkbox" disabled="" /> Write tests to cover all use cases
    • <input type="checkbox" disabled="" /> Ensure all tests pass (python test)
    • <input type="checkbox" disabled="" /> Ensure test coverage is >95%
    • <input type="checkbox" disabled="" /> Ensure there are no linter issues:
      • flake8 becquerel tests
      • pydocstyle becquerel tests
      • pylint becquerel tests
    • <input type="checkbox" disabled="" /> Spellcheck your code and docstrings
    • <input type="checkbox" disabled="" /> Check style is consistent with Google Python style guide
    • <input type="checkbox" disabled="" /> Push branch to GitHub and create a pull request to main

Copyright Notice

Becquerel v. 0.3.0, Copyright (c) 2017, The Regents of the University of California (UC), through Lawrence Berkeley National Laboratory, and the UC Berkeley campus (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved. If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at

NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit other to do so.

Project details

Download files

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

Files for becquerel, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size becquerel-0.3.0-py2.py3-none-any.whl (92.5 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size becquerel-0.3.0.tar.gz (81.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page