ScanOcean 21 March 2012. Goals The next generation of scanSee Provide online and offline data browsing, analysis, and visualization File based data browsing.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

HDF and HDF-EOS Workshop VII, September 23-25, This work is supported in part by a Cooperative Agreement with the National Aeronautics and Space.
Microsoft Excel 2013 An Overview. Environment Quick Access Toolbar Customizable toolbar for one-click shortcuts Tabs Backstage View Tools located outside.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VI December 5, 2002 John Readey
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Intro to ArcMap Customization with Visual Basic  Create your own toolbars, buttons, interactive tools, and programs  Runs behind the scenes in ArcMap.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
© Copyright Eliyahu Brutman Programming Techniques Course.
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Using Charts in a Presentation Lesson 6. Software Orientation Charts can help your audience understand relationships among numerical values. The figure.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
Adobe Forms THE FORM ELEMENT PANEL. Creating a form using the Adobe FormsCentral is a quick and easy way to distribute a variety of forms including surveys.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Surgical Planning Laboratory -1- Brigham and Women’s Hospital Slicer Training 1: Loading and Viewing Data.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VIII October 27, 2004 John Readey
Using Technology in Training November 24, 2006 Overview Today’s session will focus on using PowerPoint to develop training materials.
Java Beans.
Design Patterns.
JFace 吳昆澤. UI framework for plug-ins JFace provides classes for handling common UI programming tasks: Viewers handle the drudgery of populating, sorting,
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
Microsoft Visual Basic 2005: Reloaded Second Edition
Presented by: Katie Milanowski. 2  Formed in 1982  Bruce Barrington (HBO & Company)  Apply RAD technology to IBM PC  1986: Clarion Version 1.0, Atlanta,
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
Enhancing the Graphical User Interface Multiple Forms, Controls, and Menus.
Introduction to ArcGIS for Environmental Scientists Module 1 – Data Visualization Chapter 4 - Layouts.
ScanOcean 2 November Goals The next generation of ScanSee Provide online and offline data browsing, analysis, and visualization File based data.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio, CSS Overview.
1 (21) EZinfo Introduction. 2 (21) EZinfo  A Software that makes data analysis easy  Reveals patterns, trends, groups, outliers and complex relationships.
GoF: Document Editor Example Rebecca Miller-Webster.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
1. Chapter 15 Creating Charts 3 Charting Data in Word A chart or graph presents data visually. A chart depicts numeric data in a graphical format. If.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
 What are CASE Tools ?  Rational ROSE  Microsoft Project  Rational ROSE VS MS Project  Virtual Communication  The appropriate choice for ALL Projects.
Adobe Flash CS4 – Illustrated Unit A: Getting Started with Adobe Flash.
ScanOcean 14 December Goals The next generation of ScanSee Provide online and offline data browsing, analysis, and visualization File based data.
TOS / TIS Code Architecture Copyright © 2008 Talend. All rights reserved.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE JRA1 Parallel - DAQ Status, Emlyn Corrin, 8 Oct 2007 EUDET Annual Meeting, Palaiseau, Paris DAQ Status.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Mantid Stakeholder Review Nick Draper 01/11/2007.
 2002 Prentice Hall. All rights reserved. 1 Chapter 2 – Introduction to the Visual Studio.NET IDE Outline 2.1Introduction 2.2Visual Studio.NET Integrated.
Test Equipment Product Line Josh Bowen Capstone Project Presentation 2.
APPX Design Environment Futures Planned development.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Adobe Photoshop CS4 – Illustrated Unit A: Getting Started with Photoshop CS4.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
XP New Perspectives on Creating Web Pages With Word Tutorial 1 1 Creating Web Pages With Word Tutorial 1.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
1 INTRODUCTION TO COMPUTER GRAPHICS. Computer Graphics The computer is an information processing machine. It is a tool for storing, manipulating and correlating.
Forum to improve your experience entering data into SRDR 1 SRDR is being developed and maintained by the Brown EPC under contract with the Agency for Healthcare.
Microsoft FrontPage 2003 Illustrated Complete Creating a Web Site.
Go4 v2.2 Status & Overview CHEP 2003
Introduction to Design Patterns
Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT -
Chapter 4 Enhancing the Graphical User Interface
Chapter 4 Enhancing the Graphical User Interface
Presentation transcript:

ScanOcean 21 March 2012

Goals The next generation of scanSee Provide online and offline data browsing, analysis, and visualization File based data browsing for various formats, including HDF5, MDA and TIFF Support for area detectors, point detectors and multiple simultaneous detectors Plug-in architecture for extensibility Ability to launch legacy code (using file based communication for IO)

Current Status - DataExplorer Progress – DStar data model – Tree, Image & Table Views To Do – Axes/dimension scale support – Display axes in TableView and ImageView – Color maps for images – Edit/Save

