Ticket #6352 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Bug in VSI Peak Display

Reported by: Owen Arnold Owned by: Michael Reuter
Priority: critical Milestone: Release 2.4
Component: VATES Keywords:
Cc: reuterma@… Blocked By:
Blocking: #6363, #6364 Tester: Martyn Gigg

Description

Reported by Dennis:

I checked on the problem with displaying the scatter plot and set of peaks on the same VSI display. The problem seems to be due to the choice of sample instead of lab coordinate systems. Specifically, if ConvertToDiffractionMDWorkspace is used and lab coordinates are specified, then found peaks are overlaid on the data correctly. If sample coordinates are specified, the found peaks don't match the data. Since ConvertToMD ONLY does not provide for using lab coordinates, the problem we ran into at the demo yesterday makes sense. This will be an unavoidable problem when ConvertToDiffractionMDWorkspace "goes away".

My initial thoughts are that this could be done in a staged approach...

1) Move the Transformation tools currently in the SliceViewer into a common location (Maybe Geometry).

2) Modify the way that the vtkPeaksMarkerFactory works see vtkPeaksSource.cpp line 69 so that it utilises the transform code.

3) To make things nicer, we should have an enum generated by each ConvertToMDAlgorithm type algorithm, which indicates what special coordinate system (if any the) outputs workspace is in, and store that on the IMDWorkspace. This was the approach originally discussed between Michael and myself. This might be best done under a separate ticket.

Attachments

ticket6352_test.py (702 bytes) - added by Michael Reuter 8 years ago.
Testing script. Check comment in script for running details.

Change History

comment:1 Changed 8 years ago by Michael Reuter

  • Owner changed from Owen Arnold to Michael Reuter
  • Status changed from new to accepted

I going to take this to get the ball rolling. I will also make a branch for this.

comment:2 Changed 8 years ago by Michael Reuter

Refs #6352. Adding parameter on peaks source to switch coordinates.

Changeset: 1e3cdd79d149d42d93d780577563474f9933a0c3

comment:3 Changed 8 years ago by Michael Reuter

Refs #6352. Getting peak coordinates to switch when asked.

I had to do this as a post-accept check to stop PV from setting the parameter back to the default when I tried to set the parameter before the accept call. Found out in the process that the signal connections in MdViewerWidget for the MultiSliceView don't work anymore. That's why the check signature is now different. NOTE: Things are currently wired to switch to sample coords. There is sample code in SplatterPlotView::checkPeakCoordinates() to get things the right way.

Changeset: 134b486f3e6f7a777c66ef99bbf18d34ee1d496f

comment:4 Changed 8 years ago by Michael Reuter

  • Owner changed from Michael Reuter to Owen Arnold
  • Status changed from accepted to assigned

Tag, you're it!

comment:5 Changed 8 years ago by Owen Arnold

  • Status changed from assigned to accepted

comment:6 Changed 8 years ago by Owen Arnold

  • Blocking 6363 added

comment:7 Changed 8 years ago by Owen Arnold

  • Blocking 6364 added

comment:8 Changed 8 years ago by Owen Arnold

refs #6351. API changes.

Add new method on IMDWorkspace to get any special coordinate system settings. On concrete implementations add setters. Add tests for setters and default values.

Changeset: de5023fd706df391d22fa102cc780603a8b23408

comment:9 Changed 8 years ago by Owen Arnold

refs #6352. Update existing conversion algorithms

Changeset: 6c251b8554bfe747db0bd859be4ad1c41527658c

comment:10 Changed 8 years ago by Owen Arnold

  • Status changed from accepted to assigned
  • Owner changed from Owen Arnold to Michael Reuter

TAG, Michael is up!

comment:11 Changed 8 years ago by Michael Reuter

  • Status changed from assigned to accepted

comment:12 Changed 8 years ago by Michael Reuter

Refs #6352. Add fall down for vtkPeakMarkerFactory case statement.

Changeset: a1f75134413beb29c858c147b2ac580878dcd312

comment:13 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDEW.

Changeset: d87c51ab5190a225d9d821161d8d2e6536e495c9

comment:14 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDEW PV plugin for special coordinates.

Changeset: 2060174a74298a2f55d6d57c27a14e36890aec87

comment:15 Changed 8 years ago by Michael Reuter

Refs #6352. Switching SplatterPlot view to new property.

Changeset: b4f9f4188d0249546662db0d8f71d0309249f72d

comment:16 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDHW.

Changeset: 8ad7313939615bcc90416be4c8cfb650a2229986

comment:17 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDHW PV plugin for special coordinates.

Changeset: 8a2251ac973f6226370b64cd638afd91d837c1fc

comment:18 Changed 8 years ago by Michael Reuter

Refs #6352. Method to switch peak coordinates in SplatterPlot view.

Changeset: 19abe76c4d41b67a22999917df0fbfd87f8e2dfa

comment:19 Changed 8 years ago by Michael Reuter

Refs #6352. Adding parameter on peaks source to switch coordinates.

Changeset: 1e3cdd79d149d42d93d780577563474f9933a0c3

comment:20 Changed 8 years ago by Michael Reuter

Refs #6352. Getting peak coordinates to switch when asked.

I had to do this as a post-accept check to stop PV from setting the parameter back to the default when I tried to set the parameter before the accept call. Found out in the process that the signal connections in MdViewerWidget for the MultiSliceView don't work anymore. That's why the check signature is now different. NOTE: Things are currently wired to switch to sample coords. There is sample code in SplatterPlotView::checkPeakCoordinates() to get things the right way.

Changeset: 134b486f3e6f7a777c66ef99bbf18d34ee1d496f

comment:21 Changed 8 years ago by Owen Arnold

refs #6352 #6364. load and save system.

Changeset: 9c45cd6cc09803f93de3e8c12c68ccfc37365dc3

