summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-tofu.spec222
-rw-r--r--sources1
3 files changed, 224 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5747d68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/tofu-1.7.0.tar.gz
diff --git a/python-tofu.spec b/python-tofu.spec
new file mode 100644
index 0000000..3ed1119
--- /dev/null
+++ b/python-tofu.spec
@@ -0,0 +1,222 @@
+%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
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_touch.png" width="600" alt="Built-in one-liners for interactive camera geometry visualization"/>
+</p>
+#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS2D_touch_refelect.png" width="600" alt="...both for 1D and 2D cameras, including the basics for multiple reflections handling"/>
+</p>
+#### Built-in plotting of sinograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_sino.png" width="600" alt="Built-in plotting of sinograms"/>
+</p>
+#### Basic magnetic field line tracing
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/MagfieldLines.png" width="600" alt="Basic magnetic field line tracing"/>
+</p>
+#### Multiple 1d profiles interactive plotting
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Multiple 1d profiles interactive plotting"/>
+</p>
+#### Built-in basic data treatment and interactive plotting: svd and spectrograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Built-in basic data treatment and interactive plotting: svd and spectrograms"/>
+</p>
+**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
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_touch.png" width="600" alt="Built-in one-liners for interactive camera geometry visualization"/>
+</p>
+#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS2D_touch_refelect.png" width="600" alt="...both for 1D and 2D cameras, including the basics for multiple reflections handling"/>
+</p>
+#### Built-in plotting of sinograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_sino.png" width="600" alt="Built-in plotting of sinograms"/>
+</p>
+#### Basic magnetic field line tracing
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/MagfieldLines.png" width="600" alt="Basic magnetic field line tracing"/>
+</p>
+#### Multiple 1d profiles interactive plotting
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Multiple 1d profiles interactive plotting"/>
+</p>
+#### Built-in basic data treatment and interactive plotting: svd and spectrograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Built-in basic data treatment and interactive plotting: svd and spectrograms"/>
+</p>
+**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
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_touch.png" width="600" alt="Built-in one-liners for interactive camera geometry visualization"/>
+</p>
+#### ...both for 1D and 2D cameras, including the basics for multiple reflections handling
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS2D_touch_refelect.png" width="600" alt="...both for 1D and 2D cameras, including the basics for multiple reflections handling"/>
+</p>
+#### Built-in plotting of sinograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/CamLOS1D_sino.png" width="600" alt="Built-in plotting of sinograms"/>
+</p>
+#### Basic magnetic field line tracing
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/MagfieldLines.png" width="600" alt="Basic magnetic field line tracing"/>
+</p>
+#### Multiple 1d profiles interactive plotting
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Multiple 1d profiles interactive plotting"/>
+</p>
+#### Built-in basic data treatment and interactive plotting: svd and spectrograms
+<p align="center">
+<img align="middle" src="https://github.com/ToFuProject/tofu/blob/master/README_figures/Plasma2D_1dneTe.png" width="600" alt="Built-in basic data treatment and interactive plotting: svd and spectrograms"/>
+</p>
+**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 <Python_Bot@openeuler.org> - 1.7.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..9955d41
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9302f81ee8c446aeccee6a32fc5c6f42 tofu-1.7.0.tar.gz