Skip to content

CI TESTING#12

Merged
psavery merged 74 commits intomasterfrom
bnl-updates
Mar 9, 2026
Merged

CI TESTING#12
psavery merged 74 commits intomasterfrom
bnl-updates

Conversation

@psavery
Copy link
Copy Markdown
Owner

@psavery psavery commented Feb 13, 2026

No description provided.

@psavery psavery force-pushed the bnl-updates branch 3 times, most recently from 12bfbce to f2d195a Compare February 13, 2026 20:30
psavery pushed a commit that referenced this pull request Feb 17, 2026
Search for several different ptycho files
psavery and others added 19 commits February 18, 2026 13:30
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Otherwise, it is too long and you sometimes can't close it.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This adds the decorator `@apply_to_each_array` automatically to every
transform function, unless explicitly instructed not to in the JSON
description file via `"apply_to_each_array": false`.

This is being done because nearly every operator in the codebase needs
this decorator, and it is tedious to have to remember it every time.

It is not added automatically if it is already present on an operator.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
They are no longer needed, as it is applied automatically.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This fixes a few issues the tests identified with the automatic
decoration.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
This adds support for scan IDs in the following places:

1. The DataSource class
2. The DataPropertiesPanel (if present, they are displayed with the tilt angles)
3. EMD files (they are written in `/data/tomography/scan_ids`)
4. In operators (`dataset.scan_ids`)

The scan IDs are automatically read from the PyXRF and Ptycho workflows and saved
on the Data Source.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
The pixel size name changed recently. We need to support both the
old version and the new version.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This gets the PyXRF dialogs to automatically locate `pyxrf-utils`
executables in some standard paths, starting with the last one
that the user selected. It will set it automatically if it exists.

If it does not exist, the user will be forced to pick one.

The validation error is significantly easier to read than the
previous error that would be encountered.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is now a generic operator for shifting the rotation center.

You generate a set of reconstructions from a single slice with a set
of test rotation centerss and are able to view each one, and determine
which rotation center produces the best reconstruction.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This prevents the operator dialog from just appearing randomly on
other monitors or in random places on the desktop window.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
Verify it is available to set before using it. Otherwise, we get
a warning.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
It can now perform other reconstruction operations, such as mlem.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
These are not necessarily places we have encountered seg faults,
but places we *could* potentially encounter them (and it's possible they
have caused segmentation faults in the past).

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
psavery and others added 2 commits February 19, 2026 09:14
When we tried to operate on a non-existing ptycho directory, it would
cause major issues, including a crash.

Make sure the ptycho directory exists before we do anything else.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
This is now part of the "Set Tilt Angles" dialog. If a file is used
that contains scan IDs, the column will be added automatically.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The function pointer is the new, preferred way of doing Qt
signal/slot connections.

We couldn't update the ones used by VTK/ParaView since they still
require the old format.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
psavery and others added 23 commits February 24, 2026 23:08
Look at the return value. Fixes this warning:

tomviz/tomviz/ColorMap.cxx:192:12: warning: ignoring return value of 'virtual bool QFile::open(QIODeviceBase::OpenMode)', declared with attribute 'nodiscard' [-Wunused-result]
  192 |   file.open(QIODevice::ReadOnly);
      |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This also fixes a crash that was encountered.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This automatically creates or selects the relevent view for a given
visualization module, so that one does not have to do so manually.

Take plots as an example. Here's how it works:

1. A plot "OperatorResult" must be selected from the pipeline
2. The "Plot" module is then enabled, and the user can click it
3. If there are no "Line Chart View"s available, it asks the user if
   one should be created automatically. If "Yes", it is split horizontally
   and created.
4. If there is exactly one "Line Chart View" available, the plot module
   gets added to that view automatically.
5. If there is more than one "Line Chart View" available, a dialog appears
   asking the user to select which view they want to add it to.

The example above is for line chart views, but this logic is actually now
in place for any visualization module type. For example, for any visualization
modules that use render views (most of them, such as contours, volumes, etc.),
the same logic applies.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This keeps them from appearing on a different monitor...

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is for saving out tilt angles to a file.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is to reflect the expected BNL position.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This fixes some issues that would occur when deleting an operator
before a child data source.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This ensures that the correct error message will be printed.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Alessandro Genova <alessandro.genova@kitware.com>
add the deconvolution denoise operator
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This is the better choice when performing bm3d deconvolution.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
This also tests the similarity metrics code.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
If scalars were removed in an earlier operator, this ensures that
only the available scalars from the downstream output will be
displayed as options in `select_scalars`.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
It shouldn't be used on volumes.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
We'll let the user decide what the max should be, rather than
cap it at 16.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
The previous cancellation setup did not actually stop the operator
from running. Now, the operator actually stops.

This prevents a crash that would happen if you tried to run a bm3d
denoise operator again, while the previous one was running.

Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
Signed-off-by: Patrick Avery <patrick.avery@kitware.com>
@psavery psavery merged commit 46667ce into master Mar 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants