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": uint

Number of files to read.

"start": uint

First index from where files are read.

"step": uint

Number of files to skip.

"y": uint

Vertical coordinate from where to start reading.

"height": uint

Height of the region that is read from the image.

"y-step": uint

Read every y-step row.

"convert": boolean

Convert input data to float elements, enabled by default.

"raw-width": uint

Specifies the width of raw files.

"raw-height": uint

Specifies the height of raw files.

"raw-bitdepth": uint

Specifies the bit depth of raw files.

"raw-offset": ulong

Sets the offset to the beginning of raw image in bytes.

"type": enum

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.

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
import tifffile


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": uint

Specifies the width of input.

"height": uint

Specifies the height of input.

"number": uint

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.

"name": string

Name of the camera that is used.

"number": uint

Number of frames that are recorded.

"properties": string

Property string, i.e. roi-width=512 exposure-time=0.1.

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": uint

Specifies the width of input.

"height": uint

Specifies the height of input.

"bitdepth": uint

Specifies the bit depth of input.

"convert": boolean

Convert input data types to float, enabled by default.

Metaball simulation

class metaballs

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

"width": uint

Width of output data stream.

"height": uint

Height of output data stream.

"number-balls": uint

Number of meta balls.

"number": uint

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": uint

Width of image data stream.

"height": uint

Height of image data stream.

"depth": uint

Depth of image data stream.

"number": uint

Number of images to produce.

"init": float

Value to initialize the output buffer.