Extended Data Guide

Many of the functions here are analogs to the similar NumPy function. A link is provided where possible.

Unless otherwise specified, all functions return a single extended data item.

Note

The functions are still under development and the type signatures may change up until Nion Swift 1.0 is released.

Functions Changing Size or Type

>>> xdata = xd.astype(xdata, numpy.int32)
>>> xdata_list = [xdata1, xdata2]
>>> xdata = xd.concatenate(xdata_list)
>>> xdata_list = [xdata1, xdata2]
>>> xdata = xd.hstack(xdata_list)
>>> xdata_list = [xdata1, xdata2]
>>> xdata = xd.vstack(xdata_list)
>>> xdata = xd.movaxis(xdata, axis_pos_in, axis_pos_out)
>>> shape = (height, width)  # pixels, must be same number of total pixels
>>> xdata = xd.reshape(xdata, shape)
>>> data_range = (low_value, high_value)
>>> xdata = xd.rescale(xdata, data_range)
>>> xdata = xd.data_slice(xdata, [slice(0, 10, 1), slice(20, 40, 2)])
>>> bounds = ((top, left), (height, width))  # fractional coordinates
>>> xdata = xd.crop(xdata, bounds)
>>> interval = (left_coord, right_coord)  # fractional coordinates
>>> xdata = xd.crop_interval(xdata, interval)
>>> xdata = xd.slice_sum(xdata, slice_center, slice_width)
>>> position = (y, x)  # fractional coordinates
>>> xdata = xd.pick(xdata, position)
>>> xdata = xd.sum(xdata)
>>> xdata = xd.sum_region(xdata, mask_xdata)  # mask data has same size as xdata, values of 1, 0
>>> shape = (height, width)  # pixels
>>> xdata = xd.resample_image(xdata, shape)
>>> y_coords = xd.row(xdata.dimensional_shape)
>>> x_coords = xd.column(xdata.dimensional_shape) + 0.5
>>> xdata = xd.warp(xdata, (y_coords, x_coords))  # shift image by 1/2 pixel to left

Functions Generating Data

>>> shape = (height, width)  # pixels, must be same number of total pixels
>>> xdata = xd.column(shape)
>>> shape = (height, width)  # pixels, must be same number of total pixels
>>> xdata = xd.row(shape)
>>> shape = (height, width)  # pixels, must be same number of total pixels
>>> xdata = xd.radius(shape)
>>> xdata = xd.gammapdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.gammalogpdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.gammacdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.gammalogcdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.normpdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.normlogpdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.normcdf(xdata, a, mean, stddev)  # see SciPy documentation
>>> xdata = xd.normlogcdf(xdata, a, mean, stddev)  # see SciPy documentation

Functions for Complex Data

>>> xdata = xd.absolute(xdata)
>>> xdata = xd.angle(xdata)
>>> xdata = xd.real(xdata)
>>> xdata = xd.imag(xdata)
>>> xdata = xd.conj(xdata)
>>> xdata = xd.real_if_close(xdata, tol=100)

Functions for RGB Data

>>> xdata = xd.red(xdata)
>>> xdata = xd.green(xdata)
>>> xdata = xd.blue(xdata)
>>> xdata = xd.alpha(xdata)
>>> xdata = xd.luminance(xdata)
>>> # input data can be integer or float. if integer, it is directly copied into resulting
>>> # rgb data. if float, it is multiplied by 255 to form rgb data.
>>> xdata = xd.rgb(red_xdata, green_xdata, blue_xdata)  # input data can be int or float
>>> # input data can be integer or float. if integer, it is directly copied into resulting
>>> # rgb data. if float, it is multiplied by 255 to form rgb data.
>>> xdata = xd.rgba(red_xdata, green_xdata, blue_xdata, alpha_xdata)

Fourier Functions

>>> xdata = xd.fft(xdata)
>>> xdata = xd.ifft(xdata)
>>> xdata = xd.autocorrelate(xdata)
>>> xdata = xd.crosscorrelate(xdata1, xdata2)
>>> mask_xdata = data_item.mask_xdata
>>> xdata = xd.fourier_mask(xdata, mask_xdata)  # handles FFT origin

Functions for Filters

>>> xdata = xd.sobel(xdata)
>>> xdata = xd.laplace(xdata)
>>> sigma = 2.5  # pixels
>>> xdata = xd.gaussian_blur(xdata, sigma)
>>> size = 3  # pixels
>>> xdata = xd.median_filter(xdata, size)
>>> size = 3  # pixels
>>> xdata = xd.uniform_filter(xdata, size)
>>> xdata = xd.transpose_flip(xdata, transpose=False, flip_v=True, flip_h=False)

Miscellaneous Functions

>>> bins = 200
>>> xdata = xd.histogram(xdata, bins)
>>> vector = ((y1, x1), (y2, x2))  # fractional coordinates
>>> integration_width = 20  # pixels
>>> xdata = xd.line_profile(xdata, vector, integration_width)
>>> xdata = xd.invert(xdata)

Useful Recipes for Data

Many xdata examples can be found by choosing menu items in the Processing menu and examining the resulting computation code (use the computation inspector).