Erlab

Latest version: v3.8.2

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 12

3.8.2

🐞 Bug Fixes

- **analysis.transform.symmetrize:** fix compatibility with data including NaN ([ce173ce](https://github.com/kmnhan/erlabpy/commit/ce173ce8fc067ee2d9898f89883f7120b9784f47))

- **formatting:** make float formatting use scientific notation for very small values ([83843a0](https://github.com/kmnhan/erlabpy/commit/83843a047c5b38a6e68d92eb2fb430fa744652f7))

- **plugins.erpes:** promote more attributes to coords ([c2c066a](https://github.com/kmnhan/erlabpy/commit/c2c066ae7bc09af69f393c4cf79e00fc925baaf0))

- **dataloader:** allow datetime and callable objects in `additional_coords` ([732288f](https://github.com/kmnhan/erlabpy/commit/732288f585cef6b2b8cff86cb9c35aa9cbaff2dd))

- **imagetool:** update associated coords on show and reload; ensure float64 type for associated coordinates ([1958b80](https://github.com/kmnhan/erlabpy/commit/1958b80e47bac3bb4424733c18d66a4ebfa09668))

- **qsel:** allow passing arrays to simultaneously select multiple indices ([a5c987b](https://github.com/kmnhan/erlabpy/commit/a5c987bca3bd1fd0d3874129c9bc33226716ed8a))

`DataArray.qsel` now supports collection arguments. For example, actions like `darr.qsel(x=[1, 2, 3], x_width=2)` now works properly.

- **analysis.fit.functions:** allow passing arrays to any argument ([ffe4914](https://github.com/kmnhan/erlabpy/commit/ffe491459c555e05ecde9015559298375aad7347))

⚡️ Performance

- **imagetool.manager:** improve server responsiveness (117) ([255c04f](https://github.com/kmnhan/erlabpy/commit/255c04f7f1950fa06bfd466f0137d3d616a23b8d))

Changes the internal detection mechanism for running manager instances to be more reliable, along with some server side micro-optimizations.

♻️ Code Refactor

- **kspace:** hide progress messages during momentum conversion ([9eab40c](https://github.com/kmnhan/erlabpy/commit/9eab40ce1fa8c1f921c526ef71e943bc3df26aa2))

Hides the printed messages during momentum conversion by default. The messages can be enabled by passing `silent=False` to `DataArray.kspace.convert`.

- **imagetool.fastslicing:** fix type signature ordering ([a409322](https://github.com/kmnhan/erlabpy/commit/a4093224e60401d8c144d7a3bbe4429f9fe8e5e1))

3.8.1

🐞 Bug Fixes

- **fit:** allow convolution on piecewise evenly spaced domain ([0d2c7e3](https://github.com/kmnhan/erlabpy/commit/0d2c7e3e4abcf8f6a438b4ed7a9378c4c104bf0b))

⚡️ Performance

- **utils.array:** micro-optimizations for uniformity check ([4d4da4d](https://github.com/kmnhan/erlabpy/commit/4d4da4d2bc4652a6d4160bd56134679845e6cf2c))

3.8.0

✨ Features

- **kspace:** add method to convert between experimental configurations ([7a426a8](https://github.com/kmnhan/erlabpy/commit/7a426a85c0346c7fcf9e9f5e78f2cafc2b9701b7))

Adds a new method `DataArray.kspace.as_configuration` that allows the user to easily correct data loaded in the wrong configurations. This is useful for setups where the experimental geometry can be changed.

- **io.plugins:** add `mbs` plugin for setups based on MB Scientific AB analyzers (112) ([43e454b](https://github.com/kmnhan/erlabpy/commit/43e454b1b27aa9a538449875b2df92284a845c8f))

- **imagetool:** add Symmetrize dialog ([4ebaeab](https://github.com/kmnhan/erlabpy/commit/4ebaeabf7d0c34420e4b32080a2ac96641aca228))

- **imagetool.dialogs:** enhance CropToViewDialog with dimension selection and validation ([6394121](https://github.com/kmnhan/erlabpy/commit/6394121c9f428d522dd919e98451598b417fa1fb))

- **imagetool:** add Average dialog for averaging data over selected dimensions ([2e81aec](https://github.com/kmnhan/erlabpy/commit/2e81aecb88fe057d2028191bb9ff5da5044c6175))

- **imagetool:** include rotation angle in rotation transform suffix ([2842c5f](https://github.com/kmnhan/erlabpy/commit/2842c5f0a29b4a49e7b2ef9945f7380e04f2b3e4))

- **imagetool.manager:** add new action to refresh ImageTool data from the file it was loaded from. ([d822f73](https://github.com/kmnhan/erlabpy/commit/d822f7378291781a3ced5a4834f7c99220a3bf9f))

When performing real-time data analysis, it is often necessary to update the data in the ImageTool from the file it was loaded from. This commit adds a new `Reload Data` action to the right-click context menu of the ImageTool manger. The action is only visible when the data can be properly reloaded.

- **imagetool:** retain cursor info when loading new data that is compatible with the current data ([917851f](https://github.com/kmnhan/erlabpy/commit/917851fd9be8375f374eb6e2ea0db7d68d40d124))

- **analysis.gold:** `gold.poly` now returns a fit result Dataset instead of a lmfit modelresult. ([ff224e7](https://github.com/kmnhan/erlabpy/commit/ff224e7d16ef7c104a1f54ab93b16d02b989cbaf))

- **analysis.gold:** add background slope option for Fermi edge fitting ([513e531](https://github.com/kmnhan/erlabpy/commit/513e531f7fb44365841b8079e36fcabe8f86254a))

- **io:** allow temporary overriding of loader properties (101) ([bd4c50b](https://github.com/kmnhan/erlabpy/commit/bd4c50bb7cde93ea9a0d88dfb442349f18985fe0))

Adds a new context manager, `erlab.io.extend_loader`, for temporarily overriding data loader behaviour.

This is especially useful for data across multiple files, where the user can specify additional attributes to treat as coordinates, allowing them to be concatenated.

- **explorer:** add image preview and fine-grained loading control ([dca8fcb](https://github.com/kmnhan/erlabpy/commit/dca8fcb6f4803cce39436d7610c98c9ebe2e9403))

- **imagetool:** implement non-dimension coordinate plotting ([48eac24](https://github.com/kmnhan/erlabpy/commit/48eac242e0d08fba8aa5e4f5e94c05d6db144003))

1D Non-dimension coordinates associated with a data dimension can now be plotted alongside 1D slices on a secondary axis.

For instance, if an ARPES map has a temperature coordinate that varies for each mapping angle, the temperature coordinate can be plotted as a function of angle.

The plot can be toggled in the added item inside the `View` menu of the menu bar in ImageTool.

- add accessor method for averaging over dimensions while retaining coordinates ([90d28fb](https://github.com/kmnhan/erlabpy/commit/90d28fbe27114e6191b2b777c3d8fefc96e607cb))

Adds `DataArray.qsel.average`, which takes dimension names and calls `DataArray.qsel` with the bin widths set to infinity. Unlike `DataArray.mean`, the new method retains coordinates associated with the averaged dimension.

- **analysis.fit.functions:** make several fitting functions xarray-aware ([53b3688](https://github.com/kmnhan/erlabpy/commit/53b368813f570cef2c84a9517c618428310a4a2e))

- **utils.array:** add `broadcast_args` decorator for DataArray broadcasting ([76149b9](https://github.com/kmnhan/erlabpy/commit/76149b97c1c380b0f67482d668359715b86251b2))

Adds a new decorator that enables passing DataArrays to functions that only accepts numpy arrays or always returns numpy arrays, like numba-accelerated functions and some scipy functions.

- **analysis.transform:** add `symmetrize` (97) ([aefb966](https://github.com/kmnhan/erlabpy/commit/aefb966db44f940a795857b56e6f5d550f53549c))

Adds a new method `erlab.analysis.transform.symmetrize` for symmetrizing data across a single coordinate.

🐞 Bug Fixes

- **imagetool:** center rotation guidelines on cursor position upon initialization ([18a7114](https://github.com/kmnhan/erlabpy/commit/18a711447523b21158f397d5d983d1a4ba8383e5))

- **io.plugins.kriss:** support tilt compensated angle maps ([0229ea2](https://github.com/kmnhan/erlabpy/commit/0229ea21311a187f744543cdf18907f3359ded1d))

- **io:** enforce native endianness for Igor Pro waves (114) ([92fe389](https://github.com/kmnhan/erlabpy/commit/92fe3899cd655a3919439456f25f4e2e21369456))

Data loaded from Igor Pro waves will now be converted to have native endianness. Some old data were loaded in big-endian by default, causing incompatibility with several numba functions, with ambiguous error messages.

- **io.plugins.kriss:** properly assign rotation axes names ([3dcb2ae](https://github.com/kmnhan/erlabpy/commit/3dcb2ae26b4e641fd05fb9e573f6306d77850726))

- **imagetool.dialogs:** make new windows opened within data transformation dialogs forget file path information ([7a012cd](https://github.com/kmnhan/erlabpy/commit/7a012cd2a21f8f3a3c65c1be0d50f8854aa3817d))

- **imagetool:** properly handle integer coordinates, closes [94](https://github.com/kmnhan/erlabpy/issues/94) ([5f0cd36](https://github.com/kmnhan/erlabpy/commit/5f0cd36d4b5bae03f6e689eea45557c55cd3ff45))

- **imagetool:** correct 1D data axis padding ([68f59e9](https://github.com/kmnhan/erlabpy/commit/68f59e903cc9822f665c5c790a8296b7142358fb))

- **imagetool:** allow loading data saved with non-default colormap (102) ([c476be2](https://github.com/kmnhan/erlabpy/commit/c476be2775fb7f0e2a08f4a74346d419e3dc0e05))

- **io.dataloader:** preserve darr name when loading without values ([3310ed6](https://github.com/kmnhan/erlabpy/commit/3310ed61e0ce7fb6f5569a455252fec5d173e54b))

- **imagetool:** allow data with constant coordinates ([6ed4f2b](https://github.com/kmnhan/erlabpy/commit/6ed4f2b34c6c027cc06c565afa191dd97aa753b4))

- **imagetool.manager:** disable scrolling in image preview ([bd77e8d](https://github.com/kmnhan/erlabpy/commit/bd77e8d17db4a5b09cdacb1263d66da6f2bb8ec5))

- **io.plugins.da30:** zero DA offset for non-DA lens modes (96) ([a3bdf84](https://github.com/kmnhan/erlabpy/commit/a3bdf8400278a1df9b38d40d7d9a33135bfb0961))

♻️ Code Refactor

- move fitting accessors to `xarray-lmfit` (110) ([9106cef](https://github.com/kmnhan/erlabpy/commit/9106cef37a9c4e1b40ff78fea96ae2b8efd3ce07))

`DataArray.modelfit` and `Dataset.modelfit` are deprecated. The functionality has been moved to the [xarray-lmfit](https://github.com/kmnhan/xarray-lmfit) package, and can be accessed via `DataArray.xlm.modelfit` and `Dataset.xlm.modelfit` as a drop-in replacement.

- **ktool:** adjust default lattice parameter spinbox step to 0.1 for finer adjustments ([d7cba80](https://github.com/kmnhan/erlabpy/commit/d7cba80eaba9111180d4f05e089931106b83650b))

- improve error message for missing hvplot package ([a0c2460](https://github.com/kmnhan/erlabpy/commit/a0c246024f990f2862915517175a3a4e365c9b22))

- **utils.array:** simplify decorators for 2D array checks ([7275e2e](https://github.com/kmnhan/erlabpy/commit/7275e2e0b276a401f377fb68df195891e61cac0e))

3.7.0

✨ Features

- **imagetool:** add 'Crop to View' functionality ([ab6976b](https://github.com/kmnhan/erlabpy/commit/ab6976bd3f74ed648547a8aee72d41b8d3e1d9eb))

Adds new menu option that crops the data to the currently visible axes limits.

- **explorer:** remember scroll location when selecting a different file ([ae58268](https://github.com/kmnhan/erlabpy/commit/ae5826872c3d13f96ef628dc5aadc37c31715d40))

- **imagetool:** reimplement axis linking logic ([8f8648c](https://github.com/kmnhan/erlabpy/commit/8f8648c6e9bc409dc936032b0d5a27a9eefc806f))

Limits for all axes that correspond to the same dimension are now shared.

Furthermore, view limits are now also shared across linked tools.

- **io.dataloader:** display progress bar when loading data from multiple files (91) ([4d3a704](https://github.com/kmnhan/erlabpy/commit/4d3a70445b4cfa460ad63a8966309349f393fe7b))

A progress bar is now displayed by default when loading data that spans multiple files. The visibility of the progress bar can be controlled with the newly added `progress` argument to `erlab.io.load`.

🐞 Bug Fixes

- **imagetool:** improve manual range handling and auto range behavior ([4864129](https://github.com/kmnhan/erlabpy/commit/4864129e42f01313a4be60a136bae223ece83097))

- **imagetool:** adjust bin spinbox range to include maximum data shape ([701e189](https://github.com/kmnhan/erlabpy/commit/701e18949ca9acd0cb832745c49812b86bafde14))

- **imagetool.manager:** resolve exceptions that sometimes appear on initialization ([04c23ba](https://github.com/kmnhan/erlabpy/commit/04c23ba0c1fdc460a37a096465a8505bf3d42a3e))

- **imagetool.manager:** ensure compatibility with lazy-loaded data ([6d57e13](https://github.com/kmnhan/erlabpy/commit/6d57e13e66339161935c47d524e1822bd65c20b8))

- **analysis.gold:** fix incorrect normalization for Fermi edge fits and add resolution parameter ([1fe773d](https://github.com/kmnhan/erlabpy/commit/1fe773d685b3422225df9b39f1ebac34edda33bd))

- **analysis.fit.functions.general:** properly normalize convolution kernel for small sigma ([390769e](https://github.com/kmnhan/erlabpy/commit/390769e031e10b343da2f38438f84350007cafc4))

- **ktool:** resolve incompatibility with hv-dependent data (88) ([472e98e](https://github.com/kmnhan/erlabpy/commit/472e98ee35a062a524cff0ec774d704007a594b8))

⚡️ Performance

- **analysis.fit.models.FermiEdgeModel:** micro-optimizations related to EF guessing ([afc5c90](https://github.com/kmnhan/erlabpy/commit/afc5c9026b0a72c488f11a32d30e8c5ce3cfbe24))

♻️ Code Refactor

- **io.plugins.da30:** show error for invalid zip files ([4c348e6](https://github.com/kmnhan/erlabpy/commit/4c348e6671306cb3d3608ddfc5ebfbf629371884))

- **goldtool:** add initial resolution spinbox ([9d8dd8d](https://github.com/kmnhan/erlabpy/commit/9d8dd8d4269371a561dffe3f9c6cb369af57f03e))

- **analysis.gold.quick_fit:** enable resolution plot customization through keyword arguments ([a3058e6](https://github.com/kmnhan/erlabpy/commit/a3058e65248f0f28a680af97e075930dac79fc1a))

- **io.plugins.da30:** support loading unzipped DA30 scans (89) ([eadc676](https://github.com/kmnhan/erlabpy/commit/eadc6760bbf6ddad635bcac10b829c234662b59e))

3.6.0

✨ Features

- add support for Python 3.13, closes [58](https://github.com/kmnhan/erlabpy/issues/58) ([df4f479](https://github.com/kmnhan/erlabpy/commit/df4f479b5a388d111f397e1d999ae8a4f995d427))

- **explorer:** add a new interactive tool for browsing file systems ([a70b222](https://github.com/kmnhan/erlabpy/commit/a70b222b4113b97697b30c376095295056bd928f))

Adds a `explorer` GUI window that provides a view of the file system with a summary of selected ARPES data files.

The window can be started within ImageTool Manager from the File menu, or as a standalone application with `python -m erlab.interactive.explorer`.

Closes [83](https://github.com/kmnhan/erlabpy/issues/83).

- **misc:** add function to open directory in system's file manager ([7d3db3f](https://github.com/kmnhan/erlabpy/commit/7d3db3ff5674bfc88e2a99cc0f662286ca79f795))

🐞 Bug Fixes

- **io.exampledata:** replace `sph_harm` deprecated in scipy 1.15.0 with `sph_harm_y` ([eba902c](https://github.com/kmnhan/erlabpy/commit/eba902c9d4dacd682207e456fe744ebe5b6486d5))

- **interactive.utils:** ignore all other arguments for separator actions in `DictMenuBar` ([5c94b92](https://github.com/kmnhan/erlabpy/commit/5c94b9286fe11501dc2b5e9a4dc9deb46387cabf))

This fixes unintended text showing alongside menubar separators in some operating systems.

- **imagetool.manager:** fix archived files being deleted after a few days ([7d93442](https://github.com/kmnhan/erlabpy/commit/7d93442376f90d5f9e48d2666fc2db0691247aad))

♻️ Code Refactor

- **io.exampledata:** update sph_harm usage to match scipy 1.15.0 changes ([1dde195](https://github.com/kmnhan/erlabpy/commit/1dde195b556a91e92b0445a33c46c134a02bc901))

- replace direct `typing` imports with namespace imports ([fc2825d](https://github.com/kmnhan/erlabpy/commit/fc2825d2a0459ae81a5d3791051807449dd5e361))

- **imagetool:** update type hints and preload fastbinning module ([ab0b3fd](https://github.com/kmnhan/erlabpy/commit/ab0b3fdd2668fe126135f197f7cc74cd6c307f69))

- **io:** improve docs structure by reorganizing namespace ([5e2d7e5](https://github.com/kmnhan/erlabpy/commit/5e2d7e51e62d11a292da4747076ac8316b9c71fd))

- **io:** improve error messages for folders ([8d63c09](https://github.com/kmnhan/erlabpy/commit/8d63c095cb8595860c8700fbf4354845b0d2f2a8))

3.5.1

🐞 Bug Fixes

- **restool:** improve parameter guessing and copied code formatting ([0b33770](https://github.com/kmnhan/erlabpy/commit/0b33770fd5cf7a828cacaef8e465319183d03a00))

The temperature and center can now be guessed independently.

♻️ Code Refactor

- **plotting:** add `literal` option for point label formatting in `mark_points_outside`, consistent with `mark_points` ([db723fd](https://github.com/kmnhan/erlabpy/commit/db723fd8c7b926c5de2cabe033171455e9e2a92b))

- generalize fomatting DataArray to raw HTML ([85c735e](https://github.com/kmnhan/erlabpy/commit/85c735e6397747ee8fa32fa0fb5804a07aee27be))

- **analysis.gold:** add plot capability to `quick_fit` and deprecate quick_resolution ([903450b](https://github.com/kmnhan/erlabpy/commit/903450b6c74a1382a14c4cff05c90871a5d6854d))

Future code shoule use `quick_fit` with `plot=True` instead of `quick_resolution`.

- **ktool:** add work function spinbox ([31c5ae8](https://github.com/kmnhan/erlabpy/commit/31c5ae874893c99b0b41d50457b4ea82967dedb5))

- **io.dataloader:** adds a `extensions` attribute to data loaders ([a819960](https://github.com/kmnhan/erlabpy/commit/a8199603df8d1a35b0be719fa0c76fa8c29794de))

Data loaders can now choose to implement an `extensions` attribute that returns a set of file extensions supported by the loader. This reduces the possibility of the user trying to load files with a wrong loader and gives informative error messages.

- **io:** expose ``load_krax`` as public API ([3508a0a](https://github.com/kmnhan/erlabpy/commit/3508a0abffe8555317ae5f696717bc33fa609b16))

Adds a new function ``erlab.io.utils.load_krax`` that can parse MBS deflector maps saved as ``.krx``.

Page 1 of 12

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.