This package includes some functions to read and write data.
To import:
from instamatic.formats import *
The following readers are available:
read_image(fname)
read_tiff(fname)
read_mrc(fname)
read_hdf5(fname)
read_adsc(fname)
read_cbf(fname)
These functions return a tuple containing the data and header as a dictionary.
The following writers are available:
-
write_image(fname, data, header=None)
This function figures out the data type from the filename. -
write_tiff(fname, data, header=None)
Writes tiff files using the tifffile library, which has support for TVIPS headers. If a header is specified, it is stored in thedescription
tag in yaml format. -
write_mrc(fname, data, header=None)
Uses the mrc implementation from the arachnid project. -
write_hdf5(fname, data, header=None)
HDF5 files are written using h5py. -
write_adsc(fname, data, header=None)
SMV files (adsc) are written using the implementation in fabio. -
write_cbf(fname, data, header=None)
Not implemented yet.
Where fname should be a string or a pathlib.Path
instance. Data is a numpy array, and the header is a python dictionary.
Example usage:
from instamatic.formats import read_tiff, write_tiff
import numpy as np
fn = "important_data.tiff"
img = (np.random.random((512, 512)) * 1000).astype(np.uint16)
header = {}
header['xres'] = img.shape[0]
header['yres'] = img.shape[1]
header['comment'] = "This is a tiff file"
# save the data
write_tiff(fn, img, header=header)
# read the data
arr, h = read_tiff(fn)
# make sure they are equal
print(arr.shape)
print("allclose:", np.allclose(img, arr))