Package: tofu
tofutofustands forTomography forFusion, it is an IMAS-compatible open-source machine-independent python library.tofu tries to take an active part in the plasma community open-source python environment, likePlasmaPy, with which some degree of interoperability is being implemented.It aims at providing thefusionandplasmacommunity with an object-oriented, transparent and documented tool for designingtomography diagnostics, computingsynthetic signal(direct problem) as well astomographic inversions(inverse problem). It gives access to a full 3D description of the diagnostic geometry, thus reducing the impact of geometrical approximations on the direct and, most importantly, on the inverse problem.tofuis relevant for all diagnostics integrating, in a finitie field of view or along a set of lines of sight, a quantity (scalar or vector) for which the plasma can be considered transparent (e.g.: light in the visible, UV, soft and hard X-ray ranges, or electron density for interferometers).tofuiscommand-line oriented, for maximum flexibility and scriptability.
The absence of a GUI is compensated by built-in one-liners for interactive plots.It has a sphinx-generateddocumentation, and the code itself is hosted onGitHub.Examples GalleryHere are some examples of whattofucan doBuilt-in one-liners for interactive camera geometry visualization...both for 1D and 2D cameras, including the basics for multiple reflections handlingBuilt-in plotting of sinogramsBasic magnetic field line tracingMultiple 1d profiles interactive plottingBuilt-in basic data treatment and interactive plotting: svd and spectrogramstofuprovides the user with a series of python classes for creating, handling and visualizing a diagnostic geometry, meshes and basis functions,
geometry matrices, pre-treating experimental data and computing tomographic inversions.Each one of these main tasks is accomplished by a dedicated module in the larger tofu package.The geometry module is sufficient for diagnostic designing and for a synthetic diagnostic approach (i.e.: computing the integrated signal from a simulated 2D or 3D emissivity).
This geometry module allows in particular:To handle linear and toroidal vaccum vesselsTo define apertures and detectors as planar polygons of arbitrary shapesTo automatically compute the full Volume of Sight (VOS) in 3D of each {detector+aperture(s)} setTo discretise the VOS for a numerical 3D integration of a simulated emissivity in order to compute the associated signalIt is in this geometrical sense that tofu enables a synthetic diagnostic approach, it does not provide the tools for simulating the emissivity itself (that should be an input, provided by another code).IMAS-compatibilityIMAS is a standardized data structure, it comes as an extra layer on the database of any Tokamak to provide a machine-independent way of accessing scientific data.
tofu has built-in advanced classes for handling the interface with IMAS, hold in the imas2tofu sub-package.
It pre-supposes, of course, that IMAS is installed and operational next to your python install, but tofu does not require IMAS to run in general.
If IMAS is not available, tofu will simply display a warning stating that the imas2tofu sub-package is not usable.tofu can thus easily load and handle multiple IDSs (IMAS data structure units) and provide command-line tools for exporting IMAS data to other general tofu classes (e.g.: Cameras, Plasma2D...) and for interactive plotting.
All tofu objects have methods to facailitate in-python-console introspection, the__repr__method is overloaded to display relevant information, an dthis is widely used to explore the data loaded from IMAS.Do you want to usetofuon IMAS and don't know where to start?See our documetation.Installing tofuFrom source(compiled on your system using pip, all platforms)pip install tofuFrom pre-compiled binaries(using conda, all platforms)conda install -c conda-forge tofuFor Developers and other platformsClone the git repository from githubSee our documentation.LicensingIt is distributed under the MIT license and aims at providing the fusion
community with a transparent and modular tool for creating / designing
diagnostics and using them for synthetic diagnostic (direct problem)
and tomography (inverse problem).HistoryIt was first created at the Max-Planck Institute for Plasma Physics (IPP)
in Garching, Germany, by Didier Vezinet, and is now maintained, debugged
and updated by a team of contributors.WarningThis Pypi package focuses on tomography for fusion research.
It uses the same name as a previous package dedicated to a testing framework
coupling fixtures and tests loosely, now renamedreahl-tofuand developped
by Iwan Vosloo since 2006. If you ended up here looking for a web-oriented
library, you should probably redirect to the more recentreahl-tofupage.