The Scientific Graphics Toolkit A Technical Overview - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

The Scientific Graphics Toolkit A Technical Overview

Description:

Using standard Java idioms (don't reinvent the wheel) Basic graphics toolkits ... JavaBeans idiom. Use set/get for parameters. Use add/remove for event listeners ... – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 35
Provided by: donald71
Category:

less

Transcript and Presenter's Notes

Title: The Scientific Graphics Toolkit A Technical Overview


1
TheScientific Graphics Toolkit(A Technical
Overview)
  • Donald Denbo
  • UW-JISAO/NOAA-PMEL

http//www.epic.noaa.gov/java/sgt
2
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).

3
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, 2001.
  • SGT release dates
  • 1.0 March 20, 2000
  • 2.0 March 14, 2001
  • 2.1 December 14, 2001

4
SGT Applications
  • OceanShare
  • a collaborative tool for distributed in situ data
    visualization
  • Being customized for Fisheries-Oceanography use
  • http//www.epic.noaa.gov/collab/ (pdf paper)
  • ncBrowse
  • a netCDF file browser for local and remote netCDF
    files
  • http//www.epic.noaa.gov/java/ncBrowse/ (power
    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
  • http//www.epic.noaa.gov/cdp/ (power point
    presentation)
  • Although the CDPclient has not been publicly
    released, it has had 125 downloads to 51 unique
    sites in 6 countries.

5
Outline
  • Demos and Examples
  • Technical Issues
  • Design philosophy Goals
  • Using standard Java idioms
  • Design Patterns
  • Architecture
  • Real world applications using SGT

6
Outline
  • Demos and Examples (applet demo)
  • Technical Issues
  • Design philosophy Goals
  • Using standard Java idioms
  • Design Patterns
  • Architecture
  • Real world applications using SGT

7
TAOMap
  • Plot built from basic sgt components
  • Uses ValueIcon, which implements Draggable
  • Uses a Point Key, which implements Moveable and
    Selectable

http//www.epic.noaa.gov/java/sgt/sgt_demos.shtml
8
JRealTimeDemo
  • Built from basic sgt components.
  • Data class uses PropertyChangeEvents to notify
    sgt.
  • Sgt then updates plot.

9
JVectorDemo
  • Uses JPlotLayout which provides
  • Zoom
  • LayerChild selection
  • Vector head style is HEAD, where vector head is
    unscaled.

http//www.epic.noaa.gov/java/sgt/sgt_demos.shtml
10
JGridDemo
  • Uses JPlotLayout which provides
  • Zoom
  • LayerChild selection
  • GridAttribute is initially set to RASTER_CONTOUR
    style.

http//www.epic.noaa.gov/java/sgt/sgt_demos.shtml
11
Outline
  • Demos and Examples
  • Technical Issues
  • Design philosophy Goals
  • Using standard Java idioms
  • Design Patterns
  • Architecture
  • Real world applications using SGT

12
Design Philosophy Goals
  • Dont 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

13
Using standard Java idioms(dont 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

14
Dont 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)
  • When a value changes in a data object
  • When the range of a data object changes

15
Design Patterns
  • Strategy. Define a family of algorithms,
    encapsulate each one, and make them
    interchangeable.
  • Transform, TimeAxisStyle, CartesianRenderer
  • Proxy. Provide a surrogate or placeholder for
    another object to control access to it.
  • Pane, JPane
  • Abstract Factory. Provide an interface for
    creating families of related or dependent objects
    without specifying their concrete classes.
  • CartesianRenderer, GridCartesianRenderer,
    LineCartesianRenderer, VectorCartesianRenderer,
    PointCartesianRenderer

16
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
  • IndexedColor, TransformColor, TransformAccess
  • LayerChild, Moveable, Selectable, Draggable
  • Façade. Provide a unified interface to a set of
    interfaces in a subsystem.
  • JPlotLayout

17
Outline
  • Demos and Examples
  • Technical Issues
  • Design philosophy Goals
  • Using standard Java idioms
  • Design Patterns
  • Architecture
  • Real world applications using SGT

18
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)

19
Core structure
20
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

21
Layer Children
22
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

23
Graph and Renderers
24
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

25
Axes and AxisStyles
26
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

27
Sgt Data Model
28
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

29
Outline
  • Demos and Examples
  • Technical Issues
  • Design philosophy Goals
  • Using standard Java idioms
  • Design Patterns
  • Architecture
  • Real world applications using SGT

30
ncBrowse
  • ncBrowse was developed to browse netCDF files.
  • Uses JPlotLayout which provides
  • Zoom
  • LayerChild selection

http//www.epic.noaa.gov/java/ncBrowse
31
Climate Data Portal Client
  • 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

http//www.epic.noaa.gov/cdp/
32
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)

http//www.epic.noaa.gov/collab/
33
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

34
Real World Applications using SGT
  • SGT Java graphics toolkit
  • A Tutorial of the Scientific Graphics Toolkit,
    NOAATech 2002.
  • Interactive Graphics Toolkit for Java
    Applications and Web Applets, American
    Meteorological Society paper, January 2001.
  • 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 2000.
  • GOIN 99 Presentation.
  • Climate Data Portal distributed in-situ data
    access
  • Climate Data Portal home page.
Write a Comment
User Comments (0)
About PowerShow.com