Change Log

Release 0.2.5 (11 May 2022)

  • updated for compatibility with latest scikit-image (issue 53).
  • HyperSpy is now an optional dependency. It can be installed with pip by specifying fpd[HS] instead fpd, or separately by any other means.

Release 0.2.4 (2 May 2022)

  • virtual_images() now pads input data with pixels of fill_value in cases where image shifts are larger than the ‘spare’ space allowed by the aperture(s).
  • new radial_profiles() for calculating radial profiles of 4-D datasets with variable centre coordinates. (The older radial_profile() function may still be used on single images or a small number of them.)
  • internal (hidden) utility functions for finding integer factors are now public: int_factors() and nearest_int_factor().
  • rotate_vector() now also accepts an iterable as the yx_array input.
  • SegmentedDPC (fpd.segmented_dpc_class.SegmentedDPC) is deprecated and will be removed in a future version.
  • new segmented_dpc module containing new (and improved) functions for segmented DPC analysis: SegmentedDPC (fpd.segmented_dpc.SegmentedDPC); and experimental dataset parsing: load_gla_dpc().

Release 0.2.3 (26 February 2022)

Release 0.2.2 (29 November 2021)

Release 0.2.1 (19 October 2021)

  • improve size of centre rectangle GUI element in dpc_explorer_class for very small data ranges.
  • the save_data() method now returns the full filename of the output file.
  • new signal_from and per_pixel parameters in snr_single_image() for specifying the origin of the signal and whether the returns are per pixel, respectively, mirroring the parameters in the new snr_single_image_wl() function. The equivalent precision for the snr is also now included in the output.
  • new snr_single_image_wl() function for calculating the snr ratio of a single image using wavelet analysis for the noise component.
  • new decibel() function for calculating decibels from power ratios.
  • new strain() function for infinitesimal strain tensor calculations.
  • the DataBrowser class can now handle non-fpd hdf5 datasets, and the diffraction plot normalisation can be set through the new norm parameter.
  • removal of deprecated functions: radial_average() and disc_edge_sigma() (use radial_profile() and disc_edge_properties() instead).
  • the map_image_function() function now allows the function parameters to be spatially varying by specifying them through the mapped_params parameter, for issue 46.
  • new compression parameter in write_hdf5(), allowing use of the LZ4 algorithm for around 2x faster data reading and writing. See Compression for details. The LZ4 algorithm is provided by the hdf5plugin package, a new dependency. The default compression method remains gzip for maximum file portability.
  • update MerlinBinary class for Merlin file format version 0.77.0.16.
  • greatly improved Medipix colour handling and file conversion without header files in the MerlinBinary class. See merge request and Detector Axis and Colour Mode for details.
  • improve metadata compatibility for Hyperspy version > 1.6. See merge request for details.
  • improve test coverage (from around 81% to 88%).

Release 0.2.0 (25 March 2021)

  • automatic runtime configuration of BLAS libraries with the threadpoolctl package. This additional control has allowed speed increases of several functions.
  • parallel execution may be by multithreading or multiprocessing. Threading is the default, which should improve performance on across different OSs.
  • new Timer class for simple timing.
  • new update_calibration() for updating file calibrations.
  • more efficient data handling and OS warning messaging in make_updated_fpd_file(). The changes also fix issue #39.

Release 0.1.13 (23 January 2021)

Release 0.1.12 (21 December 2020)

Release 0.1.11 (1 November 2020)

synthetic_data module:

  • method and fill_value are now exposed in shift_images().
  • new array_image() function to make it easier to generate synthetic lattice (and other ‘arrayed’) images.

mag_tools module:

fft_tools module:

  • new fft_diff() and fft2_diff() functions for performing Fourier space differentiation and integration of 1-D arrays and images.
  • new fft2_laplacian() and fft2_ilaplacian() functions for performing Fourier space Laplacian and inverse Laplacian calculations.
  • new im2fftrdf() function for calculating the azimuthally averaged profile of the spectral components of an image.
  • sub-pixel calculations are now possible in fft2rdf() through the new sp parameter.
  • new pad_image() function for convenient padding of images to a given size and shape.
  • new cepstrum() and cepstrum2() functions for performing 1-D and 2-D cepstrum calculations.
  • new fft2_igrad() function for inverse 2-D gradient calculations.

tem_tools module:

  • new defocus_from_image() function to automate extraction of defocus in TEM images.
  • the radius and angle of the mouse position are now displayed in the plot in synthetic_lattice(), allowing the coordinates to be more easily seen (e.g. for specifying in lattice_resolver()).
  • the search angle range is now exposed in lattice_resolver() through the search_dangle parameter.
  • the optimise_lattice() function now performs a weighted fit if the weights are specified in the weights parameter.
  • blob_log_detect() now extracts a signal metric and returns it in an additional column, which may be used for weighting the lattice fit, or for other purposes.
  • new background_erosion() function to perform background estimation and removal in diffraction images.
  • new multithreaded non-rigid image alignment class AlignNR.

fpd_processing module:

  • nrmse() can now handle nans by setting the parameter allow_nans to True.

fpd_file module:

  • chunking for sum image calculations in write_hdf5() is now automated, with control set by the new MiB_max parameter.

Others:

Plus many minor improvements.

Release 0.1.10 (7 April 2020)

Release 0.1.9 (1 March 2020)

  • reverse angle direction in disc_edge_sigma() for consistency.
  • new sum_ax() function for summing over an axis.
  • fix bug in reshaping phase_correlation() with pre_func and post_func.
  • add rebin option to downscaling in synthetic_aperture() (now the default method).
  • add rebin option to downscaling in disk_image().
  • improve normalisation of live radius plotting in dpc_explorer_class.
  • new tem_tools/airy_fwhm() function in tem_tools module.
  • radial_average() is marked as deprecated in favour of the new and currently identical radial_profile() function.
  • drop hyperspy option from disc_edge_sigma() function.
  • fix edge-case bug center_of_mass() when using pre_func but not rebinning.
  • phase_correlation() can now be set to not perform derivatives with sigma=0.
  • sum_ax() progress bar can now be disabled with progress_bar=False.
  • shift_im() now has multiple methods for image shifting (default is now linear).
  • new disc_edge_properties() to replace the simpler disc_edge_sigma() function. The latter is deprecated and will be removed in a future release. The former performs more analysis and returns a namedtuple with many additional properties extracted.
  • the array interface of MerlinBinary progress bar is now suppressed (re-enable with array_interface_progress_bar=True).
  • write_hdf5() now uses functions in fpd_processing for sum images.
  • some optimisation of file conversion with write_hdf5().
  • write_hdf5() now accepts a function to manipulate images during conversion (doc: Data Manipulation).
  • new fpd_to_tuple() function for accessing our HDF5 files (doc: Updating Files).

Release 0.1.8 (4 November 2019)

  • updates for compatibility with most recent skimage and numpy.

Release 0.1.7 (1 September 2019)

Release 0.1.6 (24 March 2019)

Release 0.1.5 (18 February 2019)

Release 0.1.3 (31 July 2018)

25 Mar 2018