GUI and Python Side by Side

ERLabPy has two main types of workflows:

The bridge between the two is built into the package. GUI actions either map directly to public Python APIs or can even generate reproducible code that is ready to paste back into a notebook. This design allows you to fluidly move between the GUI and code, using each where it is most effective.

Use the GUI to discover selections and parameters, then move the final steps back into code for reproducibility and batch processing.

Operation map

Analysis task

GUI entry point

Python/API equivalent

Open a DataArray in ImageTool

ImageTool entry points

xarray.DataArray.qshow(), erlab.interactive.imagetool.itool(), %itool data

Browse a data directory

Data Explorer

erlab.io.load(), erlab.io.set_loader(), erlab.io.set_data_dir()

Open or replace data in the manager

Manager opening and replacement paths

data.qshow(manager=True) and eri.itool(data, manager=True), see Notebook integration for notebook-manager synchronization options.

Select a point or range from multidimensional data

Edit → Select Data… or the right-click context menu of each plot

xarray.DataArray.qsel(), xarray.DataArray.sel(), and xarray.DataArray.isel()

Aggregate over dimensions

Aggregation dialog

xarray.DataArray.qsel.mean(), min(), max(), and sum()

Interpolate along a dimension

Interpolation dialog

xarray.DataArray.interp()

Coarsen data

Coarsen dialog

xarray.DataArray.coarsen() followed by a reducer such as .mean() or .sum()

Thin data

Thin dialog

xarray.DataArray.thin()

Crop data

Crop dialogs

xarray.DataArray.sel(), xarray.DataArray.isel()

Rotate or symmetrize

Transform dialogs including Edit → Rotate and Edit → Symmetrize

erlab.analysis.transform.rotate(), erlab.analysis.transform.symmetrize(), erlab.analysis.transform.symmetrize_nfold()

Edit or add coordinates

Edit → Edit Coordinates in ImageTool data controls

xarray.DataArray.assign_coords(), such as data.assign_coords(y=scale * data.y + offset), data.assign_coords(temperature=20.0), or data.assign_coords(label=("x", labels))

Edit or add attributes

Edit → Edit Attributes in ImageTool data controls

xarray.DataArray.assign_attrs(), such as data.assign_attrs(sample_temp=20.0, note="checked")

Swap dimensions

Coordinate editing dialog

xarray.DataArray.swap_dims()

Normalize interactively

ImageTool normalization dialog

Expressions like data / data.mean(...)

Combine manager ImageTools

Concatenate in the ImageTool manager

xarray.concat()

Slice along an ROI path

ROI context menu

erlab.analysis.interpolate.slice_along_path()

Mask with an ROI

ROI context menu

erlab.analysis.mask.mask_with_polygon()

Momentum conversion

ktool (Can be launched from the View menu)

xarray.DataArray.kspace.convert()

Interactive fitting

ftool, goldtool, and restool (Can be launched from the Plot context menu)

xarray.DataArray.xlm.modelfit() and scripted fitting workflows in erlab.analysis.gold

Pull data back out of the manager

Manager notebook bridge

erlab.interactive.imagetool.manager.fetch(), %watch, %store