ufo-tofu


Nameufo-tofu JSON
Version 0.13.0 PyPI version JSON
download
home_pagehttp://github.com/ufo-kit/tofu
SummaryA fast, versatile and user-friendly image processing toolkit for computed tomography
upload_time2023-10-27 14:29:46
maintainer
docs_urlNone
authorMatthias Vogelgesang
requires_python>=3
licenseLGPL
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## About

[![PyPI version](https://badge.fury.io/py/ufo-tofu.png)](http://badge.fury.io/py/ufo-tofu)
[![Documentation status](https://readthedocs.org/projects/tofu/badge/?version=latest)](http://tofu.readthedocs.io/en/latest/?badge=latest)

This repository contains Python data processing scripts to be used with the UFO
framework. At the moment they are targeted at high-performance reconstruction of
tomographic data sets.

If you use this software for publishing your data, we kindly ask you to cite the article

**Faragó, T., Gasilov, S., Emslie, I., Zuber, M., Helfen, L., Vogelgesang, M. & Baumbach, T. (2022). J. Synchrotron Rad.
29, https://doi.org/10.1107/S160057752200282X**

If you want to stay updated, subscribe to our [newsletter](mailto:sympa@lists.kit.edu?subject=subscribe%20ufo%20YourFirstName%20YourLastName). Simply leave the body of the e-mail empty and in the subject change ``YourFirstName YourLastName`` accordingly.


## Installation

First make sure you have [ufo-core](https://github.com/ufo-kit/ufo-core) and [ufo-filters](https://github.com/ufo-kit/ufo-filters) installed. For that, please follow the [installation instructions](https://ufo-core.readthedocs.io/en/latest/install/index.html). You can either install the prerequisites yourself on [Linux](https://ufo-core.readthedocs.io/en/latest/install/linux.html), or use one of our [Docker containers](https://ufo-core.readthedocs.io/en/latest/install/docker.html).

Then, for the newest version run the following in *tofu*'s top directory:

    pip install .

or to install via PyPI:

    pip install ufo-tofu

in a prepared virtualenv or as root for system-wide installation. Note, that if
you do plan to use the graphical user interface you need PyQt5, pyqtgraph and
PyOpenGL. You are strongly advised to install PyQt through your system package
manager, you can install pyqtgraph and PyOpenGL using the pip package manager
though:

    pip install pyqtgraph PyOpenGL


## Usage

### Flow

`tofu flow` is a visual flow programming tool. You can create a flow by using any task from [ufo-filters](https://github.com/ufo-kit/ufo-filters) and execute it. In includes visualization of 2D and 3D results, so you can quickly check the output of your flow, which is useful for finding algorithm parameters.

![flow](https://user-images.githubusercontent.com/2648829/150096902-fdbf1b7e-b34e-4368-98ac-c924cad8a6cd.jpg)


### Reconstruction

To do a tomographic reconstruction you simply call

    $ tofu tomo --sinograms $PATH_TO_SINOGRAMS

from the command line. To get get correct results, you may need to append
options such as `--axis-pos/-a` and `--angle-step/-a` (which are given in
radians!). Input paths are either directories or glob patterns. Output paths are
either directories or a format that contains one `%i`
[specifier](http://www.pixelbeat.org/programming/gcc/format_specs.html):

    $ tofu tomo --axis-pos=123.4 --angle-step=0.000123 \
         --sinograms="/foo/bar/*.tif" --output="/output/slices-%05i.tif"

You can get a help for all options by running

    $ tofu tomo --help

and more verbose output by running with the `-v/--verbose` flag.

You can also load reconstruction parameters from a configuration file called
`reco.conf`. You may create a template with

    $ tofu init

Note, that options passed via the command line always override configuration
parameters!

Besides scripted reconstructions, one can also run a standalone GUI for both
reconstruction and quick assessment of the reconstructed data via

    $ tofu gui

![GUI](https://cloud.githubusercontent.com/assets/115270/6442540/db0b55fe-c0f0-11e4-9577-0048fddae8b7.png)


### Performance measurement

If you are running at least ufo-core/filters 0.6, you can evaluate the performance
of the filtered backprojection (without sinogram transposition!), with

    $ tofu perf

You can customize parameter scans, pretty easily via

    $ tofu perf --width 256:8192:256 --height 512

which will reconstruct all combinations of width between 256 and 8192 with a
step of 256 and a fixed height of 512 pixels.


### Estimating the center of rotation

If you do not know the correct center of rotation from your experimental setup,
you can estimate it with:

    $ tofu estimate -i $PATH_TO_SINOGRAMS

Currently, a modified algorithm based on the work of [Donath et
al.](http://dx.doi.org/10.1364/JOSAA.23.001048) is used to determine the center.

            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/ufo-kit/tofu",
    "name": "ufo-tofu",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3",
    "maintainer_email": "",
    "keywords": "",
    "author": "Matthias Vogelgesang",
    "author_email": "matthias.vogelgesang@kit.edu",
    "download_url": "https://files.pythonhosted.org/packages/92/00/a7d1e0cb7ac368f31e1237d610b28064b5d955b1f978496395f5e71a704f/ufo-tofu-0.13.0.tar.gz",
    "platform": null,
    "description": "## About\n\n[![PyPI version](https://badge.fury.io/py/ufo-tofu.png)](http://badge.fury.io/py/ufo-tofu)\n[![Documentation status](https://readthedocs.org/projects/tofu/badge/?version=latest)](http://tofu.readthedocs.io/en/latest/?badge=latest)\n\nThis repository contains Python data processing scripts to be used with the UFO\nframework. At the moment they are targeted at high-performance reconstruction of\ntomographic data sets.\n\nIf you use this software for publishing your data, we kindly ask you to cite the article\n\n**Farag\u00f3, T., Gasilov, S., Emslie, I., Zuber, M., Helfen, L., Vogelgesang, M. & Baumbach, T. (2022). J. Synchrotron Rad.\n29, https://doi.org/10.1107/S160057752200282X**\n\nIf you want to stay updated, subscribe to our [newsletter](mailto:sympa@lists.kit.edu?subject=subscribe%20ufo%20YourFirstName%20YourLastName). Simply leave the body of the e-mail empty and in the subject change ``YourFirstName YourLastName`` accordingly.\n\n\n## Installation\n\nFirst make sure you have [ufo-core](https://github.com/ufo-kit/ufo-core) and [ufo-filters](https://github.com/ufo-kit/ufo-filters) installed. For that, please follow the [installation instructions](https://ufo-core.readthedocs.io/en/latest/install/index.html). You can either install the prerequisites yourself on [Linux](https://ufo-core.readthedocs.io/en/latest/install/linux.html), or use one of our [Docker containers](https://ufo-core.readthedocs.io/en/latest/install/docker.html).\n\nThen, for the newest version run the following in *tofu*'s top directory:\n\n    pip install .\n\nor to install via PyPI:\n\n    pip install ufo-tofu\n\nin a prepared virtualenv or as root for system-wide installation. Note, that if\nyou do plan to use the graphical user interface you need PyQt5, pyqtgraph and\nPyOpenGL. You are strongly advised to install PyQt through your system package\nmanager, you can install pyqtgraph and PyOpenGL using the pip package manager\nthough:\n\n    pip install pyqtgraph PyOpenGL\n\n\n## Usage\n\n### Flow\n\n`tofu flow` is a visual flow programming tool. You can create a flow by using any task from [ufo-filters](https://github.com/ufo-kit/ufo-filters) and execute it. In includes visualization of 2D and 3D results, so you can quickly check the output of your flow, which is useful for finding algorithm parameters.\n\n![flow](https://user-images.githubusercontent.com/2648829/150096902-fdbf1b7e-b34e-4368-98ac-c924cad8a6cd.jpg)\n\n\n### Reconstruction\n\nTo do a tomographic reconstruction you simply call\n\n    $ tofu tomo --sinograms $PATH_TO_SINOGRAMS\n\nfrom the command line. To get get correct results, you may need to append\noptions such as `--axis-pos/-a` and `--angle-step/-a` (which are given in\nradians!). Input paths are either directories or glob patterns. Output paths are\neither directories or a format that contains one `%i`\n[specifier](http://www.pixelbeat.org/programming/gcc/format_specs.html):\n\n    $ tofu tomo --axis-pos=123.4 --angle-step=0.000123 \\\n         --sinograms=\"/foo/bar/*.tif\" --output=\"/output/slices-%05i.tif\"\n\nYou can get a help for all options by running\n\n    $ tofu tomo --help\n\nand more verbose output by running with the `-v/--verbose` flag.\n\nYou can also load reconstruction parameters from a configuration file called\n`reco.conf`. You may create a template with\n\n    $ tofu init\n\nNote, that options passed via the command line always override configuration\nparameters!\n\nBesides scripted reconstructions, one can also run a standalone GUI for both\nreconstruction and quick assessment of the reconstructed data via\n\n    $ tofu gui\n\n![GUI](https://cloud.githubusercontent.com/assets/115270/6442540/db0b55fe-c0f0-11e4-9577-0048fddae8b7.png)\n\n\n### Performance measurement\n\nIf you are running at least ufo-core/filters 0.6, you can evaluate the performance\nof the filtered backprojection (without sinogram transposition!), with\n\n    $ tofu perf\n\nYou can customize parameter scans, pretty easily via\n\n    $ tofu perf --width 256:8192:256 --height 512\n\nwhich will reconstruct all combinations of width between 256 and 8192 with a\nstep of 256 and a fixed height of 512 pixels.\n\n\n### Estimating the center of rotation\n\nIf you do not know the correct center of rotation from your experimental setup,\nyou can estimate it with:\n\n    $ tofu estimate -i $PATH_TO_SINOGRAMS\n\nCurrently, a modified algorithm based on the work of [Donath et\nal.](http://dx.doi.org/10.1364/JOSAA.23.001048) is used to determine the center.\n",
    "bugtrack_url": null,
    "license": "LGPL",
    "summary": "A fast, versatile and user-friendly image processing toolkit for computed tomography",
    "version": "0.13.0",
    "project_urls": {
        "Homepage": "http://github.com/ufo-kit/tofu"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9200a7d1e0cb7ac368f31e1237d610b28064b5d955b1f978496395f5e71a704f",
                "md5": "bdf9691d3501c9c29c24ccc40405bcdf",
                "sha256": "b25de9d5b754b867a3e8b0c0bb6fa5e16e7631656006848e4154b63addae2b78"
            },
            "downloads": -1,
            "filename": "ufo-tofu-0.13.0.tar.gz",
            "has_sig": false,
            "md5_digest": "bdf9691d3501c9c29c24ccc40405bcdf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3",
            "size": 189866,
            "upload_time": "2023-10-27T14:29:46",
            "upload_time_iso_8601": "2023-10-27T14:29:46.325820Z",
            "url": "https://files.pythonhosted.org/packages/92/00/a7d1e0cb7ac368f31e1237d610b28064b5d955b1f978496395f5e71a704f/ufo-tofu-0.13.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-27 14:29:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ufo-kit",
    "github_project": "tofu",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "ufo-tofu"
}
        
Elapsed time: 0.38806s