An Environmental Modeling Portal

A science portal is a human-computer interface which facilitates desktop access to remote resources including, supercomputers, network of workstations, smart instruments, data resources, and more. We have utilized the Java programming language to develop an environmental modeling portal built on our Spatial Modeling Environment (SME).

The SME Portal provides an environment to facilitate collaboration and discussion in environmental model development and simulation. It provides the user with a single familiar environment in which to remotely build, configure, and interactively run, control, and visualize complex environmental simulations on a wide range of advanced computing resources. Build-in converters allow users to easily import/export data to/from Geographical Information Systems (GISs) and relational databases. Built-in tools allow the user to interactively browse through all variables in a running simulation and visualize spatial and timeseries data in a variety of display modes.

During initialization, the Portal connects to a simulation server ( in a manner analogous to telnet or ftp ) which handles the spawning of a new spatial simulation on a host computer. The user is provided with a control panel to configure simulation data input and output, control simulation dynamics and display simulation output. The display panel allows the user to browse through the objects in a paused simulation and view each object's internal data structures in a convenient format. The browser also provides a menu of each object's dependent objects, so users can quickly traverse the dependency tree while searching for anomalies in the simulation output. A palette of data viewers is provided, supporting many display formats, including immersive virtual reality displays, 2D animations, 3D animations, 1D timeseries graphs, data and image spreadsheets, 3D isocontour viewers, and data browsers.

The various components of the SME Portal are described in the following sections.


Workspace Manager

The panel shown below is used to manage SME workspaces (click on image for expanded view).

A workspace is defined as a location on the network which contains a set of SME projects. All SME models exist with a project. A project contains a set of models covering (sub-regions of ) a single study area, so that they share a single data set. The Workspace Manager reads a set of xml data files which define the workspace:project:model structure and provides the user with an interface for adding/removing/changing workspaces, projects, and models.

The various actions listed above are facilitated by wizards, which are generated "on the fly" from XML definitions in the SME's Wizard Definition Language, described below.

The Workspace Manager also uses the java CoG kit to interface to the globus gram utility, which is utilized to initiate execution of a model on a remote supercomputer. Selecting a model and then choosing "run" from the model menu brings up the Gram Control panel, as shown below:

The Gram Control panel allows the user to select a globus gatekeeper, and then submit a run request. The standard output and standard error of the request are shown in the two text panels. This example displays an error condition ( the user's certificate proxy has expired ). Upon successful completion of the run request, the model execution is initiated on the remote supercomputer, t the SME Portal control panels are initialized and displayed on the local machine, and two socket connections ( control and data ) are established between the model and the portal.

The following sections describe the SME Portal control panels and simulation visualization tools.


SME Portal Control Panels

At the beginning of a simulation run the structure of the model ( consisting of a hierarchical list of modules, variables, and variable type/configuration info ) is downloaded to the portal. From this information the various control panels ( described below ) are generated by the portal.

Simulation Configuration Panels

The SME configuration panel is used to configure running simulation models, as shown below.

Each box in the table represent a configuration command. Commands exist for configuring simulation input/output, structure ( e.g. linking SME variable with external objects ) and dynamics ( e.g. integration methods, timestep, debug level, etc ). The structure of the command consists of a command name followed by a list of arguments. When a command is selected in the table, a documentation string is displayed above the table and the structure of the command is displayed graphically in the frame below the table. Choosing an add or edit button brings up a wizard which steps the user through the process of editing the arguments of the command. The interface derives all its command information from XML command data files, and the wizards are created "on the fly" based on this information and wizard templates defined in our Wizard Definition Language, described below. Thus, the creation of a new command type requires only the editing of an XML data file (i.e. no java coding is required).

Another panel is provided for adjusting the parameters of a running simulation, as shown below:

In this panel the "Value" column on the right consists of editable fields which can be used to change parameter values.

Simulation Control Panel

The Simulation Control Panel, shown below, facilitates real-time control, evaluation, and debugging of simulation dynamics.

The Simulation Control Panel allows the user to:

SME Python Shell

The SME Python Shell panel, shown below, provides an alternative interface for real-time control, evaluation, and debugging of simulation dynamics. It allows programming of simulation execution, visualization, and data processing using the python object-based scripting language.

This shell provides a single environment for controlling simulation configuration, execution, visualization and output post-processing. Future versions will interface with globus/CoG kit/CCA/OPIE, etc. to integrate grid/portal functionality. For more information please consult the Python shell documentation .

ViewServer Control Panel

The ViewServer Control panel, shown below, is used to configure and control the real-time visualization of simulation dynamics.

The ViewServer Control panel is used to associate DataSets with Viewers. DataSets are piped to the ViewServer via a socket connection from a running simulation. This control Panel allows the user to view any of the available DataSets by choosing visualization modalities from a menu of available Viewers. DataSets at either the simulation or the variable level may be deleted or archived to disk and retrieved later.


Viewers

The following sections describe the various built-in viewers provided by the SME Portal for real-time visualization of simulation dynamics.

2D Animation Viewer

This viewer allows the user to view 2D real-time or archived animations of simulation data. By default all images in a simulation series are scaled uniformly and the image is automatically updated when new data arrives from the simulation. A separate control panel allows the user to synchronously run or step (forward or backward) through all visible animation viewers. The user may rescale any image or animation sequence and save all data to disk. The magnification of the image is adjusted when the user changes the size of the viewer window.

3D Animation Viewer

This viewer allows the user to generate 3D surface plots of real-time or archived simulation Data. The image can be zoomed, panned, rotated, or translated using simple mouse drag operations. The user can map different variable to the color and height components of the display, making this viewer particularly useful for generating comparisons between images. By default all images in a simulation series are scaled uniformly and the image is automatically updated when new data arrives from the simulation. A separate control panel allows the user to synchronously run or step (forward or backward) all visible animations.

Data Sheet

This tool is used to view the raw data being displayed in any of the other viewers. The user may select a rectangle of Data in an Animation viewer which is displayed in a Data sheet Viewer and automatically updated each time the animation image changes.

Image Table

This tool is used to view a number of image series in spreadsheet format. It is particularly useful for making comparisons between variables at various times in the simulation. By default all image series are scaled uniformly and updated when new data arrives from the simulation. The user may easily rescale any image or image series, and change the magnification, time step, or time offset of the image sequences.

TimeSeries Graphs

This tool is used to visualize up to six overlapping timeseries graphs, each associated with a different variable in the simulation. By default each graph is scaled automatically and is updated when new data arrives from the simulation. The user can easily adjust the scaling, line color, and labels associated with any of the graphs in the Viewer.

Wizard Definition Language

The Wizard Definition Language (WDL) is an xml-based markup language for defining wizards. A wizard is define to be a set of panels which guide a user through a set of operations. Wizards typically incorporate documentation fields, data input fields, file choosers, etc. As an example, the first panel of our "Add Model to Project" wizard is shown below.

The WDL facilitates the creation of wizards by allowing the the developer to define them in a customized xml syntax. Thus, the creation of a new wizard requires only the editing of an xml data file (i.e. no java coding is required). Any information the user enters into the fields of the wizard is automatically saved and restored the next time the wizard is invoked. The xml wizard definition can incorporate "tool tip" (balloon) help data and scripts to be executed using the data input input into each panel. The xml definition of the wizard panel above is shown below.



<wizard name="Model open wizard"  id="Model.open" >
  <template>
        %{Workbench.name} project %1 %0; %{Workbench.name} import %{Model.config}
  </template>


  <panel name="Configure Model"  id="Model.config"  >

    <template>
         %{Model.id} %{Model.file}
    </template>

    <field name="Model docs"  type="doc" required="true"  id="Model.doc"  >

      <value>
         This panel is used to set up a new Model.  In this version, adding a Model to a Project
         involves importing a Stella equation file, which is translated to the Simulation Module 
         Markup Language (SMML) (the SME's internal modeling language) for archiving.   Removing 
         a Model from a Project simply deletes the entry in the SME Project database, and does not 
         effect the Model files in the Project directory.  You may only add/remove Models to/from 
         Projects that you own.
      </value>

    </field>

    <field name="Model Title:"  type="string" required="true"  id="Model.name" >

      <help>
         This field is used to select the Model title, e.g. "Patuxent Landscape Model".
      </help>

      <value>
         %2
      </value>

    </field>

    <field name="Model Acronym:"  type="string" required="true"  id="Model.id" >

      <help>
         This field is used to give the Model a unique acronym
         (typically three letteres/numbers), e.g. "PLM"
      </help>

      <value>
         %1
      </value>

    </field>

    <field name="STELLA equation file:"  type="file" required="true"  id="Model.file" >

      <help>
        This field is used to select the STELLA equation file that will
        be imported to initialize this Model.
      </help>

      <value>
        %0/%1/Models/%1.eqns
      </value>

    </field>

    <field name="Model Documentation:"  type="string" required="false"  id="Model.doc" >

      <help> 
         This field is used to add a brief description of the Model.
      </help>

      <value> 
      </value>

    </field>

  </panel>

</wizard>