UW-Quantum-Defect-Lab / qdl-utils

UW Quantum Defect Lab base data acquisition and hardware control software
BSD 3-Clause "New" or "Revised" License
0 stars 2 forks source link

Bringing qt3scan to parity with Matlab code #5

Open nyama8 opened 5 days ago

nyama8 commented 5 days ago

qt3scan needs to be brought to parity with the Matlab confocal scan code. This involves (but is not limited to) the following features:

  1. Separating the scans from the controls: the current application has both the scan image and the controls (e.g. buttons for go to position, launch a scan in x/y/z, etc.) in the same window. Ideally, these should be separated so that starting an individual scans pops out a new window (similar to the current implementation of qt3ple). In doing this, logic needs to be implemented to handle having multiple windows open and releasing hardware when not actively scanning or moving.
  2. Control GUI clean up: The current GUI is very crowded and hard to use. It should be simplified partially by the separation of the scan from the control panel but additional aesthetic improvements should be made as well.
  3. Scan GUI clean up: This includes adding a cursor to show pixel positions when selecting a target and or showing the current position (probably only should update the most recently taken scan to avoid slowdowns like in Matlab?). Also would like to include the full scan range being shown in np.nan values during the scan to enable right-click-based movement to positions not yet scanned.
  4. Setting the scan times: currently the scan times are set by choosing the DAQ clock rate and setting the number of batches. The qt3ple application added a DAQ digitial reader in which the user can instead specify a time for readout and the back end computes the number of cycles automatically (clock rate is part of the hardware configuration still, but does not affect the results).
  5. Pause and continue scans: Pause a scan in the middle, then continue scanning from where it left off. Probably should be implemented to finish the current line scan, then pick up from where it began -- it will be difficult to do otherwise.
  6. Decouple spectral confocal?: Not sure if this is a good idea, but it might be good to separate spectral confocal into another application due to the relative complexity of operating with completely different hardware. Spectral confocal is also not commonly used and may not need to be implemented in most setups (where it could cause errors).

Please add more suggestions for improvements/features below. Remember that the goal is for this code to be as lightweight as possible while maintaining easy functionality.

nyama8 commented 3 days ago

After reviewing the qt3scan code a bit I think there's a fair amount of improvements that could be made. For example, we can likely decouple from the qt3uw/nipiezojenapy repo and keep the hardware level controllers within qdlutils. In addition it will likely require some more intensive restructuring which I don't mind doing.

NnguyenHTommy commented 2 days ago

I would definitely like this and in my eyes, the python code is less friendly to use b/c these changes are not implemented compared to the MATLAB code.

Some points I've been griping about for a while: