-
Notifications
You must be signed in to change notification settings - Fork 14
GuideToVerdiCode
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