UncertRadio

Software for determining characteristic limits in accordance to ISO 11929 for radioactivity measurements

The software UncertRadio enables the automated calculation of characteristic threshold values of activity mesurements according to ISO 11929. These include the activity concentration or specific activity and its combined standard measurement uncertainty, an uncertainty budget and values of decision threshold and the detection limit. The uncertainties of the single output values are calculated using numerical error propagation according to ISO GUM.

UncertRadio can be used for a variety of applications from Alpha, Beta and Gamma measurements, but also from dosimetry. It has the capability to derive the characteristic values for up to three radionuclides simultaneously, whose output quantity values, e.g. activity values, of which are dependent from each other due to the measurement. Therefore, it is especially suited for modern liquid scintillation measurement procedures of e.g. Strontium isotopes.

UncertRadio Monte-Carlo result page

There are two main analytical approaches used within the software differing by the equations for the evaluation:

  • procedures without linear unfolding: the basic evaluation model is linear in the net count rate; numerically applied propagation of uncertainty values of input quantities (Kanisch, 2016a),

  • procedures with linear unfolding: the model in addition includes linear least squares procedures for fitting e.g. for decay or build-up curves (Kanisch, 2016b).

Alternatively, an evaluation by Monte Carlo simulation may be used within both approaches. This represents the method of propagating whole distributions and is in advantage in the case of significant deviations from the normal distribution; see ISO GUM Supplements 1 and 2.

Applying UncertRadio means that the user should be able to formulate the equations used for the calculating values of the output quantity. A special advantage is, however, that no partial derivatives are to be supplied. For a better understanding of the course of the software and of user-supplied equations and functions an extensive bundle of application examples as project files is included into the installation.

Many of the application examples are from the working group “AK-SIGMA” of the “German-Suisse Association for Radiation Protection”, from Measuring Instructions of the German Co-ordinating Offices and from the literature. These examples including those of a German National Supplement 1 of DIN ISO 11929 (2014) as well as the examples from the more recent standard ISO 11929-4 contributed to the validation of UncertRadio.

The UncertRadio HTML documentation is included in every release and can be accessed offline using the help buttons. Furthermore, it is available online on GitHub Pages.

The author is grateful for the feedback and new requirements of the user-community, especially from federal coordination centres and the laboratiories of the German Federal States working after AVV-IMIS on monitoring of environmental radioavitiy, and significantly improved the quality and usability of UncertRadio.

The actual version is 2.6.0.

Since version 2.5.1, the source code is available online and UncertRadio can be created from the sources. The associated installation guide is given below. Pre-compiled packages are still provided for Windows. These consist of a packed archive containing all required files. After unpacking, the program can be started with the “UncertRatio.exe” found within the “bin/” subdirectory.

Version 2.4.32 is the last version that can be installed with an installation program for Windows.

From version 2.1.4 (2017) to 2.4.32 the download consisted of one executable file, which combines all required components of teh Software (help-files, short installation guide, collection of validated example projects). Additionally, a brief instruction to use the software was provided for download. The private or commercial use of the software is free of charge.

Since version 1.08 (2013) UncertRadio can be used as an interface between the software for acquiring measurement data and the transfer of characteristic values into a modern laboratory information system. The csv format is used for data import and export.

The program’s author is Günter Kanisch. Contact person for questions and suggestions is Dr. Marc-Oliver Aust from the “Federal co-ordinating Office for fish and fishery products, crustaceans, mollusks and marine algae” in the Thünen-Institute of Fisheries Ecology.

Important Note:

UncertRadio is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

UncertRadio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with UncertRadio. If not, see http://www.gnu.org/licenses/.

The software was developed by the author following state-of-the-art of science, standardization and technology and validated with respect to the correct mathematical treatment of the model input equations of the evaluation model. Nevertheless, no warranty is given for the correctness of results obtained by the user working with UncertRadio, neither by the author nor by TI and BMUV, and no responsibility is taken for emerging demands by any third party.

How to cite

If you are using UncertRadio, please consider citing the following papers:

KANISCH, G.; OBER, F.; Aust, M.O.: **UncertRadio**: Software for determining characteristic limits in accordance to DIN EN ISO 11929 for radioactivity measurements
Journal of Open Source Software (JOSS), see above

KANISCH, G.: Generalized evaluation of environmental radioactivity measurements with UncertRadio. Part I: Methods without linear unfolding.
Appl. Radiat. Isot. 110, 2016, 28–41
http://dx.doi.org/10.1016/j.apradiso.2015.12.003

KANISCH, G.: Generalized evaluation of environmental radioactivity measurements with UncertRadio. Part II: Methods with linear unfolding.
Appl. Radiat. Isot. 110, 2016, 74–86
http://dx.doi.org/10.1016/j.apradiso.2015.12.046

How to build UncertRadio

Requirements for Windows

Download and install MSYS2 at https://www.msys2.org/

Start the MSYS2 UCRT64 environment and update the system

pacman -Syuu

Restart the MSYS2 UCRT64 terminal if required

Install required tools and programms

