Feature Slate Monster

Introduction

This document is designed to briefly detail new features to which we can choose to commit in Dawn 1.1. A discussion will follow as which features should be worked on in Dawn 1.1. The estimated development times quoted are not elapsed time, just hours coding; they do not allow for meetings etc.

* Completed in Monster
* Not planning to do
** Carried forward to future releases.

Detailed Design

Large Changes

PlotServer Redesign *

This feature would be to allow IPlottingSystem to pass over JMX (RMI version) to be available to the PlotServer. This gives complete access to new plotting features in a remote context solving a number of small feature requests in the Jira system. This would replace the GuiBean and DataBean. It would allow any editor plot to be coupled to python as its IPlottingSystem interface would directly pass through, available from the service.  The existing plotter python (dnp.plot(…) etc.) would continue to be fully supported, see diagram. New features would be available in the PlotServer and the python developers could decide how to expose these in the python API. This design results in lower maintenance costs of Dawn and ease of learning for new developers because the Java interface to plotting is standardized.

Estimate:  24h            Status: New feature

Plotting API (IPlottingSystem) GUI

Workflow Upgrade**

We require the workflow tool to be upgraded to be more user friendly. At the moment the log file is used to develop workflows and once they are running, it can be hard to diagnose failure. It is thought that upgrading the ease of use now, will result in a larger user base for this feature. The main areas of the upgrade are as follows:

Debug or ‘Stepping Mode’ **

Ability to ‘debug’ workflow in the UI. This would mean coupling the Passerelle debug (available with the event director model) with the Eclipse RCP debug framework. Using the RCP debug extensions would mean pydev and Passerelle debugging would be linked i.e. break points would be hit in either system during the debugging of one workflow.

Estimate: 24h             Status: New feature, Isencia have had further ideas

Dry run ability.**

 This is having a more user friendly/flexible ‘mock’ system than currently available. For instance taking actors out of the loop, they grey out. Disconnecting and reconnecting tango motors, data collection scripts run in a test or real environment. Validation of spec would also be good for those writing data collection actors in spec.

Estimate: 8-24h (task needs better definition)    Status: New feature

User friendly workflow development **

with better error handling. At the moment when developing a workflow you have to use the log file. Instead the user should see and actor go red and a user understandable message be shown with an additional link to the right part of the log stack for experts. There should be a tighter integration with eclipse parts – for instance the eclipse error log. This is linked to debug as well in that it makes it easier and more precise in feel when you develop a workflow.

Estimate: 8-24h (task needs better definition)    Status: New feature

Traffic Light Colour Scheme **

A traffic light colour methodology applied everywhere, green running, amber stalled, red error. So actors when selected and running would be green, user interface actors in JMX would be amber while waiting for input, actors which fail would be red. Actions would also be colour coded this way.

Estimate: 6-8h                        Status: New feature

New Workflow Actors

New actors available in the workflow. As follows:

Tool Action                  *(partly)

Ability to drive any 2D or 1D tool, for instance azimuthal integration, box profile etc. from the workflow using a specific actor.

Estimate: 4-6h/tool   Status: New Feature

Improved System Command Actor(s) **

Actors to complete substitution into one or more files, run a process and then complete extraction of one or more result files. This would allow arbitrary system processes to be run, for instance Alun batch script jobs to be easily. The replace and extract actors would be general purpose and come with a custom editor similar to an edna actor.

Estimate: 20h                         Status: New Feature

R-script Actor **

Ability to call R-scripts from workflows and reuse existing mathematics in that language. Java integration with R is claimed to be good and products like KNIME already support this (could also support KNIME actors but these have the actor level hard coded into Swing).

Estimate: 8h               Status: New Feature

Taverna Support **

Ability to call taverna workflows in a similar way to how composite actors work. If the RCP plugins for taverna are ready when this feature is coded it may be possible to have a taverna editor and good integration.

http://dev.mygrid.org.uk/wiki/display/TNG/Preview+1

Estimate: 8h               Status: New Feature

Deploy Workflows as Actions in Editors and Workbench **

This feature allows any .moml file to be reused as an action in a special menu on any data file. When the data file is opened the user may run the algorithm without having to open and run the Passerelle user file. There will be a few deployed by default such as background image subtraction, medium of flat field images, azimuthal integration, packing of image folders into hdf5 files etc. as available.

Creators of a workflow will be able to right click on the file and open a wizard to choose how the action should be deployed. The workflow runs without UI interaction as the editor provides the data. It has also been suggested that there be an option to automatically apply the workflow when an image is opened or viewed in the image viewer. This is a general feature and has wide applications in image and 1D data manipulation.

Estimate: 32h   **   Status: New feature**

Dawn Web Interface (DWI) Using RAP **

The new plotting is dawn using draw2d which, with some modifications to existing Dawn source code, is available in the RAP the web interface. The DWI feature would allow remote log in back to the visit space using fedid and password followed by the viewing of data collected. The RAP application would support the project explorer for the remote file space (the visit) and allow the editor parts used to visualise the data to run correctly (double click and open image). This has an advantage that in order to be viewed the data does not have to be downloaded only the current image created from it. In later Dawn releases, DWI could be extended to support more of the functionality of Dawn, tools and ipython for instance. A server (hardware) would be required to support the RAP application and the feature would be supported in a ‘Pre-release’ prototype format for Dawn 1.1.

