Skip to content

Code for reconstructing the spatiotemporal distribution of radioactive iodine from thyroid measurements and movement profiles using Neural Radiance Fields or 3D Gaussian Splatting

License

Notifications You must be signed in to change notification settings

OpenBfS/iodine-reconstruction

Repository files navigation

iodine-reconstruction

Code for reconstructing the spatiotemporal distribution of radioactive iodine from thyroid measurements and movement profiles using Neural Radiance Fields or 3D Gaussian Splatting

Installation

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 --version

We recommend using a virtual environment. Such an environment can be created via an IDE or using the following console command:

python -m venv venv

This 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/activate

On Windows (with PowerShell):

venv/bin/Activate.ps1

The required software packages must then be installed in the virtual environment:

python -m pip install -r requirements.lock.txt

All necessary packages are also listed in the file requirements.txt, but without specific version information.

Usage

Generating graphs

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.

Converting scenarios

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>

Configuring experiments

The experiments can then be run with the following command:

python -O -m reconstruction.benchmark all <path to reconstruction>

Structure of the software

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

Development of the code

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

Contact

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

About

Code for reconstructing the spatiotemporal distribution of radioactive iodine from thyroid measurements and movement profiles using Neural Radiance Fields or 3D Gaussian Splatting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages