Skip to content

Releases: kmnhan/erlabpy

v3.0.0

06 Nov 13:26
Compare
Choose a tag to compare

v3.0.0 (2024-11-06)

Breaking Changes

  • Deprecated module erlab.io.utilities is removed. Use erlab.io.utils instead. (e189722)

  • Deprecated module erlab.interactive.utilities is removed. Use erlab.interactive.utils instead. (af2c81c)

  • Deprecated module erlab.characterization is removed. Use erlab.io.characterization instead. (8d770bf)

  • Deprecated module erlab.analysis.utils is removed. Use erlab.analysis.transform.shift and erlab.analysis.gold.correct_with_edge. (0b2ca44)

  • Deprecated alias slice_along_path in erlab.analysis is removed. Call from erlab.analysis.interpolate instead. (305832b)

  • Deprecated aliases correct_with_edge and quick_resolution in erlab.analysis are removed. Call from erlab.analysis.gold instead. (075eaf8)

  • Removed deprecated aliases load_igor_ibw and load_igor_pxp. Use xarray.open_dataarray and xarray.open_dataset instead. (7f07ad2)

  • The default attribute name for the sample temperature is changed to sample_temp from temp_sample. This will unfortunately break a lot of code that relies on the key temp_sample, but will be easy to refactor with find and replace. (32e1cd5)

  • All dataloaders must now add a new keyword argument to load_single, but implementing it is not mandatory.

    Also, dataloaders that implements summary generation by overriding generate_summary must now switch to the new method.

    See the summary generation section in the updated user guide.

    Furthermore, the isummarize method is no longer public; code that uses this method should use summarize instead.

    The usecache argument to the summarize method is no longer available, and the cache will be updated whenever it is outdated. (0f5dab4)

Features

  • io.igor: enable loading experiment files to DataTree (1835be0)

    Added methods to the backend to allow using xarray.open_datatree and xarray.open_groups with Igor packed experiment files. Closes #29

  • add qinfo accessor (eb3a742)

    Adds a qinfo accessor that prints a table summarizing the data in a human readable format. Closes #27

  • interactive.kspace: pass lattice parameters and colormap info to ktool (6830af3)

    Added the ability to pass lattice vectors and colormaps to ktool.

  • interactive.kspace: add circle ROI to ktool (304e1a5)

    Added a button to the visualization tab which creates a circle ROI. The position and radius can be edited by right-clicking on the roi.

  • interactive.colors: add zero center button to right-click colorbar (c037de1)

  • interactive.imagetool: add .ibw and .pxt files to load menu (73c3afe)

  • io.dataloader: allow passing rcParams to interactive summary plot (a348366)

  • io.dataloader: implement automatic summary generation (0f5dab4)

    It is now much easier to implement a summary generation mechanism. This commit also adds a new keyword argument to load_single that can greatly speed up summary generation.

  • io.dataloader: support callable objects in additional_attrs (e209499)

Bug Fixes

  • interactive.imagetool: fix copy cursor value for numpy 2 (dc19c82)
  • io.dataloader: retain selected dimension in interactive summary (9d54f8b)
  • accessors.general: keep associated coords in qsel when averaging (03a7b4a)
  • io.dataloader: ignore old summary files (bda95fc)
  • io.plugins.kriss: fix KRISS ibw file match pattern (7ced571)
  • analysis.gold: retain attributes in quick_resolution (504acdc)
  • do not require qt libs on initial import (118ead6)

Code Refactor

  • io.igor: change wave dimension name handling (3e0586a)

    Waves with both dim and unit labels provided were given a dim label formatted like dim(unit). This update changes this so that the dim label is just dim, and the unit is inserted to coordinate attrs.

  • io: remove deprecated module (e189722)

  • interactive: remove deprecated module (af2c81c)

  • remove deprecated module erlab.characterization (8d770bf)

  • analysis: remove deprecated module (0b2ca44)

  • analysis: remove deprecated alias (305832b)

  • analysis: remove deprecated aliases (075eaf8)

  • interactive.imagetool.manager: add prefix to temporary directories for better identification (e56163b)

  • io.plugins: implement DA30 file identification patterns in superclass (f6dfc44)

  • io: remove deprecated aliases (7f07ad2)

  • change temperature attribute name (32e1cd5)

    Changes temp_sample to sample_temp for all data loaders and analysis code.

  • utils.formatting: change formatting for numpy arrays (95d9f0b)

    For arrays with 2 or more dimensions upon squeezing, only the minimum and maximum values are shown. Also, arrays with only two entries are displayed as a list.

  • io.dataloader: disable parallel loading by default (fed2428)

    Parallel loading is now disabled by default since the overhead is larger than the performance gain in most cases.

  • change some warnings to emit from user level (e81f2b1)

  • io.dataloader: cache summary only if directory is writable (85bcb80)

  • io.plugins: improve warning message when a plugin fails to load (9ee0b90)

  • io: update datatree to use public api (6c27e07)

    Also bumps the minimum supported xarray version to 2024.10.0.

  • io.dataloader: make RegistryBase private (df7079e)

  • io.dataloader: rename loader registry attribute default_data_dir to current_data_dir (d87eba7)

    The attribute default_data_dir has been renamed to current_data_dir so that it is consistent with current_loader. Accessing the old name is now deprecated.

    Also, the current_loader and current_data_dir can now be assigned directly with a syntax like erlab.io.loaders.current_loader = "merlin".

Performance

Read more

v2.12.0

22 Oct 13:06
Compare
Choose a tag to compare

v2.12.0 (2024-10-22)

Features

  • interactive.imagetool: add normalization option to View menu (53e2cf2)

  • io.dataloader: allow passing additional arguments to load_single (1652c20)

  • io.plugins: add support for two new beamlines, closes #61 (368263e)

    Added plugins with preliminary support for Diamond I05 and ALBA BL20 LOREA.

  • io: add nexusutils module for working with NeXus files (2532941)

    This commit adds a new submodule io.nexusutils that contains utilities for converting NeXus data to xarray data structures.

Bug Fixes

  • erlab.io.plugins.merlin: resolve typo in file dialog methods (39caa99)
  • erlab.accessors.general: make qsel accessor work along dimensions with no coordinates (7f0d259)
  • interactive.imagetool: avoid errors on termination (9fd044b)

Code Refactor

  • io: return path-like objects instead of strings in get_files (2eb9166)

[main 4b366a0] bump: version 2.11.2 → 2.12.0
2 files changed, 24 insertions(+), 1 deletion(-)

v2.11.2

14 Oct 09:51
Compare
Choose a tag to compare

v2.11.2 (2024-10-14)

Bug Fixes

  • io.dataloader: fix coordinate_attrs not being propagated (278675b)

[main f26621d] bump: version 2.11.1 → 2.11.2
2 files changed, 7 insertions(+), 1 deletion(-)

v2.11.1

14 Oct 04:05
Compare
Choose a tag to compare

v2.11.1 (2024-10-14)

Code Refactor

  • add app icon for imagetool manager (e1cbcd2)

[main 7becb7c] bump: version 2.11.0 → 2.11.1
2 files changed, 7 insertions(+), 1 deletion(-)

v2.11.0

13 Oct 16:45
Compare
Choose a tag to compare

v2.11.0 (2024-10-13)

Features

  • io.dataloader: add new argument that can control combining (bdec5ff)

    Adds a new parameter combine to io.load. If False, returns a list of post-processed files without attempting to concatenate or merge the data into a single object. If True, retains the current default behavior.

Bug Fixes

  • imagetool: allow coords of any dtype coercible to float64 (4342ebc)
  • io.dataloader: properly handle combining multi-axis scans (2cd22c7)

Code Refactor

  • io.plugins: update type hints (54d0c5d)
  • remove unused imports (f1e35de)
  • interactive: add informative error message for missing pyqt (1347a02)
  • io.plugins: add warning when plugin load fails (ed5b184)

[main 8e66420] bump: version 2.10.0 → 2.11.0
2 files changed, 21 insertions(+), 1 deletion(-)

v2.10.0

08 Oct 06:38
Compare
Choose a tag to compare

v2.10.0 (2024-10-08)

Features

  • io.plugins: add loader for beamline ID21 ESM at NSLS-II (c07e490)

    This commit adds a new data loader for beamline ID21 ESM at NSLS-II, Brookhaven National Laboratory.

  • io.dataloader: add formatters (2ee9a4a)

    A new attribute named formatters and a new method get_formatted_attr_or_coord has been added to loaders. This allows custom per-attribute pretty-printing behavior.

  • io: add parallel argument to load (88cd924)

  • io: add xarray backend for igor files (1fe5ca5)

    .pxt, .pxp, and .ibw files can now be opened with xarray methods such as xr.open_dataset and xr.open_dataarray. See the updated user guide for more information.

Bug Fixes

  • io.dataloader: properly reorder coordinates (3ebfb0f)

    Coordinate order was broken for loaders which assign coordinates in inherited post_process. This is now fixed, and returned data will be consistently ordered with respect to the mapping, with the dimension coordinates coming first.

  • erlab.io.plugins.maestro: temporary fix for xarray issue (c2d04a3)

  • io.plugins.da30: properly handle output types (6297aba)

    The DA30 loader now tries to return a dataset from .zip files only when there are no coordinate conflicts. In the case of conflicts, the loader will return a DataTree.

    Also, single region DA30 .pxt files will now return a DataArray consistent with the equivalent .ibw file.

  • interactive.fermiedge: allow transposed input to fermi edge fitting tool (dcae75e)

  • interactive.imagetool: retain attrs when exporting slice (1bed572)

    When accessing the data of a single slice from the right-click menu of ImageTool, the attributes of the original data are now kept. This allows saved slices or data opened in other tools to retain their attributes.

  • resolve gui script not working on windows with conda (62253d0)

  • io.dataloader: clear plot before loading in interactive summaries (21d6dea)

  • plotting.general: fix plot_slices compatibility with slice object as argument (5948a7b)

  • io: disable memmapping when loading data (c39da1b)

    Memmapping seemed to interfere loading multiple files when called through ipywidgets.

Code Refactor

  • io.utils: use pathlib in get_files (b7a0f5b)

  • io.plugins.merlin: combine ImageTool file menu into single entry (6e28ac2)

  • io: add postprocessing and validation for DataTree objects (3fb3ff5)

  • io: add warning when file is ambiguous (8daabb8)

  • io: remove renaming steps from load_single in multi-file loaders (542f4f2)

    Combining before renaming coords should be more straightforward

  • io: allow missing alpha coord (c9deed4)

    Validation checks will not warn about missing detector angle, allowing XPS measurements.

  • io.dataloader: only allow real file or folder names as input (b9a59cc)

    The previous behavior allowed passing f_001.pxt to load f_001_S001.pxt, f_001_S002.pxt... but this was confusing since there is no file named f_001.pxt. This commit disallows such input.

  • cleanup erplot namespace (007eedb)

  • io: implement metaclass (e787b1c)

    Whenever the identify() method failed to find any files, subclasses had to explicitly raise FileNotFoundError. This resulted in a lot of boilerplate code and ambiguous error messages. Now, all subclasses can just return None in identify() when no files are found. The appropriate error is automatically raised.

  • io.igor: raise OSError on load fail (6c7a4c4)

  • move dataloader cell formatting implementation to utils module (0f2cb1c)

  • io: deprecate calling igor functions from top level namespace (bb8af7c)

    Calling erlab.io.load_wave and erlab.io.load_experiment is deprecated. When writing new code, use xarray.load_dataarray and xarray.load_dataset instead.

Performance

  • interactive.imagetool: improve manager speed (891c4ee)

[main 04f06a0] bump: version 2.9.1 → 2.10.0
2 files changed, 6 insertions(+), 2 deletions(-)

v2.9.1

03 Sep 05:18
Compare
Choose a tag to compare

v2.9.1 (2024-09-03)

Fix

  • ui file compatibility with Qt5 (66c776d)

[main 2cf1ef8] bump: version 2.9.0 → 2.9.1
2 files changed, 7 insertions(+), 1 deletion(-)

v2.9.0

30 Aug 11:37
Compare
Choose a tag to compare

v2.9.0 (2024-08-30)

Feat

  • interactive.imagetool: add rotation (fdeb8a9)

    A rotation dialog has been added to the Edit menu. Rotation guidelines can be overlaid on the main image.

  • interactive.utils: add rotatable lines that can be rotated by dragging (31b55e5)

  • analysis.transform: add rotate function (83a2ad8)

    Added a new function that can rotate DataArray values using spline interpolation. Previous simple implementations are marked as deprecated.

  • utils.array: add new functiontrim_na (c628b5b)

    This function trims the edges of DataArrays where all values are NaN.

  • accessors.kspace: add method argument (204073e)

    Momentum conversion through the convert() method of the kspace accessor now supports an additional keyword argument method that can be used to choose different interpolation methods supported by scipy.interpolate.RegularGridInterpolator. Note that methods other than 'linear' will take much longer to execute.

  • analysis.interpolate: add solver args (24be3b0)

    FastInterpolator now supports solver and solver_args keyword arguments introduced in scipy 1.13.0.

  • interactive.colors: implement BetterColorBarItem limit editor (7dd1477)

    A new context menu in BetterColorBarItem's viewbox enables manually editing color limits.

  • analysis.interpolate: implement slicing along a vector (cba8567)

    A new function slice_along_vector has been added which enables interpolating through a line defined by a vector and a point.

  • interactive.imagetool: add goldtool and dtool to menu (33d5e35)

    The interactive tools goldtool and dtool are now directly accessible from the right-click menu of 2D images in ImageTool.

  • accessors.general: add option to qsel.around to disable averaging (5aaed85)

  • plotting.general: add NonUniformImage functionality to plot_array (86d8c1a)

    plot_array can now plot data with unevenly spaced coordinates. It uses matplotlib.image.NonUniformImage with the default interpolation option set to 'nearest'. The resulting plot may be different from xarray.DataArray.plot which uses pcolormesh to generate image plots.

  • interactive.imagetool: add copy limits to colorbar menu (29c37c4)

    Right-clicking on the colorbar will now show a menu which contains a button that copies the current color limits to the clipboard. This is useful when manually adjusting color limits.

Fix

  • interactive.imagetool: properly disconnect signals (dce236f)
  • interactive.imagetool: fix autoscale when loading data (2c12f59)
  • interactive.imagetool: scale spinbox decimals relative to coordinate step size (9a801a5)
  • interactive.utils: update BetterSpinBox width on changing decimals (0a70884)
  • interactive: fix compatibility issue with PySide6 (da5f4af)
  • interactive.imagetool: do not copy code when unnecessary (9131029)
  • accessors.general: qshow now triggers hvplot properly for 1D data (8a84813)
  • interactive.imagetool: make manager socket use default backlog (0ac7f0b)
  • interactive.imagetool: ensure proper socket termination in manager (2cceb27)

Refactor

  • interactive.utils: improve code generation (78c403f)

  • analysis: move shift to transform (08baf05)

    The shift function has been moved from utils to transform. Calling from the utils module is now deprecated.

  • analysis: cleanup namespace (e3e641d)

    Three functions that were directly accesible from the erlab.analysis namespace are now deprecated. Import them from their respective modules.

  • remove deprecated module analysis.utilities (8b79ab5)

  • analysis.image: add check for NaN in input (095554f)

    Derivative functions now check for NaNs in input data and raise a warning.

    The interactive derivative tool automatically fills NaNs in the input data with zeros and shows a warning message.

  • remove unpacking inside np.r_ (6c27864)

  • improve initial import time (f720973)

[main de5f096] bump: version 2.8.5 → 2.9.0
2 files changed, 24 insertions(+), 2 deletions(-)

v2.8.6

07 Aug 05:36
Compare
Choose a tag to compare

v2.8.6 (2024-08-07)

Refactor

  • improve initial import time (f720973)

[main 511a2fc] bump: version 2.8.5 → 2.8.6
2 files changed, 7 insertions(+), 1 deletion(-)

v2.8.5

31 Jul 08:24
Compare
Choose a tag to compare

v2.8.5 (2024-07-31)

Fix

  • plotting.annotations: properly pass keyword arguments in mark_points_outside (2136939)
  • plotting.annotations: expose property label generation to public api (545781d)

[main 17678ef] bump: version 2.8.4 → 2.8.5
2 files changed, 8 insertions(+), 1 deletion(-)