The Scientific Graphics Toolkit (A Technical Overview) Donald Denbo UW-JISAO/NOAA-PMEL

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
Advertisements

3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
® Microsoft Office 2010 Excel Tutorial 4: Enhancing a Workbook with Charts and Graphs.
Chapter 17 Creating Images for the Web. Chapter Lessons Learn about Web features Optimize images for Web use Create a button for a Web page Create slices.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
More OOP Design Patterns
ICS 665 Jesse Abdul. jQuery UI Overview  jQuery UI javascript library Includes all UI component functionality  jQuery UI CSS framework Includes standard.
Web-based Portal for Discovery, Retrieval and Visualization of Earth Science Datasets in Grid Environment Zhenping (Jane) Liu.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
Written by Liron Blecher
Tools for accessing distributed in-situ data collections Donald W. Denbo, NOAA/PMEL-JISAO Jason E. Fabritz, NOAA/PMEL-JISAO Bernard J. Kilonsky, Sea Level.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 16: Java Applets & AWT Fundamentals of Web Programming.
Building a UI with Zen Pat McGibbon –Sales Engineer.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
PPPL Spring/Summer CO-OP 2006 Stephen Krenzel. Focus of the CO-OP The co-op focused on improving ElVis, an application for the visualization and monitoring.
1 AJAX and Dapper: The Good, the Bad, and the Ugly Joe Sirott PMEL/NOAA.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
National Center for Supercomputing Applications NCSA OPIE Presentation November 2000.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Java Programming: Advanced Topics 1 Common Elements of Graphical User Interfaces Chapter 6.
NcBrowse A Graphical netCDF/OPeNDAP Browser Donald Denbo 1 & John Osborne 2 1 UW/JISAO-NOAA/PMEL, 2 OceanAtlas Software
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Fisheries Oceanography Collaboration Software Donald Denbo NOAA/PMEL-UW/JISAO Presented by Nancy Soreide NOAA/PMEL AMS 2002/IIPS 10.3.
1 Dapper and Argo Joe Sirott PMEL/NOAA. 2 What is Dapper? Web server that provides distributed access to in-situ data via OPeNDAP protocol Clients include.
CSC 205 – Java Programming II Applet. Types of Java Programs Applets Applications Console applications Graphics applications Applications are stand-alone.
WebSphere Portal Technical Conference U.S Creating Rich Internet (AJAX) Applications with WebSphere Portlet Factory.
MSc Workshop - © S. Kamin, U. ReddyLect 3 - GUI -1 Lecture 3 - Graphical User Interfaces r GUI toolkits in Java API r JFrame r GUI components.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
SiD Workshop October 2013, SLACDmitry Onoprienko SiD Workshop SLAC, October 2013 Dmitry Onoprienko SLAC, SCA FreeHEP based software status: Jas 3, WIRED,
Java Applets: GUI Components, Events, Etc. Ralph Westfall June, 2010.
The Abstract Window Toolkit (AWT) supports Graphical User Interface (GUI) programming. AWT features include: a rich set of user interface components; a.
McGraw-Hill Career Education© 2008 by the McGraw-Hill Companies, Inc. All Rights Reserved. Office Excel 2007 Lab 2 Charting Worksheet Data.
Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech CS Fall 2002 Nicholas F. Polys Umur Yilmaz Will Lee.
Jini Architecture Introduction System Overview An Example.
Microsoft PowerPoint 2007 Part 5. Agenda Editing Presentation Masters Editing Notes and Handout Masters Exporting Outlines and Slides Presenting to a.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
NdEdit for Interactive in-situ Data Selection John R. Osborne and Donald W. Denbo NOAA/PMEL American Meteorological Society / IIPS January 13-17, 2002,
A Climate Data Portal Focused on realtime and retrospective in situ data Nancy Soreide, Don Denbo, Willa Zhu, NOAA/PMEL Charles Sun, NOAA/NODC Bernie Kilonsky,
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
1 OceanShare: Interactive Access to Distributed In Situ Data in a Collaborative Tool Environment D.W. Denbo C.R. Windsor NOAA/Pacific Marine Environmental.
March 23, 1999GOIN 99, Honolulu, HI1 Network Collaborative Tool for Integrated Browsing D.W. Denbo 1 C.R. Windsor 2 NOAA/Pacific Marine Environmental Laboratory.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
A Climate Data Portal An FY2000 HPCC Proposal Nancy Soreide, Don Denbo, Willa Zhu, PMEL Charles Sun, NODC Bernie Kilonsky, U of Hawaii HPCC Project Review.
Distributed Data Servers and Web Interface in the Climate Data Portal Willa H. Zhu Joint Institute for the Study of Ocean and Atmosphere University of.
A Climate Data Portal Focused on realtime and retrospective in situ data Nancy Soreide, Don Denbo, Willa Zhu, PMEL Charles Sun, NODC Bernie Kilonsky, U.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
24 Copyright © 2009, Oracle. All rights reserved. Building Views and Charts in Requests.
SGT Beans Easy-To-Use Graphics Toolkit for Java Applications Donald W. Denbo UW/JISAO-NOAA/PMEL.
EPIC Tools for in-situ data collections Donald W. Denbo, NOAA/PMEL Willa H. Zhu, NOAA/PMEL/JISAO John Osborne, OceanAtlas Software Christopher Moore, NOAA/PMEL/JISAO.
Using Java Graphics to Display Ocean Observations in NOAAServer D.W. Denbo Joint Institute for the Study of Ocean and Atmosphere (JISAO), University of.
A Collaboration Tool to Support Modeling Groups Donald W. Denbo JISAO/UW-NOAA/PMEL 20 th IIPS/AMS, 12 – 15 January, 2004,
NcBrowse: A Graphical netCDF File Browser Donald Denbo NOAA-PMEL/UW-JISAO
Adobe ® Photoshop ® CS6 Chapter 1 Editing a Photo.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
NcBrowse: OPeNDAP Server Access and 3-D Graphics Presented by Nancy N. Soreide NOAA/PMEL Donald W. Denbo UW/JISAO-NOAA/PMEL.
Developing Online Tools To Support The Visualization Of Ocean Data For Educational Applications Poster #1767 Michael Mills, S. Lichtenwalner,
ASP.NET Forms.
Tutorial 4: Enhancing a Workbook with Charts and Graphs
Dynamic Web Page A dynamic web page is a kind of web page that has been prepared with fresh information (content and/or layout), for each individual viewing.
Java Applets.
Web AppBuilder for ArcGIS
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
A Programming Language for
Software Architecture Taxonomy
Presentation transcript:

