Obffile is a Python library to read image and metadata from Object Binary Format (OBF) and Measurement Summary Record (MSR) image files. These files are written by Imspector software to store image and metadata from microscopy experiments.
- Author:
- License:
BSD-3-Clause
- Version:
2026.6.28
- DOI:
Quickstart
Install the obffile package and all dependencies from the Python Package Index:
python -m pip install -U obffile[all]
See Examples for using the programming interface.
Source code and support are available on GitHub.
Requirements
This revision was tested with the following requirements and dependencies (other versions may work):
CPython 3.12.10, 3.13.14, 3.14.5, 3.15.0b3 64-bit
NumPy 2.5.0
Xarray 2026.4.0 (recommended)
Matplotlib 3.11.0 (optional)
Tifffile 2026.6.1 (optional)
Revisions
2026.6.28
Add option to memory-map OBF files.
Support Python 3.15.
Drop support for Python 3.11 and numpy 2.0 (SPEC0).
2026.2.20
Initial alpha release.
…
Notes
This library is in its early stages of development. Large, backwards-incompatible changes may occur between revisions.
Imspector is a software platform for super-resolution and confocal microscopy developed by Abberior Instruments.
The Imspector image file formats (OBF and MSR) are documented at https://imspectordocs.readthedocs.io/en/latest/fileformat.html.
OBF is a little-endian binary format storing named, multidimensional image stacks with metadata. Each file has a magic header (OMAS_BF\n\xff\xff), a format version, an XML description, and a linked list of stack records. Stack data may be uncompressed or zlib-compressed. MSR files embed OBF and add Imspector-specific data such as window layout and hardware configuration. The format is designed for forward and backward compatibility.
This library is not feature-complete. Unsupported features currently include writing or modifying OBF/MSR files, non-OBF based MSR files, reading MSR-specific non-image data (window positions, hardware configuration), and compression types other than zlib.
The library has been tested with a limited number of files only.
Other implementations for reading Imspector image files are msr-reader, obf_support.py, and bio-formats.
Examples
Read an image stack and metadata from an OBF file:
>>> with ObfFile('tests/data/Test.obf') as obf:
... assert obf.header.metadata['ome_xml'].startswith('<?xml')
... for stack in obf.stacks:
... _ = stack.name, stack.dims, stack.shape, stack.dtype
... obf.stacks[0].asxarray()
...
<xarray.DataArray 'Abberior STAR RED.Confocal' (T: 18, Z: 2, Y: 339, X: 381)...
array([[[[0, 0, 0, ..., 3, 3, 3],
[0, 0, 0, ..., 4, 3, 3],
...,
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0]]]], shape=(18, 2, 339, 381), dtype=int16)
Coordinates:
* T (T) float64 144B 0.0 0.0 0.0 0.0 0.0 0.0 ...
* Z (Z) float64 16B 1.25e-07 3.75e-07
* Y (Y) float64 3kB 0.0 2e-07 4e-07 ...
* X (X) float64 3kB 0.0 2.002e-07 4.003e-07 ...
...
View the image stack and metadata in an OBF file from the console:
$ python -m obffile tests/data/Test.obf
Release files for obffile 2026.6.28
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| obffile-2026.6.28.tar.gz | 27.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| obffile-2026.6.28-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.1 kB
Release files / obffile-2026.6.28.tar.gz
| Download URL | obffile-2026.6.28.tar.gz |
|---|---|
| Size | 27.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6e114ed2e193f537311cb6b4f5cbec43ed171df6ae3cec6be4783853d7e8ce12
|
|
BLAKE2b-256 checksum How to use checksums |
8ff05783bb268389651240f24c28ef2fedf55308257d96d2591231104bbee77b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / obffile-2026.6.28-py3-none-any.whl
| Download URL | obffile-2026.6.28-py3-none-any.whl |
|---|---|
| Size | 22.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
854de253e8f8310937add06107a9b8b8e3a87a96e8641a5867b0a4e3a83414e9
|
|
BLAKE2b-256 checksum How to use checksums |
d07be4b56c426c9c795005db4a95570fbc588ac5ad159823063a18c272ae2552
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|