comment:22 Changed 8 years ago by Owen Arnold

refs #6352. Update existing conversion algorithms

Changeset: 6c251b8554bfe747db0bd859be4ad1c41527658c

comment:23 Changed 8 years ago by Michael Reuter

Refs #6352. Add fall down for vtkPeakMarkerFactory case statement.

Changeset: a1f75134413beb29c858c147b2ac580878dcd312

comment:24 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDEW.

Changeset: d87c51ab5190a225d9d821161d8d2e6536e495c9

comment:25 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDEW PV plugin for special coordinates.

Changeset: 2060174a74298a2f55d6d57c27a14e36890aec87

comment:26 Changed 8 years ago by Michael Reuter

Refs #6352. Switching SplatterPlot view to new property.

Changeset: b4f9f4188d0249546662db0d8f71d0309249f72d

comment:27 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDHW.

Changeset: 8ad7313939615bcc90416be4c8cfb650a2229986

comment:28 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDHW PV plugin for special coordinates.

Changeset: 8a2251ac973f6226370b64cd638afd91d837c1fc

comment:29 Changed 8 years ago by Michael Reuter

Refs #6352. Method to switch peak coordinates in SplatterPlot view.

Changeset: 19abe76c4d41b67a22999917df0fbfd87f8e2dfa

comment:30 Changed 8 years ago by Michael Reuter

Refs #6352. Merge branch '6352_vsi_peaks_display'

Changeset: 091f2b09498a35d26eb910cbd5ddf057c09acfbf

Changed 8 years ago by Michael Reuter

Testing script. Check comment in script for running details.

comment:31 Changed 8 years ago by Michael Reuter

  • Status changed from accepted to verify
  • Resolution set to fixed

To test, begin by running the attached script. Then, do the following:

  1. Show TOPAZ_3132_MD in the VSI
  2. Switch to SplatterPlot view
  3. Increase the Number of Points on the MDScatterPlot plugin to 100000 and hit Apply
  4. Add a Threshold operator and set the Lower Threshold to 1e5 and hit Apply
  5. Show TOPAZ_3132_peaks in the VSI
  6. Zoom in on the data (scroll wheel)
  7. Toggle the "eyeball" next to the Threshold operator in the pipeline browser

One should see that the peaks (wireframe spheres) should match up with the data shown. Now, we'll check the ability to override the peak coordinates in two ways. First way:

  1. Toggle the Override PC button
  2. Click on the PeaksSource entry in the pipeline browser
  3. Change the Peak Dimensions to something other than the current value and hit Apply
  4. The peaks should switch to being on the requested coordinates and commensurate with the data
  5. Toggle the Override PC button and the peaks should go back to being commensurate with the data

Second way:

  1. Close the VSI
  2. Show TOPAZ_3132_peaks in the VSI
  3. Switch the Peak Dimensions to anything and hit Apply

comment:32 Changed 8 years ago by Michael Reuter

Refs #6352. Adding parameter on peaks source to switch coordinates.

Changeset: 2c6a278d8b2868d0a75069421ac3af2054d17e6c

comment:33 Changed 8 years ago by Michael Reuter

Refs #6352. Getting peak coordinates to switch when asked.

I had to do this as a post-accept check to stop PV from setting the parameter back to the default when I tried to set the parameter before the accept call. Found out in the process that the signal connections in MdViewerWidget for the MultiSliceView don't work anymore. That's why the check signature is now different. NOTE: Things are currently wired to switch to sample coords. There is sample code in SplatterPlotView::checkPeakCoordinates() to get things the right way.

Changeset: 0a6f04ac9de0e1e26d4f8ad9e7a18c42bed47d0d

comment:34 Changed 8 years ago by Owen Arnold

refs #6352 #6364. load and save system.

Changeset: defad53dfc953c27be04a7449abd1bef4fd5b405

comment:35 Changed 8 years ago by Owen Arnold

refs #6352. Update existing conversion algorithms

Changeset: d88f24e1518bed987ca4a9288b19c11d8f3f99ba

comment:36 Changed 8 years ago by Michael Reuter

Refs #6352. Add fall down for vtkPeakMarkerFactory case statement.

Changeset: b3b0a937f262acb6028a1f24193e7fa8bf51d37b

comment:37 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDEW.

Changeset: 193aa9d6f8be8c6119dcf5b5adb9ef94a7ca7999

comment:38 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDEW PV plugin for special coordinates.

Changeset: fb8e9c3a905afd33904ae5129c553d7d0e31b0db

comment:39 Changed 8 years ago by Michael Reuter

Refs #6352. Switching SplatterPlot view to new property.

Changeset: 2573ffa27e7f25bccc57f35e793cad32ed73b8f2

comment:40 Changed 8 years ago by Michael Reuter

Refs #6352. Add API call for special coordinate system for MDHW.

Changeset: 0162221aa7fe6e3708d5368e8ce19bfbe3e3266c

comment:41 Changed 8 years ago by Michael Reuter

Refs #6352. Wiring MDHW PV plugin for special coordinates.

Changeset: 78ddd75141c75ef9891d8b707992095540bbe3d6

comment:42 Changed 8 years ago by Michael Reuter

Refs #6352. Method to switch peak coordinates in SplatterPlot view.

Changeset: 8cd9da4fd5e6e017a0727c9566ca748fcc453686

comment:43 Changed 8 years ago by Martyn Gigg

  • Status changed from verify to verifying
  • Tester set to Martyn Gigg

comment:44 Changed 8 years ago by Martyn Gigg

  • Status changed from verifying to closed

Seems to be functioning as expected. The data & peaks line up in Q_lab and then switching the source moves the wireframe peaks around as expected.

comment:45 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 7198

Note: See TracTickets for help on using tickets.