The Scientific Graphics Toolkit (A Technical Overview) Donald Denbo UW-JISAO/NOAA-PMEL

January 11, 2002NVODS/DODS Technical Workshop2 Introduction The Scientific Graphics Toolkit (SGT) is a collection of Java classes and interfaces to create graphical applications. SGT is a toolkit, not an application. Using SGT requires moderate Java programming skills. SGT does have several classes that make creating a graphical application easier, but using SGT does require producing code. With a modicum of effort a Java programmer can, using SGT, create graphical Java applications that are easy to use. SGT has had 5588 downloads to 2393 unique sites in 60 countries since March 2000 (as of Jan 7, 2002).

January 11, 2002NVODS/DODS Technical Workshop3 History Sgt was developed to allow a NOAAServer user to interactively preview data and overlay plots. Originally developed using jdk 1.0.3, now uses jdk 1.1.x. Next release will require jdk 1.2 or newer. Tutorial made available October 25, SGT release dates 1.0 – March 20, – March 14, – December 14, 2001

January 11, 2002NVODS/DODS Technical Workshop4 SGT Applications OceanShare a collaborative tool for distributed in situ data visualization Being customized for Fisheries-Oceanography use  (pdf paper) paper ncBrowse a netCDF file browser for local and remote netCDF files  (power point presentation) point presentation 3452 downloads to 1680 unique sites in 48 countries since February 2000 (as of Jan 7, 2002). Climate Data Portal client A distributed in-situ data application  (power point presentation) point presentation Although the CDPclient has not been publicly released, it has had 125 downloads to 51 unique sites in 6 countries.

January 11, 2002NVODS/DODS Technical Workshop5 Outline Demos and Examples Technical Issues Design philosophy & Goals Using standard Java idioms Design Patterns Architecture Real world applications using SGT

January 11, 2002NVODS/DODS Technical Workshop6 Outline Demos and Examples (applet demo)applet demo Technical Issues Design philosophy & Goals Using standard Java idioms Design Patterns Architecture Real world applications using SGT

January 11, 2002NVODS/DODS Technical Workshop7 TAOMap Plot built from basic sgt components Uses ValueIcon, which implements DraggableValueIcon Draggable Uses a Point Key, which implements Moveable and Selectable Moveable Selectable

January 11, 2002NVODS/DODS Technical Workshop8 JRealTimeDemo Built from basic sgt components. Data class uses PropertyChangeEven ts to notify sgt. Sgt then updates plot.

January 11, 2002NVODS/DODS Technical Workshop9 JVectorDemo Uses JPlotLayout which provides:JPlotLayout Zoom LayerChild selection LayerChild Vector head style is HEAD, where vector head is unscaled.

January 11, 2002NVODS/DODS Technical Workshop10 JGridDemo Uses JPlotLayout which provides:JPlotLayout Zoom LayerChild selection LayerChild GridAttribute GridAttribute is initially set to RASTER_CONTOUR style.

January 11, 2002NVODS/DODS Technical Workshop11 Outline Demos and Examples Technical Issues Design philosophy & Goals Using standard Java idioms Design Patterns Architecture Real world applications using SGT

January 11, 2002NVODS/DODS Technical Workshop12 Design Philosophy & Goals Don’t provide too much functionality in the toolkit Require developer to disambiguate zoom request (which layer) Use interfaces for data model specification Hide as much of the internal machinery as possible Provide utility classes to support developer Dialogs to set/edit graphics properties Plot layout class to support simple graphics Basic implementations of data model interfaces Keep toolkit flexible and extensible GIS style layer approach Support several display types Time series/Time axes X-Y plot 2-D contour and “pixel” plots Vector plot Point-Value plot

January 11, 2002NVODS/DODS Technical Workshop13 Using standard Java idioms (don’t reinvent the wheel) Basic graphics toolkits AWT support (now being deprecated)  Pane is a container  Printing Swing support  Scrolling  Printing  Repaint (refresh)  Minimum, maximum, and preferred size  JPane is a container JavaBeans idiom  Use set/get for parameters  Use add/remove for event listeners  Use set/is for boolean parameters

January 11, 2002NVODS/DODS Technical Workshop14 Don’t reinvent the wheel (cont…) Events Mouse events  Trapped by SGT Object selection Object move/drag operations Zoom rectangle handling  Passed on by SGT All others… SGT internal events (not really events!)  Add/remove SGT components  Modify component appearance (eg. Label, axis) Property change events  When a property changes value (eg. LineAttribute)LineAttribute  When a value changes in a data object  When the range of a data object changes

January 11, 2002NVODS/DODS Technical Workshop15 Design Patterns Strategy. Define a family of algorithms, encapsulate each one, and make them interchangeable. Transform, TimeAxisStyle, CartesianRenderer TransformTimeAxisStyleCartesianRenderer Proxy. Provide a surrogate or placeholder for another object to control access to it. Pane, JPane PaneJPane Abstract Factory. Provide an interface for creating families of related or dependent objects without specifying their concrete classes. CartesianRenderer, GridCartesianRenderer, LineCartesianRenderer, VectorCartesianRenderer, PointCartesianRenderer CartesianRendererGridCartesianRenderer LineCartesianRendererVectorCartesianRenderer PointCartesianRenderer

January 11, 2002NVODS/DODS Technical Workshop16 More Design Patterns Interface. Keep a class that uses data and services provided by instances of other classes independent of those classes by having it access those instances through an interface. SGTData, SGTGrid, SGTLine, etc SGTDataSGTGridSGTLine IndexedColor, TransformColor, TransformAccess IndexedColorTransformColorTransformAccess LayerChild, Moveable, Selectable, Draggable LayerChildMoveableSelectableDraggable Façade. Provide a unified interface to a set of interfaces in a subsystem. JPlotLayout

January 11, 2002NVODS/DODS Technical Workshop17 Outline Demos and Examples Technical Issues Design philosophy & Goals Using standard Java idioms Design Patterns Architecture Real world applications using SGT

January 11, 2002NVODS/DODS Technical Workshop18 Core Architecture Three coordinate systems Device – lowest level in pixels Physical – lower-left origin User – user defined Three main components Pane/JPane – extends Container/JLayeredPane Layer – physical units, used to build plot Graph – user units, axes, renders data (presently only CartesianGraph is implemented)

January 11, 2002NVODS/DODS Technical Workshop19 Core structure

January 11, 2002NVODS/DODS Technical Workshop20 Layers Contain a single Graph object and many LayerChild objects. Many Layers can be associated with a single Pane Layers can share AxisTransforms via their CartesianGraph objects LayerChild objects use physical coordinates

Layer Children

January 11, 2002NVODS/DODS Technical Workshop22 Rendering data A CartesianGraph object aggregates: Zero or more X or Y axes A renderer appropriate for the data type and attribute (e.g., PointCartesianRenderer, LineCartesianRenderer, or GridCartesianRenderer) One X AxisTransform One Y AxisTransform AxisTransforms provide a user to physical coordinate transformation for space or time

Graph and Renderers

January 11, 2002NVODS/DODS Technical Workshop24 Space and Time Axes SpaceAxis provides a visual scale for the spatial user to physical coordinate transform TimeAxis creates a visual scale for the GeoDate to physical coordinate transform TimeAxis has several “styles” that can be used depending on the temporal span Minute-Hour Hour-Day Day-Month Month-Year Year-Decade

Axes and AxisStyles

January 11, 2002NVODS/DODS Technical Workshop26 Sgt Data Model Data model needs to Support X-Y, contour, raster, vector, and point plots Be compact and “light-weight” Throw events to notify applications of data and/or range changes. Accomplished the above by Supporting “plottable” objects  One- and two-dimensional arrays  Coordinate information  Units and titles Data model implemented using java interfaces

Sgt Data Model

January 11, 2002NVODS/DODS Technical Workshop28 Mouse Events Mouse events are pre-processed by Pane Events passed to the user are Object selection Zoom rectangle selected PropertyChangeEvents thrown are objectSelected zoomRectangle Events processed by sgt are Object move Object drag

January 11, 2002NVODS/DODS Technical Workshop29 Outline Demos and Examples Technical Issues Design philosophy & Goals Using standard Java idioms Design Patterns Architecture Real world applications using SGT

January 11, 2002NVODS/DODS Technical Workshop30 ncBrowse ncBrowse was developed to browse netCDF files. Uses JPlotLayout which provides: Zoom LayerChild selection

January 11, 2002NVODS/DODS Technical Workshop31 Client developed to plot data from distributed data servers. Data from multiple servers can be combined on a single plot. Uses JPlotLayout Line Plots Area Plots Climate Data Portal Client

January 11, 2002NVODS/DODS Technical Workshop32 OceanShare OceanShare provides Collaborative work environment Local and network access of data sets Access to Habanero tools (whiteboard, chat, etc.) Implemented using LineProfileLayout Line style (highlight, mark, or solid) Line color Interactive zoom UserIcon and ValueIcon (implements LayerChild interface)

January 11, 2002NVODS/DODS Technical Workshop33 What next? Finish GridAttributeDialog. (enables GridAttribute, contour, and ColorMap editing.) Next version (2.2) will use Java2D to provide native support of physical to device coordinate transformation Remove deprecated classes and drop jdk1.1 support

January 11, 2002NVODS/DODS Technical Workshop34 Real World Applications using SGT SGT – Java graphics toolkit A Tutorial of the Scientific Graphics Toolkit, NOAATech A Tutorial of the Scientific Graphics Toolkit “Interactive Graphics Toolkit for Java Applications and Web Applets”, American Meteorological Society paper, January “Interactive Graphics Toolkit for Java Applications and Web Applets”, SGT home page. ncBrowse – netCDF file browser ncBrowse home page. OceanShare – collaborative tool for distributed in-situ data “OceanShare: Interactive Access to Distributed In Situ Data in a Collaborative Tool Environment”, American Meteorological Society paper, January “OceanShare: Interactive Access to Distributed In Situ Data in a Collaborative Tool Environment”, GOIN 99 Presentation. Climate Data Portal – distributed in-situ data access Climate Data Portal home page.