Sdtfile is a Python library to read SDT files produced by Becker & Hickl SPCM software. SDT files contain time correlated single photon counting instrumentation parameters and measurement data. Currently only the "Setup & Data", "DLL Data", and "FCS Data" formats are supported.
Becker & Hickl GmbH is a manufacturer of equipment for photon counting.
Author: | Christoph Gohlke |
---|---|
License: | BSD 3-Clause |
Version: | 2024.12.6 |
DOI: | 10.5281/zenodo.10125608 |
Install the sdtfile package and all dependencies from the Python Package Index:
python -m pip install -U sdtfile
See Examples for using the programming interface.
Source code and support are available on GitHub.
This revision was tested with the following requirements and dependencies (other versions may work):
2024.12.6
- Fix read MeasureInfo fields as scalars (breaking).
- Update some structure field names with BH reference (breaking).
- Parse some SetupBlock binary structures (#7).
- Include more information in str(SdtFile).
- Add subtype to FileRevision.
2024.11.24
- Update MEASURE_INFO_EXT struct to SPCM v.9.9 (breaking).
2024.5.24
- Fix docstring examples not correctly rendered on GitHub.
2024.4.24
- Support NumPy 2.
2023.9.28
- Update structs to SPCM v.9.66 (breaking).
- Shorten MEASURE_INFO struct to meas_desc_block_length.
2023.8.30
- …
Refer to the CHANGES file for older revisions.
- W Becker. The bh TCSPC Handbook. 9th Edition. Becker & Hickl GmbH 2021. pp 879.
- SPC_data_file_structure.h header file. Part of the Becker & Hickl SPCM software installation.
Read image and metadata from a "SPC Setup & Data File":
>>> sdt = SdtFile('image.sdt')
>>> int(sdt.header.revision)
588
>>> sdt.info.id[1:-1]
'SPC Setup & Data File'
>>> int(sdt.measure_info[0].scan_x)
128
>>> len(sdt.data)
1
>>> sdt.data[0].shape
(128, 128, 256)
>>> sdt.times[0].shape
(256,)
Read data and metadata from a "SPC Setup & Data File" with multiple data sets:
>>> sdt = SdtFile('fluorescein.sdt')
>>> len(sdt.data)
4
>>> sdt.data[3].shape
(1, 1024)
>>> sdt.times[3].shape
(1024,)
>>> int(sdt.setup.bh_bin_hdr['soft_rev'])
850
Read image data from a "SPC FCS Data File" as numpy array:
>>> sdt = SdtFile('fcs.sdt')
>>> sdt.info.id[1:-1]
'SPC FCS Data File'
>>> len(sdt.data)
1
>>> sdt.data[0].shape
(512, 512, 256)
>>> sdt.times[0].shape
(256,)