Plot GUI architecture
Overview
The GUI in python/src/pyarts3/gui/qt_plot_gui.py provides an interactive
front-end for plotting ARTS workspace data using the functions in
pyarts3.plots and editing values using pyarts3.gui.edit.
It is designed for experimentation: developers can wire in a plot function, provide a callable that computes plotting keyword arguments, and interactively adjust simulation settings, results, and additional options.
Main components
PlotGui: the main Qt widget hosting the toolbar, canvas, and three lists: - Simulation Settings - Results - Additional Optionsstart_gui: helper to create a QApplication (if needed) and showPlotGui.Editors: double-click on any list item to edit its value via
pyarts3.gui.edit.edit(value, parent).Workspace dialog: a dedicated editor lists workspace variables, supports adding unset variables, and dispatches to per-type editors.
Workspace methods dialog: browse and call ARTS workspace methods with automatic input validation and parameter editing.
Flow
Provide a plot function, e.g.,
pyarts3.plots.Vector.plot.Provide a callable that returns default keyword arguments for the plot (Simulation Settings → plot kwargs → Results are computed and displayed).
Edit values by double-clicking items in the lists; the plot re-renders after accepted edits.
Use Additional Options to pass arbitrary keyword arguments to the plot function.
Editors integration
The dispatcher in
pyarts3.gui.editresolves a per-type editor module by matching the value’s type name. If missing, theGenericeditor falls back to a type-preserving eval.Editors must preserve ARTS types (e.g.,
Vector,Matrix). Reconstruct usingtype(value)(payload)on save.
Workspace methods interface
The workspace editor includes a “Call Methods…” button that opens a dialog to browse and execute ARTS workspace methods.
Features:
Method filtering: Search box to filter methods by name.
Availability checking: By default, only methods with all required workspace variable inputs available are shown. Check “Show uncallable methods” to see all methods (uncallable ones are grayed out).
Method details: Shows input/output counts (workspace vars and generic parameters).
Parameter editing: Double-click a method to configure its parameters:
Workspace Inputs: Read-only display of required workspace variables.
Generic Inputs (GIN): Editable parameters with default values. Click “Edit…” to modify using the appropriate type editor.
Workspace Outputs: Variables that will be modified or created.
Generic Outputs (GOUT): New variables that need names assigned.
Execution: Click OK to execute the method with the configured parameters. Success shows which variables were modified; errors display with scrollable details.
Usage:
from pyarts3.gui.methods import show_methods_dialog
from pyarts3.workspace import Workspace
ws = Workspace()
# Set up workspace variables...
show_methods_dialog(ws)
Or access via the Workspace editor:
import pyarts3.gui.edit.Workspace as ws_editor
ws_editor.edit(ws) # Click "Call Methods..." button
Extending the GUI
Add new plot modules under
python/src/pyarts3/plots/(seedev.plots).Add new editors under
python/src/pyarts3/gui/edit/(seedev.edit).Wire custom post-callbacks or additional UI affordances in
qt_plot_gui.py.