pacman -S git make mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-gcc-fortran mingw-w64-ucrt-x86_64-gtk3 mingw-w64-ucrt-x86_64-plplot mingw-w64-ucrt-x86_64-wxwidgets3.2-msw mingw-w64-ucrt-x86_64-lapack mingw-w64-ucrt-x86_64-python-sphinx mingw-w64-ucrt-x86_64-python-myst-parser

Please note:

We switched to the UCRT64 environment as suggested by MSYS2. Compiling UncertRadio using the MINGW64 environment should work when using the -G "MinGW Makefiles" switch. Nonetheless, you need to install the corresponding programs with pacman -S ....

Requirements for Linux

Please make sure you have installed the following tools including the development files:

  • git

  • cmake

  • gcc-fortran (and corresponding gcc-toolchain)

  • lapack

  • gtk3

  • plplot (see), make sure the fortran bindings are included and the cairo driver is installed

To build the documentation, the following additional tools are required:

  • python3

  • python-sphinx >= 8.0

  • myst-parser

Most of these tools are available via the package manager of common Linux distributions.

We were able to successfully compile UncertRadio using the following distributions:

  • Arch linux

    pacman -Syu
    pacman -S base-devel git cmake gcc-fortran lapack gtk3
    

    Note: Arch linux is not providing plplot in their repositories. Thus, you have to compile it from the source , or use the AUR package

  • Debian 12 (bookworm)

    apt-get update && apt-get upgrade
    apt-get install build-essential gfortran git libgtk-3-dev libplplot-dev plplot-driver-cairo liblapack-dev
    

    Note: To build the documentation under Debian 12, you must install python-sphinx via pip, as the system’s version is too old. It is recommended to use a virtual environment:

    # Install pip and python venv
    apt-get install python3-pip python3.11-venv
    # Create and activate the virtual environment
    python3 -m venv venv
    source venv/bin/activate
    # Install the required packages
    pip install -r docs/requirements.txt
    
    # Optional build the documentation directly
    cd docs
    python3 make_docs.py
    

    If you are using debian 13 (trixie), just install these with apt-get install python3-sphinx python3-myst-parser.

Actually build UncertRadio

Clone the repository:

git clone https://github.com/OpenBfS/UncertRadio.git

Now it should be possible to build UncertRadio.

cd UncertRadio
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4

The -DCMAKE_BUILD_TYPE switch can be omitted to compile UR in debug mode. When using the MSYS2 MINGW64 environment you have to change the generator using -G "MinGW Makefiles", due to a gtk3-fortran issue:

cmake -B build -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles"

Install UncertRadio (mainly intended for Windows)

The directory can be changed using the –prefix option:

cmake --install build --prefix=UR2_5

Create an archive to distribute UncertRadio:

tar -czvf UR2_5.tar.gz UR2_5

Update

To get the latest version just update the main branch

git checkout main
git pull

Now restart the build and install process (see above).

Build the Documentation

The UncertRadio HTML documentation is available online on GitHub Pages. However, it can be built from the source files in two ways. The easiest way is to include the cmake option BUILD_DOCS=T and build the documentation together with the code.

cmake -B build -DBUILD_DOCS=T -DCMAKE_BUILD_TYPE=Release

However, you can build it on its own by running the make_docs.py file in the docs folder:

cd docs
python make_docs.py

Starting UncertRadio

After running the install command, UncertRadio can be started by running the executable in the created bin directory:

./UR2_5/bin/UncertRadio.exe

Otherwise using linux, the install step can be skiped and UncertRadio can be started with the executable within the main directory of the repository:

./UncertRadio

Running the included tests

There are about 70 examples in German and English language included in the pros directory. To check if UncertRadio is running correctly, you can start its included testsuite by selecting “Options/QC batch test” from the main menue. By default, it opens all the included projects (defined in the included BatListRef_v06.txt) and compares their results. By default (and on the first start of this dialog), the file is already selected. The file for the output file can be left empty. UncertRadio will create an output file automatically. Any deviations that may occur are reported.

In addition, all project tests mentioned above and some more internal tests can be run from the command line.

./UncertRadio run_tests

To get a better understandig about the project structure, all projects can be individually accessed through the ‘Open Project’ dialog, which is accessible via the main menu or the ‘Load Project’ icon. For most of the projects, the expected results are included in the description tab.

To be done

  • [x] carefully correct all (old) Licence informations

    • [x] add the licenses of the included libraries

    • [x] add a license for UR2

  • [x] translate the README to english

  • [x] add linux compilation instructions

  • [x] add a JOSS Paper draft (see paper branch)

  • [x] check all included examples

  • [x] create automatic tests (partly done, run: ./UncertRadio run_tests)

  • [x] create a sphinx documentation and migrate the (Windows-chm) help files

  • [ ] translate the documentatation (partly done)

  • [x] publish the documentation online

  • [ ] create an automatic building and upload system for Windows binaries

  • [ ] update the function parser to a potentially faster version

  • [ ] refactor the logging system (there are still unopened files)

  • [ ] provide linux binaries (as AppImage or Flatpak?)

  • [ ] remove not used and not initiated variables

  • [x] refactor and simplify the complete translation

  • [ ] separate GUI and backend (see gtk3-fortran branch)

Known issues

You tell us ;) -> please use the issue tab or create a pull request. We are grateful for every help. Please get involved.