New features
* In addition to tuples, Shape objects can be used as extra_shape parameter for libertem.udf.base.UDF.buffer() and libertem.udf.base.UDF.aux_data() now. (694)
* Progress bar support based on tqdm that can be enabled by passing progress=True to libertem.api.Context.run_udf(), libertem.api.Context.run() and libertem.api.Context.map(). See also Using progress bar. (613, 670, 655)
* Include explicit support for Direct Electron’s DE5 format based on HDF5. (704)
* GUI: Downloadable results as HDF5, NPZ, TIFF, and RAW. See Downloading results for details. (665)
* libertem.api.Context.load() now automatically detects file type and parameters if filetype="auto" is passed. (610, 621, 734)
* Relocatable GUI: Allow LiberTEM to run from different URL prefixes, allowing integration into, for example, JupyterLab. (697)
* Run preprocess() also before merge on the master node to allocate or initialize buffers, in addition to running on the workers (624).
* No need to set thread count environment variables anymore since the thread count for OpenBLAS, OpenMP, Intel MKL and pyFFTW is now set on the workers at run-time. Numba support will be added as soon as Numba 0.49 is released. (685).
Bugfixes
* A large number of usability improvements (622, 639, 641, 642, 659, 666, 690, 699, 700, 704). Thanks and credit to many new contributors from GSoC!
* Fixed the buggy “enable Direct I/O” checkbox of the RAW dataset and handle unsupported operating systems gracefully. (696, 659)
Documentation
* Added screenshots and description of ROI and stddev features in usage docs (669)
* Improved instructions for installing LiberTEM (general: 664; for development: 598)
* Add information for downloading and generating sample datasets: Sample Datasets. (650, 670, 707)
Obsolescence
* Parameters crop_detector_to and detector_size_raw of libertem.io.dataset.raw.RawFileDataSet are deprecated and will be removed after 0.6.0. Please specify detector_size instead or use a specialized DataSet, for example for EMPAD.
* libertem.udf.feature_vector_maker.FeatureVecMakerUDF is deprecated and will be removed in 0.6.0. Use ApplyMasksUDF with a sparse stack of single pixel masks or a stack generated by libertem_blobfinder.common.patterns.feature_vector() instead. (618)
Misc
* Clustering analysis
* Use a connectivity matrix to only cluster neighboring pixels, reducing memory footprint while improving speed and quality (618).
* Use faster ApplyMasksUDF to generate feature vector (618).
* StdDevUDF
* About 10x speed-up for large frames (625, 640)
* Rename result buffers of StdDevUDF, run_stddev() and consolidate_result() from 'sum_frame' to 'sum', 'num_frame' to 'num_frames' (640)
* Resolve ambiguity between variance and sum of variances in result buffer names of StdDevUDF, run_stddev() and consolidate_result(). (640)
* LiberTEM works with Python 3.8 for experimental use. A context using a remote Dask.Distributed cluster can lead to lock-ups or errors with Python 3.8. The default local Dask.Distributed context works.
* Improve performance with large tiles. (649)
* SumUDF moved to the libertem.udf folder (613).
* Make sure the signal dimension of result buffer slices can be flattened without creating an implicit copy (738, 739)
Travis CI build log: https://travis-ci.org/LiberTEM/LiberTEM/builds/678579836