Generators

Generators produce data and have at least one output but no input.

File reader

class read

The reader loads single files from disk to produce a stream of two-dimensional data items. Supported file types depend on the compiled plugin. Raw (.raw) and EDF (.edf) files can always be read without additional support. Additionally, loading TIFF (.tif and .tiff) and HDF5 (.h5) files might be supported.

The nominal resolution can be decreased by specifying the y coordinate and a height. Due to reduced I/O, this can dramatically improve performance.

"path": string

Glob-style pattern that describes the file path. For HDF5 files this must point to a file and a data set separated by a colon, e.g. /path/to/file.h5:/my/data/set.

"number": int

Number of files to read.

"start": int

First index from where files are read.

"step": int

Number of files to skip.

"y": int

Vertical coordinate from where to start reading.

"height": int

Height of the region that is read from the image.

"convert": boolean

Convert input data to float elements, enabled by default.

"type": string

Overrides the type detection that is based on the file extension. For example, to load .foo files as raw files, set the type property to raw.

"raw-width": int

Specifies the width of raw files.

"raw-height": int

Specifies the height of raw files.

"raw-bitdepth": int

Specifies the bit depth of raw files.

Memory reader

class memory-in

Reads data from a pre-allocated memory region. Unlike input and output tasks this can be used to interface with other code more directly, e.g. to read from a NumPy buffer:

from gi.repository import Ufo
import numpy as np


ref = np.random.random((512, 512)).astype(np.float32)

pm = Ufo.PluginManager()
g = Ufo.TaskGraph()
sched = Ufo.Scheduler()
read = pm.get_task('memory-in')
write = pm.get_task('write')

read.props.pointer = ref.__array_interface__['data'][0]
read.props.width = ref.shape[1]
read.props.height = ref.shape[0]
read.props.number = 1

write.props.filename = 'out.tif'

g.connect_nodes(read, write)
sched.run(g)

out = tifffile.imread('out.tif')
assert np.sum(out - ref) == 0.0
"pointer": ulong

Pointer to pre-allocated memory.

"width": int

Specifies the width of input.

"height": int

Specifies the height of input.

"number": int

Specifies the number of items to read.

UcaCamera reader

class camera

The camera task uses libuca to read frames from a connected camera and provides them as a stream. When name is provided, the corresponding plugin is instantiated by the camera task itself. However, an already configured UcaCamera object can also be passed via camera.

The amount of processed frames can be controlled with either count or time.

"name": string

Name of the camera that is used.

"number": int

Number of frames that are recorded.

"time": float

Duration over which frames are recorded.

"readout": boolean

If TRUE, start read out instead of recording and grabbing live.

Note

This requires third-party library libuca.

stdin reader

class stdin

Reads data from stdin to produce a valid data stream. width, height and bitdepth must be set correctly to ensure correctly sized data items.

"width": int

Specifies the width of input.

"height": int

Specifies the height of input.

"bitdepth": int

Specifies the bit depth of input.

Metaball simulation

class metaballs

Generate animated meta balls. In each time step the meta balls move by a random velocity.

"width": int

Width of output data stream.

"height": int

Height of output data stream.

"number-balls": int

Number of meta balls.

"number": int

Length of data stream.

Data generation

class dummy-data

Only asks for image data sized width times height times depth and forwards number of them to the next filter. The data is never touched if init is not set, thus it might be suitable for performance measurements.

"width": int

Width of image data stream.

"height": int

Height of image data stream.

"depth": int

Depth of image data stream.

"number": int

Number of images to produce.

"init": float

Value to initialize the output buffer.