Skip to content
Liz Adams edited this page Nov 24, 2015 · 42 revisions

Description of VERDI and links to JavaDocs for code in VERDI:
Note: VERDI uses Repast Simphony for some of the UI components:
http://repast.sourceforge.net/docs/api/repast_simphony/index.html
http://repast.sourceforge.net/docs.php
http://repast.sourceforge.net/docs/RepastJavaGettingStarted.pdf
(One problem is that the source code for repast symphony either isn't with the code, or the eclipse debugger environment isn't set up to find it)
It also supports GIS:
http://repast.sourceforge.net/repast_3/how-to/Gis_How_To.html
Repast Simphony may use openmap (Jo Ellen is looking to replace openmap with GeoTools
http://www.isti.com/libs/OpenMap/doc/api/com/bbn/openmap/proj/coords/package-use.html
http://docs.geotools.org/latest/userguide/tutorial/quickstart/eclipse.html

VERDI and Geotools uses Java Advanced Imaging for raster support (code provided with VERDI) http://download.java.net/media/jai/builds/release/

VERDI uses ImageIO read and write raster files (save image as jpg, etc)

VERDI uses netcdf-java for reading data in I/O API CMAQ output and WRF output files
http://www.unidata.ucar.edu/blogs/news/entry/netcdf-java-library-and-tds
http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/tutorial/

VERDI uses JFreeChart for plots other than the Fast Tile and Areal Interpolation plot
http://www.jfree.org/jfreechart/

VERDI uses log4j for logging error messages
https://github.com/CEMPD/VERDI/wiki/Error-or-Debugging-messages-in-VERDI

We are currently using git. A local git repository is created
This directory should be in a different location than the eclipse workspace directory
You will want to use git clone to get a copy of the code with all of the branches.
You can then create a new branch and begin to work on changes.
The code that Jo Ellen worked on to remove reading bin files and using geotools for shapefiles is under the Shapefiles Branch.
More information here:
https://github.com/CEMPD/VERDI/wiki/Shapefile-Branch

To see how we set up a chrome book that runs ubuntu to install eclipse and use git clone to get the code from github.
https://github.com/CEMPD/VERDI/wiki/Eclipse-on-ubuntu

https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell

Main Window Menu Options - all the following options are controlled by the (plugin.xml)

 File
   `-- Open Project
   `-- Save Project
   `-- View Script Editor
   `-- Exit
 Plots
    `-- Undock all plots
    `-- Animate Tile Plots
 Window
    `-- Datasets
    `-- Areas
    `-- Formulas
    `-- Script Editor (if View Script Editor has been activated)
    `--  List of Plots (if plots have been created)
 Help
    `--Search
    `--VERDI Help Docs
    `--About

All Panes within VERDI can be resized, closed or externalized
using the package (saf.core.ui.actions)

 Pane
 --Minimize this view
 --Float or Externalize View 
 --Maximize this view
 --Close this view

Dataset Panel is controlled by the (DataSetPanel)

 Dataset Panel
 --Add local dataset
 --Remove local dataset
 --Add remote dataset
     -- Remote File Access
 --Variables List
    -- Action: Double click to add the variable as a formula

Time Steps are controlled by the (TimePanel)

 Time Steps Panel
 --Use Time Range Checkbox
   --Min Spinner
   --Max Spinner

Layers Panels(LayerPanel)

 Layers Panel
 --Use Layer Range Checkbox
    -- Min Spinner
    -- Max Spinner

Domain Panel (DomainPanel)

 Domain Panel
 --Edit 
 --Metadata textbox view

Formulas Panel(FormulaPanel)

 Formula Panel
 --Delete Formula
 --Text Box, Add
 --Display Selected Formula in upper right hand side of VERDI Plot Window

Area Panel(AreaFilePanel)

 Areas
 --Add Area File
    --Open Area File: File
        --Open Area File: Coordinates
            --Please select the name field
 --Delete Area File (note this doesn't seem to work)

Adding and Removing an Area File
(VerdiApplication) under: anl.verdi.core.VerdiApplication.loadAreaFile(File[])
Areas List

Creating Plots(PlotFactory)

Fast Tile Plot(FastTilePlot)

 Fast Tile Plot Menu Options
 --File
    --Print
    --Export as Image
 --Configure
    --Configure Plot
    --Load Configuration
    --Save Configuration
 --Controls
    --Zoom
    --Probe
    --Set Row and Column Ranges
    --Show Gridlines
    --Show Lat/Lon
 --Plot
    --Time Series of Probed Cells (Greyed out unless Probed Region is selected)
    --Time Series Bar of Probed Cells (Greyed out unless Probe Region is selected)
    --Time Series of Min Cells
    --Time Series of Max Cells
    --Animate Plot
    --Add Overlay
  --GIS Layers
    --Add Map Layers
    --Configure GIS Layers
    --Set Current Maps as Plot Default (currently greyed out)

 Plot GUI User Actions
 --Time Step Spinner
 --Layer Spinner
 --Stats Pull-down Menu for Grid Cell Time Aggregate Statistics
 --Animation
   --Move one timestep to left
   --Move one timestep to right
   --Play/Stop
   --Text box to set animation delay in ms

 Right Click Mouse Options
   --Properties...
   --Save Image As...
   --Print...
   --Zoom_In
   --Zoom_Out
   --Max_Zoom_Out

Areal Interpolation Plot(FastAreaTilePlot)

 Areal Values for Polygon Segment
 (Fixing Georeferencing capabilities in VERDI by upgrading to using GeoTools.)
 File
 (Same Pull Down Menu Option for File as Fast Tile Plot with this added:)
 --Export Areal Plot Data to Shapefiles 
 --Options
   --Show Area Averages
   --Show Area Totals (Clip between the grid and geographic boundaries, clip between two shapefiles (polygon shapefile and geographic boundary shapefile)
   --Show Gridded Data
   --Selected Areas
   --All Areas
 (Same Right Click Options as Fast Tile Plot with this added:)
 --Right Click Action on Plot
    --Area Information
       --View Area Values for the Selected Formulas
          --Save as spreadsheet

GridShapeFileWriter.java (currently commented out - as EPA was reporting that the saved Shapefile wasn't correctly geo-located over a map when they imported the shapefile written by VERDI into another GIS system.

We may want to look at the following code for how to convert lat/lon on sphere to other projections, ie. Mercator
http://wiki.openstreetmap.org/wiki/Mercator
(Same Plot Menu Options as Fast Tile Plot with this added:)

Vertical Cross Section Plot

 Vertical Cross Section Pop-up Menu
 --Text Box Vertical Cross Section
 --Select Cross Section
   --Toggle on/off X-Axis Cross Section
     --Select Column Spinner
   --Toggle on/off Y-Axis Cross Section
     --Select Row Spinner
 --OK or Cancel Button

Time Series Plot(TimeSeriesPlotRequest)

Time Series Bar Plot(TimeSeriesBarPlot)

Scatter Plot(ScatterPlot)

Contour Plot(ContourPlot3D)

Plot Menu Bar(PlotUtil)
Plot Menu Bar options all called from: anl.verdi.plot.gui.FastTilePlot.getMenuBar()
File Menu
Print(PlotPrintAction)
Export as image(PlotExporterAction)

Configure Menu

Configure Plot
from anl.verdi.plot.gui.FastTilePlot.editChartProperties()
or from other plots it is from anl.verdi.plot.types.AbstractPlot.VerdiChartPanel.doEditChartProperties()
Titles(ChartTitlesPanel)
Color Map(Color Package)
Still not sure what causes the Fast Tile Plot to create the Color Map tab, while the other plots omit this.
Here is a java tutorial on how to create a tabbed pane.
Labels Other (tabbedpane)
Save Configuration
Load Configuration

Controls Menu(FastAreaTilePlot)
Controls --Zoom --Probe --Probe at a Single Point --Probing a Domain Region of Data --Set Row and Column Ranges --Show Grid Lines --Show Latitude and Longitude anl.verdi.plot.gui.FastTilePlot.DataRangeDialog.createMiddlePanel()

Plot Menu Options
Time Series Plots
Animate Plots
Add Overlays
Observational Data Overlays
https://rawgit.com/CEMPD/VERDI/master/verdi_core/doc/anl/verdi/core/VerdiApplication.html Vector Overlays

GIS Layers
Add Map Layers
Configure GIS Layers

Supported Grid and Coordinate Systems (Map Projections)

I/O API-formatted Data
CAMx Gridded Data

I/O API Utilities, Data Conversion Programs, and Libraries

Mathematical Functions
Unary Functions
Binary Operators
Boolean Operators

 VERDI Command Line Script Options
 --Look at the Java Strings API

([Strings Datatype]http://introcs.cs.princeton.edu/java/31datatype/)

VERDI Batch Script Editor

Specify hour/time step formula in batch script mode

Mathematical function capability in batch script mode

Areal Interpolation Calculations

I/O Service Provider (IOSP) Interface for CAMx:Incorporating the IOSP into netcdf-java Library

Clone this wiki locally