Skip to content

Repository files navigation

Nuclear Masses

PyPI Python Version

Unit Tests codecov Read the Docs

DOI

Introduction

The package nuclearmasses provides convenient Python access to nuclear data published by the Atomic Mass Evaluation (AME) and NUBASE. These datasets are published in different, specialised formats, so nuclearmasses does the hard work of parsing and combining the data into a pandas DateFrame, making it simple to query and compare nuclear properties across different evaluations.

No guarantee is supplied with regards to the accuracy of the data presented. Estimated values are included, please always refer to the original sources. All data should, however, be accurate.

Documentation is here - https://nuclearmasses.readthedocs.io/

As a brief example, the combination of AME and NUBASE values from all years is available as a single DateFrame

>>> from nuclearmasses.mass_table import MassTable
>>> df = MassTable().data

You can then interrogate, or extract, whatever information you want. For example, how has the mass excess and its accuracy changed overtime for 190Re according to the AME

>>> df[(df['A'] == 190) & (df['Symbol'] == 'Re')][['TableYear', 'AMEMassExcess', 'AMEMassExcessError']]
       TableYear  AMEMassExcess  AMEMassExcessError
16054       1983     -35536.605             200.029
16055       1993     -35557.789             145.549
16056       1995     -35568.032             212.151
16057       2003     -35566.326             149.248
16058       2012     -35634.992              70.542
16059       2016     -35635.830              70.852
16060       2020     -35583.015               4.870

Mass tables

The data files released by the papers linked below are used to create the mass tables output by this code. There was no AME data published in 1997, but the 1995 AME matches the 1997 NUBASE according to section 4, "The tables" on P31 of these proceedings. As a result the 1997 NUBASE data is referred to as being from 1995 for simplicity when merging data.

There are published papers for 1971 and 1977, but I can't find the associated data files. If you are reading this and have a copy, know of someone with a copy, or have any information, please let me know via this issue #13

All data from the single NUBASE data file, the AME mass file and two reaction files are parsed and saved into the table. Details from the different sources are merged on A, Z and published year for each isotope, but otherwise, no comparison or validation is done on common values.

Installation and Setup

The package is available on the Python Package Index so can be installed via pip

pip install nuclearmasses

Or you can clone the latest version from github and install locally. All work is done on a feature branch so cloning and using main should be the same as using the latest installed version from pip. There may be some additional functionality, but nothing should have been removed.

git clone https://github.com/php1ic/nuclearmasses
cd nuclearmasses
pip install -e .

Contributing

Details about contributing to the project are in CONTRIBUTING

Known issues

  • #6 The decay mode field from the NUBASE data is stored 'as-is' from the file. It looks like it can be split on the ';' character for isotopes where there is more than one mode. A dictionary of {decay mode: fraction} may be the best way to store all of this information.
  • #7 Information from anything other than the ground state of an isotope is ignored when parsing the NUBASE file. The selection of what is and what is not included appears random to me which is why I simply ignored for the moment.

About

Python package to read nuclear mass files from the AME and NUBASE published datasets

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages