Skip to content

v3.22.0

Choose a tag to compare

@github-actions github-actions released this 13 May 02:03
· 132 commits to main since this release

v3.22.0 (2026-05-13)

✨ Features

  • manager: reconnect watched variables from saved workspaces (#337) (6a3d433)

    Makes watched variables in ImageTool Manager now reconnect by their name after notebook or workspace restarts.

    Users can watch a variable with the usual %watch data command, restart the notebook kernel, rerun the notebook, and run %watch data_name again to reconnect the existing watched row instead of creating a duplicate. Saved ImageTool workspaces also remember watched variables, so reopening an .itws file shows the watched rows and lets the notebook reconnect them.

    A new %watch --restore command reconnects all watched variables from the open manager workspace when matching variables exist in the notebook. This makes sharing notebooks and workspaces together straightforward: send the .itws file along with the .ipynb file, open both, execute run the notebook cells, then run %watch --restore.

    Watched rows that cannot currently connect to a notebook variable are shown as disconnected until they are restored.

  • imagetool: add interpolation dialog (#336) (f7ab159)

    Add an interpolation dialog for resampling data along a selected dimension. The dialog allows users to apply interpolation along customizable coordinates.

  • ktool: support angle-energy cuts in ktool (#332) (743eda6)

    ktool now supports displaying alpha-eV cuts.

  • manager: better manager workspace files (#333) (e8600a4)

    This is a change that significantly influences the workflow when working in ImageTool Manager. One ImageTool Manager window is now logically coupled to one workspace file, allowing you to save and load workspace documents more easily. You can save the entire state of your workspace by pressing Ctrl+S in any child window, just like working with experiment files in Igor Pro.

  • manager: support multiple manager instances (#331) (d331f82)

    Allow multiple ImageTool Manager windows to run at the same time. You can target a specific manager with a 0-based index in client code (e.g., manager=2), or set a default for the session. When multiple managers are running and no default is set, manager=True now raises an error. You can start a new manager instance from an existing manager window with the new File → New Manager Instance menu option.

    Also adds new %manager magics for listing managers, selecting a default, checking the current default, and clearing it.

  • imagetool: add coordinate and attribute editing (e0c954d)

    Allows users to add scalar coordinates, add 1D associated coordinates along existing dimensions, and edit DataArray attributes directly from ImageTool. Use Edit → Edit Coordinates and Edit → Edit Attributes to open the respective dialogs.

  • imagetool: add dialog for renaming coordinates and dimensions (a0bec2f)

    Adds an ImageTool Edit → Rename... dialog as an interface to DataArray.rename, allowing users to rename coordinates and dimensions in the ImageTool.

  • manager: prefer scan-number loading in copied code (ca59635)

    ImageTool Manager now writes cleaner copied workflow code for data loaded from files. When an ERLab loader can infer and verify the scan number for the opened file, the copied code uses erlab.io.load(scan, data_dir=...) instead of embedding the full file path.

  • imagetool: add scale and offset coordinate editing (4cf0db0)

    ImageTool’s Coordinate Editor can now transform numeric scalar and 1D coordinates with a simple new = scale * old + offset operation in a new tab.

  • imagetool: improve copied code (9c19644)

    Code copied in various workflows in ImageTool Manager now starts from a meaningful source instead of assuming an arbitrary variable named data. Watched variables keep using the watched variable name, data loaded from files includes load code when available, and others prompt for the source variable name before copying.

    Also cleans up some of the code so that unnecessary seed aliases like derived = data are not included in the copied code.

  • io: add data loader pal4a1 for PAL beamline 4A1 (#328) (4d80751)

    Updates the Igor text parser to preserve empty-unit SetScale axes as x/y/z/t and parse X Note metadata into attrs to support loading data files from PAL beamline 4A1 at Pohang.

  • imagetool: add a way to view associated coordinate values (#327) (5f5fb15)

    ImageTool now lets users inspect plotted associated coordinates values corresponding to the currently active cursor position directly from the cursor value readout. The readout source can now be selected from the value field’s right-click context menu.

    Also, the right-click context menu of profile plots now includes actions to open associated coordinates in a new ImageTool window.

  • manager: add guided loader extension editors (#325) (5912d4c)

    Add interactive helper dialogs for ImageTool manager loader extensions. The name_map and coordinate_attrs fields still support raw literal editing, but now include guided editors that inspect the first selected file, show available metadata attributes, clarify loader-provided mappings, and write the resulting literal values back into the existing fields.

  • imagetool: add divide-by-coordinate data operation (#326) (c9841be)

    Add an ImageTool Edit menu action for dividing data by a selected numeric coordinate, such as mesh current.

  • imagetool: plot multidimensional associated coordinates (#324) (a928be6)

    ImageTool can now plot numeric non-dimension coordinates with one or more dimensions from ViewPlot Associated Coordinates. Multidimensional associated coordinates are sliced with the active cursor and averaged over binned hidden dimensions, so their profile overlays stay aligned with the displayed data slice. Cursor color mapping also supports multidimensional associated coordinates by sampling the coordinate value at each cursor position.

  • io.plugins.merlin: add support for loading beamline control system scans (#317) (43ae4a6)

    Adds a new function load_bcs to the MERLIN plugin, which can load beamline control system (BCS) scan data from text files. Currently only tested with DiagOn images, but should be flexible enough to support other image columns and varying/constant numeric columns.

    This adds Pillow as a new optional dependency which is required to load .png image files.

  • imagetool: support Igor binary wave export (#318) (e06f735)

    ImageTool’s File -> Save As dialog now includes an Igor Binary Waves (.ibw) option. Exports use erlab.io.igor.save_wave, making it easier to save displayed data directly for use in Igor Pro.

🐞 Bug Fixes

  • manager: improve contrast of some text in the metadata panel in dark mode (9830ef8)

  • manager: fixes a PySide6 incompatibility related to provenance handling (c948dc0)

  • manager: preserve file information during analysis (3b7f1b7)

    ImageTool now keeps the file information when data loaded from a file is transformed in place, opened in a detached top-level window, or restored through the manager. ImageTool windows detached from the originally loaded parent now retain their full history. The manager metadata panel also shows the originating file when available.

  • imagetool: fix coordinate edit code generation (eeedeb0)

  • io.plugins.hers: correct coordinate handling for ALS BL10 data (#329) (733eb60)

    FITS data from ALS BL10 now use the nominal scan axis from the FITS header for single-motor scans, matching Igor Pro’s loader behavior. This fixes cases where analyzer rotation (Alpha, translated to beta in erlab conventions) loaded with slightly nonuniform measured readback values. The measured values are still retained as <motor>_readback coordinates for diagnostics.

    FITS binary table image axes also now interpret TRPIX as a one-based reference pixel, so TRPIX=1 starts exactly at TRVAL, matching FITS/Igor semantics. This was previously misinterpreted as zero-based, causing a one-pixel shift in the loaded data.

  • manager: respect default loader for manager file dialogs (#321) (d16dbda)

    ImageTool manager file opening now respects the default data loader setting when choosing the initial loader filter for drag-and-drop, load_in_manager(..., loader_name=None), and File -> Open.

  • interactive: make standalone windows close consistently (#320) (7937bdd)

    Fixes inconsistent Ctrl+W keyboard shortcut behavior for standalone apps like Periodic Table and Data Explorer.

  • imagetool: make manager row badges consistently interactive (#319) (f04ec18)

    ImageTool manager row badges now all show tooltips and respond to clicks. Dask badges open Dask/chunk controls, link and watched-variable badges expose the relevant row-specific actions with confirmation for destructive changes, tool-type badges focus the child tool, and source-status badges keep opening update controls.

⚡️ Performance

  • interactive: reduce memory usage of colormaps (#322) (97ee0d3)

[main dbf3007] bump: version 3.21.0 → 3.22.0
3 files changed, 13 insertions(+), 3 deletions(-)