Current Status - DStar Data Model dstar::AbstractObject – dstar::AbstractAttribute dstar::HDF5Attribute – dstar::AbstractData dstar::HDF5Data – dstar::HDF5DataScalar – dstar::HDF5DataSimple – dstar::AbstractGroup dstar::HDF5Group – dstar::HDF5File – dstar::HDF5Object dstar::HDF5Attribute dstar::HDF5Data dstar::HDF5Group dstar::AbstractView – ImageView – PropertiesView – TableView – TreeView

Two Prototypes, One Goal Viewing Area Detector images is a ScanOcean goal. There is a need for a (“good”) live image viewer for Area Detector images. 2-BM-B requests ability to view AD images in TomoUI. A separate prototype will help us narrow our scope, focus our work, and flush out design details.

Design Thoughts GDA, GUMTREE, Mantid, et al. all have large, monolithic, highly-specialized hierarchies and structures that make it difficult to reuse individual parts. There will be beam line (technique) specific UIs. We already have XPCSUI and TomoUI, and there will probably be more. Need to keep things agile and encapsulated for easy, fast reuse. XPCSUI DStar (using) TreeView (using) TableView (planned) ImageView (planned) TomoUI DStar (planned) TreeView (planned) TableView (planned) ImageView (planned) Components from LiveImageViewer (planned)

Internal Pipeline (Overview) Image Source* Color Transfer Function* Display Manager* GUI Circular Buffer** *Thread (Throttle) *Thread (Throttle) Read most recent frame conditional wait if no data available Write to next location Pre-allocated raw image buffer Pre-allocated RGB image buffer Update event **C++ template class

Internal Pipeline (Analysis ROI Intensity) Image Source Color Transfer Function Display Manager GUI Circular Buffer Intensity from ROI Circular Buffer Display Manager Alternatively, there may be one singleton DisplayManager with multiple sources.

Internal Pipeline (Saving streaming data) Image Source Color Transfer Function Display Manager GUI Circular Buffer Save RAW Save RGB Save RGB Only if we REALLY wanted to. Should use AD for this.

Internal Pipeline Why not use AD plug-ins for this? – Won’t help with offline analysis. – Won’t help with multi-channel scalar analysis (ADC). Stage/thread boxes may be the beginning of a plug-in architecture.

What We Need EPICS Interface – TomoUI has a small class for ChannelAccess. – Look at EPICS Qt for ChannelAccess object management. Build internal pipeline components – Base class for threaded stages Graphics components – GStar

GStar QGraphicsScene QGraphicsItem gstar::ROI gstar::Measure gstar::ScaleBar gstar::ThetaArch gstar::LineScan Qt has a robust 2D scene graph. Build Qt graphics tools with as little outside dependency as possible. Graphics annotations are independent of the rest of the application. Only provides GUI elements, not actual analysis or calculations. Easier to reuse. gstar::Mask gstar::CTFWidget QWidget

GStar Color-transfer function editor Integer values (needs floating point values) Display images in background (for histograms, etc.) More efficient internals

EPICS Qt GUI Components vs. ScanOcean Channel Access Pipeline Source Pipeline GStar Channel Access EPICS Qt Base Classes EPICS Qt Button EPICS Qt Label File on Disk GUI There is such a thing as too much inheritance! Can’t reuse leaf classes without parents. Won’t help when there’s no ChannelAccess. EPICS Qt widgets provide very simple functionality. Still excellent choice for some things, but not this GUI. This composition makes GStar easier to reuse. This makes EPICS Qt widgets hard to reuse w/o CA.

Current Bigger Picture dstar – data model gstar – Qt graphics widgets estar – EPICS channel access tools (maybe just EPICS Qt) dstar gstar estar??? TomoUI ScanOcean DataExplorer XPCSUI Applications Libraries ScanOcean ImageViewer

Final Thought Even if ScanOcean doesn’t become the uber beam line application, we’ll have a lot of reusable stuff (some of which we’re already reusing).

Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

To Do Put things in SVN Add more tasks to Jira Finish up axes displays as time permits Working on Tomography Upgrade – Started writing sample code for EPICS – Related to Tomography Upgrade, but directly applicable to ScanOcean. Will likely turn out to be an excellent example of code reuse and refactoring – Image viewer, color-map editor, interacting with EPCIS and AD, etc.

Big To-do List Small (<= 1 day) – Support many different numeric data types in ImageView – Set display precision for floating point numbers in TableView – Speed-up image display with pointer arithmetic instead of indexing – Attribute view/editor Moderate (<= 1 week) – Refactor TableView and ImageView into 2D slice view and subclasses – Region zoom tool in ImageView – Create a graph view using Qwt as underlying plotter – Tab and pop-out windows in addition to MDI – Re-use allocated buffers more when fetching data from files – Refactor using Mediator pattern to create a data/view manager – Validate data objects for use with a data view Large (multiple weeks) – Factory creational pattern in data model to enforce smart pointer use – Good Color Map Editor (with log maps, saving/restoring maps) – Refactor application of color maps out of ImageView (use templates)*** – Pre-fetch data for speed-up*** Still need an icon More documentation, as always