Code for reconstructing the spatiotemporal distribution of radioactive iodine from thyroid measurements and movement profiles using Neural Radiance Fields or 3D Gaussian Splatting
This project was developed with Python 3.11. Ensure that you have the correct version of Python installed on your system. The Python version used can be determined as follows:
python --versionWe recommend using a virtual environment. Such an environment can be created via an IDE or using the following console command:
python -m venv venvThis virtual environment must then be activated for the currently active console. This step is necessary each time the programme is used. On Linux:
source venv/bin/activateOn Windows (with PowerShell):
venv/bin/Activate.ps1The required software packages must then be installed in the virtual environment:
python -m pip install -r requirements.lock.txtAll necessary packages are also listed in the file requirements.txt,
but without specific version information.
To generate a graph using a configuration file, the following command can be used:
python -m reconstruction.generate.graph <path to configuration file>The resulting graph file is saved in the folder where the configuration file is located.
The RODOS scenario files can be converted to EPSG:25832 using the following command:
python -m reconstruction.scenario.convert <path to scenario CSV file>These files must then be listed in a file scenario.json under their respective isotopes,
for example:
{
‘I131’: ‘I131.csv’,
‘I132’: ‘132.csv’
}This file can then be passed to the following command to generate the files save.json and save_array.npy.
The programme can work with these files.
The command for this is:
python -m reconstruction.scenario <path to scenario.json>The experiments can then be run with the following command:
python -O -m reconstruction.benchmark all <path to reconstruction>The implementation is located in reconstruction/.
It is divided into different modules.
We briefly describe the most important components below.
The pipeline that executes all experiments is defined in reconstruction/benchmark.
Of particular note here is reconstruction/benchmark/__init__.py,
which defines the pipeline flow in the two phases prepare and reconstruct.
The individual steps in this sequence are imported from the other modules in
reconstruction/benchmark.
The calculation of path and prior noise is also implemented in this module in the
files noise_exposure.py
and noise_prior.py.
The file benchmark/README.md contains further information.
The module reconstruction/config contains the definitions for the
configuration file of the generator (AP 2).
The model reconstruction/experiments contains the definitions
for performing the experiments.
This includes one module per implemented method
(cuboid_splatting,
inverse_bayes,
inverse_rendering,
linear_optimisation,
stochastic_optimisation),
as well as the modules comparison and
evaluation, each of which contains code for evaluating
the experiment runs.
In particular, evaluation
implements all evaluation metrics.
The module reconstruction/exposure contains the implementations
for loading protection factors and calculating the measured exposures at the end of the paths.
The module reconstruction/generate implements the generators
for road networks and movement profiles.
The use of the graph generator is described above.
The path generator is part of the experiment pipeline and does not need to be executed separately.
The module reconstruction/graph implements the graphs (road networks),
their components and the necessary algorithms on them.
The module reconstruction/path implements the data structures
that represent the paths (Bewe
This code was developed in the research project "Auswertung von Schilddrüsen-Messungen und Bewegungsprofilen zur Ermittlung der Iod-Expositionen mit KI-Verfahren" (Evaluation of thyroid measurements and movement profiles for determining iodine exposure using AI methods). The study was supported by the Federal Ministry for the Environment, Climate Action, Nature Conservation and Nuclear Safety under contract 3622S62583. Its contents are solely the responsibility of the authors.
A demonstrator with precomputed results can be found online: https://app.bfs.v2.singular-it-test.de/
When referring to this code, please cite the following peer-reviewed paper:
M. Friedrich, M. Böckel, O. Meisenberg, K. Meisenberg, M. Hartwig. Learning from 3D image reconstruction: Reconstructing spatiotemporal distributions of radioactive iodine after nuclear accidents. Science of the Total Environment 2025, doi.org/10.1016/j.scitotenv.2025.181159
Regarding the methods of artificial intelligence:
Dr. Mattis Hartwig
(Executive Assistant: Jennifer Gronau, jennifer.gronau@singular-it.de, Tel.: +49 1556 6120753)
singularIT GmbH
Mühlenbrücke 1
23552 Lübeck
HRB 33054 / Amtsgericht Leipzig
directors: Felix Hammann, Dr. Mattis Hartwig
phone: +49 176 555 38 737 – website: http://www.singular-it.de/
Regarding the radiological fundamentals:
Oliver Meisenberg
Federal Office for Radiation Protection
Incorporation Monitoring | MB 5
Ingolstadter Landstrasse 1, 85764 Oberschleissheim, Germany
phone: +49 30 18333-2430
e-mail: omeisenberg@bfs.de