210 likes | 223 Views
ISAW provides a GUI and scripting language for analyzing neutron scattering data. It aims to be user and programmer friendly, freely available, and supports remote data access.
E N D
ISAW: Integrated Spectral Analysis WorkbenchTechnical Overview ARCS Software Workshop at California Institute of Technology Peter F. Peterson (IPNS)
ISAW contributors • Dennis Mikkelson and Ruth Mikkelson—UW-Stout • Alok Chatterjee (now on DAS team) • Peter Peterson (Post-Doc) • John Hammonds (DAS—read run file) • Chun Loong (scientific advisor) • Tom Worlton (project manager) • Dongfeng Chen (HRMECS functions, now in China)
The IPNS Web Project • The goal of the IPNS Web Project is to provide remote access to data using portable, extensible software • Integrated Spectral Analysis Workbench (ISAW) • ISAW can read, view, and manipulate neutron scattering data. It provides both a GUI for ease of use and a scripting language for the power of repetitive operations. It is written entirely in Java using object-oriented programming techniques for ease of portability and maintenance.
ISAW Design Goals • Interactive environment for visualization and analysis of Neutron Scattering Data • Applicable to any instrument • Freely available • User friendly GUI • Programmer friendly (OOP) • User extensible • Remote data access
DataSet Concept • A DataSet holds a collection of DataBlocks (spectra) with same units • Each DataBlock can have meta-data associated with it stored in an extensible list of Attributes
DataSet Concept (cont) • DataBlocks (individual spectra—functions or histograms) • Includes attributes, x-values, y-values, errors • DataSets (sets of spectra) • Includes DataBlocks, OperationLog, x-units, x-label, y-units, y-label, title, data ranges, attributes • Operations are DataSet dependent and can be performed on all spectra in DataSet • Datasets can be merged, summed, etc. • Containers (sets of DataSets)
ISAW data views Table view Tree view
ISAW data views Selected graph view Image view Scrolled graph view 3D view
Views are responsive to controls • DataSets know which spectrum is currently pointed at/clicked on • DataSets know which spectra are selected • Menus know what operations can be performed on specified DataSets
Views are responsive to controls • Operations menu depends on DataSet pointed at by mouse/arrow keys • Attributes are listed for pointed at spectrum or DataSet • Cursor position readouts are responsive to mouse drag movements and arrow key movements • Selected graph view only shows selected spectra • Graph portion of Image view shows selected spectra plus pointed at spectrum • Mouse/keyboard used to zoom/unzoom
Adding New Functionality • End users can add new subroutines either as scripts or operators • Common subroutines can be shared in a single location • Individual users can develop code for their specific use
Operators • Written in java • Automatically located and added to menus • Promotes code reuse • Function: • Maintains a list of parameters • Invoked Using getResult()
EXAMPLE: ActivateStorage Required methods • constructors • getCommand()for scripts to call the operator • setDefaultParameters() set up reasonable default values • getResult() perform the actual operation All information is passed to the operator in parameters
Scripts • Simple uncompiled language to make repetitive tasks easier using FORTRAN/Basic-like syntax • Automatically added to menu system • GUI interface is automatically generated • Function: • Provide easy user add-ons • Can be run inside or outside of ISAW
EXAMPLE: MathWizard Forms • perform one logical step • draw themselves • contain help information Wizards • collect forms in an order • communicate between forms • allows switching between forms in order • contain help information
Future Plans for ISAW • Abstraction of data types – allow for using model functions and event data • Viewers – create custom viewers using existing viewer components • Wizards • Greater NeXuS support • XML for internal saves of data and processing information