Estimate:  80h            Status: New feature

 

Small / Medium Changes

 

Rotation ability for selections **

Add ability for regions of interest to rotate fully (for instance rectangle). Perhaps a tool for manipulating rotation.

Estimate:  8h  Status:  New Feature

Macintosh Support (first steps)               * partly

The first part of the work required to support MacOS - compiling CBF libraries. This will allow most of dawn features to work on Mac as HDF5 is already working. The 3D viewer (jogl) will likely not be included in this step. Graeme Winter has offered to compile the JNI C code on Mac.

Estimate:  8h  Status:  Underway

Show Intensity Values Tool    *

A tool with the ability to show numerical values in a table after a box selection. In addition, ability to create more than one box table and compare values of intensity.

Estimate:  8h  Status:  New Feature

Toolbar Position **

The plotting toolbar is long, for instance the zoom actions and the image tools are many. It would be good to allow coolbar docking around plots meaning users can click and drag toolbars to the side of the plot. For instance the image tools may automatically appear to the side of the plot unless switched off.

Estimate:  ~10h          Status:  New Feature

EMBL Spot tool -> Dawn Image Tool *?

Make available the EMBL spot highlighting algorithm to a Dawn tool (i.e. available the same way as the sector, box profiles, masking etc. under the image tools). The tool part would have the UI for controlling the algorithm, see the masking tool for a similar paradigm. It would be better if EMBL did this.

Estimate:  ~4h            Status:  New Feature

 

Zoom Position Tool  *

An image tool similar to a feature already available with the fable image viewer which shows a rectangle region zoomed. It will be possible to move and resize the region and the zoom tool view will update its zoomed image. It is technically possible to support multiple regions by using tabs on the zoom view but this is not suggested for the first version.

Estimate:  ~10h          Status:  Underway considering port to 1.0

 

Open File Loading *

One of the neat features of Fable was that you can write your own loaders in python. This means any ascii or unusual image format is supported. This feature would allow the LoaderFactory to read Eclipse extension points for user defined loaders. This would mean Java and python loaders could be plugged into it. The python loaders would be called using rpc, work in cpython and conform to a given interface. The Java loaders already have a Java interface they must implement.

Estimate: 6h               Status: First version in repository

Colour Scale for Intensity **

This feature was discussed for Dawn 1.0. There was hope that the scale already existing in SWT XY-Graph would be available in time for Dawn 1.0. The feature is to provide a third axis apart from the positional ones correlating colour used with intensity value.

Estimate:  8h Status: New feature (maybe there will be a free version of this)

Graph Legend Move **

Optionally place the graph legend on the left instead of at the bottom. API Change to plotting.

Estimate: 4h               Status: New Feature

3D Support for IPlottingSystem ** (some major refactoring work completed)

It would be cheaper and more functional to support in 3D directly in rather than the current ‘half-way’ version implemented for 1.0 (certain areas may support 3D by swapping widget at the moment). This would mean a short investigation into the best 3D plotting available, for us likely ImageJ or DatasetPlotter (in house development). Followed by code to support the methods createPlot3D(…) and updatePlot3D(…) in IPlottingSystem.

Estimate: 10-12h        Status: New Feature

History Tool *

Tool for viewing and adding plots to a history. The history would be static allowing data to be compared between files. The tool would allow images to be overlayed using a function.

Estimate: 8h               Status: Underway

D-spacing Tool            * (but in the form of dViewer product based on Dawn)

Tool for calculating the d spacing. It works like a line profile tool and does a fit on its own line and shows a d spacing calculation.

Estimate: 16h             Status: New Feature

Masking Upgrade  **

This idea is to allow masks to be saveable and choosable from a list so that a user can create a mask and apply it to many images. The first version will allow masks to be saved to file. Later the concept of an active mask may be introduced so that and image loaded of the correct size will have the mask applied automatically.

            Estimate: 8h  Status: New Feature

Data Set Memory *

PyMCA and other tools remember the last data path extracted when selecting many files in a series. In addition one can set the template data selection (path to dataset and slice) for a file which then is the default data extract action when a new file is opened.

Estimate: 8h   Status: Started

Maxima, Minima, Points of Inflection finding **

There is currently a peak fitting tool which fits a function to a peak. In fact very often required is an algorithm to mark maxima, minima and points of inflection in 1D data (the first of these being the most useful). This does not fit a function and actually puts an annotation on the real data at the point of a local maximum (for instance). This work should take the form of:

1.     An algorithm which can be driven separately to the UI (from one of the maths team, Peter or Mark)

2.     A UI tool similar to the fitting tool

Estimate: 8h UI, 8-16h algorithm                        Status: New Feature

Function fitting tool  * (polynomial fitting only)

A new fitting tool is required allowing line, spline and polynomials to be fitted to 1D plots. A new line fitting tool will be produced with a common super class to the peak fitting which has a modified table showing line fit coefficients instead of peak positions.

Estimate Numerics: 0-2h                   Status: New Feature

Estimate UI: 8h                                  Status: New Feature