SGT Beans Easy-To-Use Graphics Toolkit for Java Applications Donald W. Denbo UW/JISAO-NOAA/PMEL
NOAATech 2004, Silver Spring, MD2 Introduction The Scientific Graphics Toolkit JavaBeans (SGT Beans) is a collection of Java classes that provide JavaBeans compatible access to SGT. JavaBeans makes SGT’s capabilities more accessible to developers. SGT Beans reduces the learning curve needed to produce graphics applications. SGT Beans can be used with several Java IDEs (NetBeans, JBuilder, etc.).
NOAATech 2004, Silver Spring, MD3 History SGT was developed to allow a NOAAServer user to interactively preview data and overlay plots. SGT presently used with … –OceanShare, a collaborative tool for in situ data visualizationOceanShare –ncBrowse, a netCDF file browserncBrowse –Climate Data Portal client, an application for browsing distributed dataClimate Data Portal client SGT has had ~17,000 downloads from 5,800 unique sites in 70 countries.
NOAATech 2004, Silver Spring, MD4 Other Users of SGT Buoy Data, Morska Bioloska Postaja (Marine Biology Station)Buoy Data Computational Physics Laboratory, University of EdinburghComputational Physics Laboratory A Utility in JOELib, Computational Chemistry, University of TübingenA UtilityJOELib “Coordinated, Interactive Data Visualization for Neutron Scattering Data”, Mikkelson et. al.Coordinated, Interactive Data Visualization for Neutron Scattering Data Dezo.org has created SGT applet plots.plots. “An Interactive Program for Determining Junction Depths in Diffused Silicon Devices”, Myers et. al.An Interactive Program for Determining Junction Depths in Diffused Silicon Devices Übungsunterlagen 2002, WasserspeicherWasserspeicher
NOAATech 2004, Silver Spring, MD5 Outline SGT Bean design goals Demonstration of SGT Bean application. Architecture –Page –DataModel –PanelModel SGT Bean code examples 1.Time series. Plotting data from a netCDF file. 2.Add grid plot. Refactor netCDF reader. 3.Overlay vectors and add printing, PanelModel edit, etc. What Next?
NOAATech 2004, Silver Spring, MD6 Design Goals Create easy-to-use JavaBeans from the SGT classes. JavaBeans will enable beginner and intermediate developers a quick entry into SGT graphics. SGT Beans will handle most events and provide tools to easily customize the appearance of the plot.
NOAATech 2004, Silver Spring, MD7 SGT Beans Demonstration Start Demonstration
NOAATech 2004, Silver Spring, MD8 Architecture The SGT Beans architecture consists of Page, DataModel, and PanelModel JavaBeans. The DataModel and PanelModel beans provide the “state” information necessary for Page to create a graphic display. Page DataModelPanelModel 1 1
NOAATech 2004, Silver Spring, MD9 Page JavaBean Visual JavaBean. Page can be added to any swing container. Page can have any number of Panels placed inside it. Each Panel provides an independent graphical display of data from the DataModel. The location and size of the Panels are specified in the PanelModel.
NOAATech 2004, Silver Spring, MD10 Page JPane 1 1 DataGroupLayer * Panel labelLayer legendLayer 2 components Layer 1..*
NOAATech 2004, Silver Spring, MD11 PanelModel JavaBean Non-visual JavaBean. PanelModel maintains: –location and size of Panels on Page –AxisGroups and their positions on a Panel –Legend position on a Panel –Titles and annotation positions on a Panel
NOAATech 2004, Silver Spring, MD12 PanelModel PanelHolder 1..* DataGroup 1..* Legend * Label * Margin 1 AxisHolder 2
NOAATech 2004, Silver Spring, MD13 DataModel JavaBean Non-visual JavaBean. DataModel uses information from the PanelModel to specify the connection between data and Panel/AxisGroup. Contains the SGTData and Attribute objects.
NOAATech 2004, Silver Spring, MD14 DataModel 1..* * DataHolder 1..* DataGroupLegend Attribute 1 SGTData 1 PanelHolder 1 11
NOAATech 2004, Silver Spring, MD15 SGT Beans Code Examples Example 1: Time SeriesExample 1 –Read time series from netCDF file into SimpleLine object.Read time series –Create graph using Page, DataModel, and PanelModel. –Load PanelModel from SBExample1.xml.SBExample1.xml. Example 2: Add Grid PlotExample 2 –Read grid from netCDF file into SimpleGrid object.Read grid –Load PanelModel from SBExample2.xml.SBExample2.xml. Example 3: Overlay Vectors and Add InteractivityExample 3 –Read vector from netCDF file into SGTVector object.Read vector –Load PanelModel from SBExample3.xml.SBExample3.xml. –Add color map Legend. –Add printing, class browsing, zoom reset, PanelModel edit.
Example 1: Time Series SBExample1.xml
NOAATech 2004, Silver Spring, MD17 SBExample1SBExample1 class
NOAATech 2004, Silver Spring, MD18 Constuctor
NOAATech 2004, Silver Spring, MD19 createGraphic()
NOAATech 2004, Silver Spring, MD20 createGraphic() (cont)
NOAATech 2004, Silver Spring, MD21 NcSimpleReader1
NOAATech 2004, Silver Spring, MD22 getTimeSeries() implementation
NOAATech 2004, Silver Spring, MD23 Set shape and read Arrays
NOAATech 2004, Silver Spring, MD24 Extract variable and axis values
NOAATech 2004, Silver Spring, MD25 Parse time units.
NOAATech 2004, Silver Spring, MD26 Parse time offset, create GeoDateArray
NOAATech 2004, Silver Spring, MD27 Create SimpleLine and return
NOAATech 2004, Silver Spring, MD29 Example 2: Add Grid Plot SBExample2.xml
NOAATech 2004, Silver Spring, MD30 SBExample2SBExample2 modifications
NOAATech 2004, Silver Spring, MD31 Add Grid to Page
NOAATech 2004, Silver Spring, MD32 Add createGridAttribute()
NOAATech 2004, Silver Spring, MD33 NcSimpleReader2NcSimpleReader2 - Add getGrid()
NOAATech 2004, Silver Spring, MD34 Get shape and x & y axis data
NOAATech 2004, Silver Spring, MD35 Adjust shape and get data grid
NOAATech 2004, Silver Spring, MD36 Create SimpleGrid and return
NOAATech 2004, Silver Spring, MD37
NOAATech 2004, Silver Spring, MD38 Example 3: Overlay Vectors and Add Interactivity SBExample3.xml
NOAATech 2004, Silver Spring, MD39 SBExample3SBExample3 modifications
NOAATech 2004, Silver Spring, MD40 Add Grid Legend
NOAATech 2004, Silver Spring, MD41 Add Printing
NOAATech 2004, Silver Spring, MD42 Reset Zoom and Open JClassTree
NOAATech 2004, Silver Spring, MD43 Edit Printer Layout and PanelModel
NOAATech 2004, Silver Spring, MD44 NcSimpleReader3NcSimpleReader3 - Add getVector()
NOAATech 2004, Silver Spring, MD45 Modify getGeoDateArray
NOAATech 2004, Silver Spring, MD46
NOAATech 2004, Silver Spring, MD47 What next? Add LayoutManager support to position Panels when Page is resized. This requires creating a graphical wizard to set SpringLayout properties. Add Annotation object support. Annotations include line, oval, point, text, and rectangle objects. Enhance IDE compatibility with popular tools. Continue fixing bugs, as they are found, and adding new useful features.
NOAATech 2004, Silver Spring, MD48 References SGT Beans –“Plug and Play Scientific Graphics with SGT”, NOAAResearch WebShop 2003, Longmont, CO“Plug and Play Scientific Graphics with SGT”, –SGT home pageSGT home page ncBrowse –“ncBrowse: A Graphical netCDF/OPeNDAP Browser”, 11 th ESIP Technical Meeting - OPeNDAP Session, Boulder, CO“ncBrowse: A Graphical netCDF/OPeNDAP Browser”, –ncBrowse home pagencBrowse home page OceanShare –“Fisheries Oceanography Collaboration Software”, 18th AMS International Conference on IIPS, Orlando, FL“Fisheries Oceanography Collaboration Software”, –Collaboration home pageCollaboration home page Climate Data Portal –Climate Data Portal home pageClimate Data Portal home page