%global _empty_manifest_terminate_build 0 Name: python-tofu Version: 1.7.0 Release: 1 Summary: A python library for Tomography for Fusion License: MIT URL: https://github.com/ToFuProject/tofu Source0: https://mirrors.nju.edu.cn/pypi/web/packages/47/fb/82b1be64a7651d9fde4d408149ff4fb32d4dd2bfea641ee67d209e8c8e22/tofu-1.7.0.tar.gz BuildArch: noarch %description **tofu** stands for **To**mography for **Fu**sion, 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, like [PlasmaPy](https://github.com/PlasmaPy/PlasmaPy), with which some degree of interoperability is being implemented. It aims at providing the **fusion** and **plasma** community with an object-oriented, transparent and documented tool for designing **tomography diagnostics**, computing **synthetic signal** (direct problem) as well as **tomographic 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. **tofu** is 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). **tofu** is **command-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-generated [documentation](https://tofuproject.github.io/tofu/index.html), and the code itself is hosted on [GitHub](https://github.com/ToFuProject/tofu). ## Examples Gallery Here are some examples of what **tofu** can do #### Built-in one-liners for interactive camera geometry visualization

Built-in one-liners for interactive camera geometry visualization

#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling

...both for 1D and 2D cameras, including the basics for multiple reflections handling

#### Built-in plotting of sinograms

Built-in plotting of sinograms

#### Basic magnetic field line tracing

Basic magnetic field line tracing

#### Multiple 1d profiles interactive plotting

Multiple 1d profiles interactive plotting

#### Built-in basic data treatment and interactive plotting: svd and spectrograms

Built-in basic data treatment and interactive plotting: svd and spectrograms

**tofu** provides 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 vessels * To define apertures and detectors as planar polygons of arbitrary shapes * To automatically compute the full Volume of Sight (VOS) in 3D of each {detector+aperture(s)} set * To discretise the VOS for a numerical 3D integration of a simulated emissivity in order to compute the associated signal It 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-compatibility IMAS 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 use **tofu** on IMAS and don't know where to start? %package -n python3-tofu Summary: A python library for Tomography for Fusion Provides: python-tofu BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-tofu **tofu** stands for **To**mography for **Fu**sion, 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, like [PlasmaPy](https://github.com/PlasmaPy/PlasmaPy), with which some degree of interoperability is being implemented. It aims at providing the **fusion** and **plasma** community with an object-oriented, transparent and documented tool for designing **tomography diagnostics**, computing **synthetic signal** (direct problem) as well as **tomographic 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. **tofu** is 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). **tofu** is **command-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-generated [documentation](https://tofuproject.github.io/tofu/index.html), and the code itself is hosted on [GitHub](https://github.com/ToFuProject/tofu). ## Examples Gallery Here are some examples of what **tofu** can do #### Built-in one-liners for interactive camera geometry visualization

Built-in one-liners for interactive camera geometry visualization

#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling

...both for 1D and 2D cameras, including the basics for multiple reflections handling

#### Built-in plotting of sinograms

Built-in plotting of sinograms

#### Basic magnetic field line tracing

Basic magnetic field line tracing

#### Multiple 1d profiles interactive plotting

Multiple 1d profiles interactive plotting

#### Built-in basic data treatment and interactive plotting: svd and spectrograms

Built-in basic data treatment and interactive plotting: svd and spectrograms

**tofu** provides 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 vessels * To define apertures and detectors as planar polygons of arbitrary shapes * To automatically compute the full Volume of Sight (VOS) in 3D of each {detector+aperture(s)} set * To discretise the VOS for a numerical 3D integration of a simulated emissivity in order to compute the associated signal It 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-compatibility IMAS 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 use **tofu** on IMAS and don't know where to start? %package help Summary: Development documents and examples for tofu Provides: python3-tofu-doc %description help **tofu** stands for **To**mography for **Fu**sion, 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, like [PlasmaPy](https://github.com/PlasmaPy/PlasmaPy), with which some degree of interoperability is being implemented. It aims at providing the **fusion** and **plasma** community with an object-oriented, transparent and documented tool for designing **tomography diagnostics**, computing **synthetic signal** (direct problem) as well as **tomographic 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. **tofu** is 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). **tofu** is **command-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-generated [documentation](https://tofuproject.github.io/tofu/index.html), and the code itself is hosted on [GitHub](https://github.com/ToFuProject/tofu). ## Examples Gallery Here are some examples of what **tofu** can do #### Built-in one-liners for interactive camera geometry visualization

Built-in one-liners for interactive camera geometry visualization

#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling

...both for 1D and 2D cameras, including the basics for multiple reflections handling

#### Built-in plotting of sinograms

Built-in plotting of sinograms

#### Basic magnetic field line tracing

Basic magnetic field line tracing

#### Multiple 1d profiles interactive plotting

Multiple 1d profiles interactive plotting

#### Built-in basic data treatment and interactive plotting: svd and spectrograms

Built-in basic data treatment and interactive plotting: svd and spectrograms

**tofu** provides 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 vessels * To define apertures and detectors as planar polygons of arbitrary shapes * To automatically compute the full Volume of Sight (VOS) in 3D of each {detector+aperture(s)} set * To discretise the VOS for a numerical 3D integration of a simulated emissivity in order to compute the associated signal It 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-compatibility IMAS 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 use **tofu** on IMAS and don't know where to start? %prep %autosetup -n tofu-1.7.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-tofu -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu May 18 2023 Python_Bot - 1.7.0-1 - Package Spec generated