FPD: Fast pixelated detector data storage, analysis and visualisation.

# News

11 May 2022 - Release 0.2.5 with some compatibility updates and improvements (see changelog for details).

2 May 2022 - Release 0.2.4 with several updates and improvements (see changelog for details).

26 February 2022 - Release 0.2.3 with several updates and improvements (see changelog for details).

29 November 2021 - Release 0.2.2 with several updates and improvements (see changelog for details).

19 October 2021 - Release 0.2.1 with several updates and improvements (see changelog for details).

20 September 2021 - Publication of a diptych on Parallel mode differential phase contrast in transmission electron microscopy: Part I Microsc. Microanal. 27, 1113 (2021), Part II Microsc. Microanal. 27, 1123 (2021).

See https://fpdpy.gitlab.io/fpd/news.html for earlier news.

# FPD package

The fpd package provides code for the storage, analysis and visualisation of data from fast pixelated detectors. The data storage uses the hdf5 based EMD file format, and the conversion currently supports the Merlin readout from Medipix3 detectors. Differential phase contrast imaging and several other common data analyses, like radial distributions, virtual apertures, and lattice analysis, are also implemented, along with many utilities and general electron microscopy related tools. Some scientific papers about these can be found below.

The package is relatively lightweight, with most of its few dependencies being standard scientific libraries. All calculations run on CPUs and many use out-of-core processing, allowing data to be visualised and processed on anything from very modest to powerful hardware.

A degree of optimisation through parallelisation has been implemented, with most functions using threads. If you need to use process-based parallelism and are on Windows 10, then you may find the Linux subsystem of benefit.

## Citing

If you find this software useful and use it to produce results in a puplication, please consider citing the website or related paper(s).

An example bibtex entry with the date in the note field yet to be specified:

@Misc{fpd,
Title                    = {{FPD: Fast pixelated detector data storage, analysis and visualisation}},
howpublished             = {\url{https://gitlab.com/fpdpy/fpd}},
note                     = {{Accessed} todays date}
}


Aspects of the library are covered in papers:

## Publications

Some of the known scientific papers that used the fpd library are listed below. If you use the library for results contributing to a publication, please pass the paper details to developers for inclusion in this list.

## Installation

The package currently supports python version 3.x (2.x support was dropped in v0.1.12). Hyperspy is used for reading Digital Micrograph files in a few places, but virtually all of the fpd package can be used without it being installed. As of fpd v0.2.5, HyperSpy is an optional dependency. To install HyperSpy along with the fpd package, simply add [HS] to the package name in the install instructions below. See the install documentaion for further details.

Installation from source:

pip3 install --user .


Instalation from PyPI (https://pypi.org/project/fpd/):

pip3 install --user fpd


-U can be added to force an upgrade / reinstall; in combination with --no-deps, only the fpd package will be reinstalled.

The package can be removed with:

pip3 uninstall fpd


## Usage

In python or ipython:

import fpd
d = fpd.DPC_Explorer(-64)

import fpd.fpd_processing as fpdp
rtn = fpdp.phase_correlation(data, 32, 32)


where data is any array-like object. For example, this can be an in-memory numpy array, an hdf5 object on disk, or a dask array, such as that used in 'lazy' hyperspy signals.

All functions and classes are documented and can be read, for example, in ipython by appending a ? to the object. E.g.:

import fpd
fpd.DPC_Explorer?


## Documentation

Release: https://fpdpy.gitlab.io/fpd/

Notebook demos: https://gitlab.com/fpdpy/fpd-demos.

Further documentation and examples will be made available over time.

## Related projects

https://www.gla.ac.uk/schools/physics/research/groups/mcmp/researchareas/pixstem/

http://quantumdetectors.com/stem/

https://gitlab.com/fast_pixelated_detectors/merlin_interface

https://gitlab.com/fast_pixelated_detectors/fpd_live_imaging

https://gitlab.com/pixstem/pixstem

https://emdatasets.com/format

http://hyperspy.org/

http://gwyddion.net/

More packages will be added to the https://gitlab.com/fast_pixelated_detectors group as they develop.

master coverage

## Project details

Uploaded source