# New Ideas

In the following, possible improvements to DPDAK are listed in three categories. There is no priority ranking done. If you have further ideas, please do not hesitate to send them to the DPDAK mailing list (see https://lists.desy.de/sympa/info/dpdak).

See the Release Notes v1.2.0 about things fixed or added in version 1.2.0.

An old list of Requests from September 2012 was found - what is already done, what is still to be done?

## Bug fixes

• On Windows, integer parameters can easily be changed by accident: Once a field is activated it stays active, even if the mouse is somewhere else. Touching the mouse wheel or using the arrow keys still changes the values...
• Unexpected (change of) state of display tools:
• when opening a new display tool, also all those that are already open get informed again about the value of all configured plugin parameters and are updated. As a result, e.g. Peak Fit Display loose their zoom and show the fit function values with the start parameters instead of the fit result.
• SAXS/WAXS Integration (using pyFAI) hangs (always?) on Linux if the calibration was run before (workaround: stop processing, quit DPDAK and restart).
• There should be no need to run (at least shortly) a newly created configuration before it can be stored. Even worse: If one processes some data, changes the config and then stored it, one silently gets the old config of the processed data!

## New features

• A reader for other data formats than 2D (image data) in a 3D nexus/hdf5 dataset is needed.
• Would be nice to integrate a simple viewer for Hdf5 file structures (as display tool). Maybe one could even 'populate' Hdf5 file and dataset parameters of processing plugins from that.
• Plugins getting an image_path as input should work with 2D arrays as well.
• A display/tool plugin to create image masks is missing.
• Peak fit plug-in
• should not give 'arbitrary' results in case the fit did not converge, but e.g. zeros or the like,
• should provide the correlation matrix of the fit parameters, the $$\chi^2$$ value and the number of degrees of freedom.
• Peak Fit Display
• should keep zoom if scrolling through data or changing fit model,
• may allow to move the legend.
• The concept of optional parameters with a green background in the parameter window does not work for INT and FLOAT: For INT there is always a number shown and for FLOAT an empty field is understood as 0.
• Allow different image options within one DPDAK session (and let the plugin decide which to use, e.g. via a new plugin parameter).
• Image Display should offer to define the "Beam Centre X [pixel]" and "Direct Beam x [pixel]" (and corresponding y) as one can set the other rectangular and cake ROI parameters.
• Display plugins should be stored together with their current configuration.
• Create possibility to save the full configuration in a text file, not only the plugin parameters (including display tools?).
• Plugin configuration issues:
• In the 'Configure Plugins' part, a changed (display) name should be recognised immediately.
• Multi Plot:
• Would be nice to 'stash' a curve temporarily. Currently one has to remove the curve and add it again with all its settings...
• Consider whether pressing the Pause button stops the complete processing (as implemented now) or interrupts only updates of the displays and copying to the database.
• SAXS/WAXS Integration (using pyFAI) has minor differences compared to Fit2D:
• If End Azimuth < Start Azimuth (e.g. 350 to 30 degrees), the x-axis range for an Azimuthal profile is 350 to 390 degrees whereas it is -10 to 30 for Fit2D. Similarly, for 200 to 350 the Fit2D result is in -160 to -10, but pyFAI is 200 to 350. Not sure what is better...
• The start and end values of the x-axis for Radial profiles differ slightly from Fit2D.
• Line integration GISAXS: provide version with dynamic x-position of vertical integration (i.e. x as an input value in contrast to fixed parameter that it is now).
• Order processing, display and export plugins by some category?
• List of tools and export plugins should be updated after loading user plugins.
• SAXS/WAXS Calibration tool:
• If 'Quick Calibration' button active together with the 'Pan' button, clicking on the figure should not place a new point, but just do panning.
• The interplay between 'Quick Calibration' and 'Zoom' has a similar problem.

## Technical issues

• For performance reasons, 1D and 2D array data should be passed between plug-ins as numpy arrays, not as Python lists and lists of lists, respectively. This is already addressed in the Hdf5 DB Development branch.
• Address the scalability issue of the in-memory database (to allow processing 10k of images without filling up all available memory or even run into swapping). This is addressed in the Hdf5 DB Development branch, but may need further tuning.
• Improve message handling, e.g.
• add flag (via command line and via options menu?) to set a severity level that defines which messages (info, warning, error) are to be shown or not,
• allow display plugins to access the logger so that problems can be reported in the Logger window (is there a problem with the fact that the display plugins are Threads?
• There are assigmments to Python things like 'id', 'type', 'input', 'file' that should be replaced by other variable names.
• Unify writing/reading of configuration: Now once in GUI code (frame.py - includes storage of display plugins [but without their configuration]) and once in controller (base/controller.py).
• Starting DPDAK is slow if at the time of last closing there have been displays/tools in use. This is most likely due to too many calls to panel.Display.sync_in(..) and the resulting slow matplotlib drawings, especially for ROIs in the Image Display.