Skip to content

Architecture and Workflow

Navid Jadidoleslam edited this page Mar 21, 2020 · 9 revisions

HydroVisE is developed with a paradigm of modularity, usability, and scientific visualization of spatio-temporal data. The workflow diagram is shown in figure below.

HydroVisE workflow
Workflow diagram of HydroVisE - Red arrows show the initialization of the Graphical User Interface (GUI) after configuration. Black arrows show the relationship between user interactions in GUI, Modules, and data sources.

Here is a brief description of HydroVisE workflow:

  1. User prepares a config file.
  2. After initialization, control elements are generated.
  3. User interactions with GUI's control elements triggers modules to do specified tasks.
  4. Modules use the data from specified data sources.
  5. Results of the user interactions are shown on GUI.

Each element of workflow diagram is described in following sections.

Config file

Config is JSON object that has the essential information for deployment of HydroVisE instance. The structure of this file and the tags are described in detail in Configuration page.

Initialization

Initialization is the first step for generating a HydroVisE instance. This module uses a configuration file (hereafter config) to create the dynamic control elements in the GUI based on the config file.

Graphical User Interface (GUI)

GUI is generated by Initialization module using config file. HydroVisE GUI has two types of elements namely: static and dynamic elements. The presence/absence of Dynamic elements depend on the information that user has provided within the Config file. General GUI's layout is shown in figure below:

General layout for HydroVisE
HydroVisE Layout - The elements bordered with a dashed line are the control elements that are being created dynamically based on Config file.

Table below describes the functionalities of control elements with reference to their assigned numbers on the Layout.

Category ID Name Description
Data selection control element 1 Time partition navigator Navigation over time based on time partitioning of the data cube
3 Marker attribute selector Map marker attribute selector (e.g. performance metrics, flow percentile, etc.)
4 Variable selector Navigation over variable dimension in the data cube
8 Ensemble time-series selector Selection of multiple time-series for a given location and time partition
9 Spatio-temporal timestamp selector Selection of timestamps with available spatio-temporal data
10 Spatio-temporal variable selector A tabulated list for selecting spatio-temporal variable
11 Contextual map inventory A list of contextual map layers and selected spatial data with hide/show options
Visualization 2 Time-series plot toggler Hide/show timeseries canvas
6 Map canvas Spatial data are shown in here
7 Time-series canvas Time-series plot container
14 Color palette Color palette for marker attributes
16 Color palette Color palette for spatio-temporal map
Map 5 Basemap selector Leaflet basemap selection
12 Map canvas zoom in/out Map navigation control element
13 Map Printer Downloads a high resolution PNG screen capture of the map and markers
15 Geolocation search Search for places with city name or latitude and longitudes

Table above describes HydroVisE control elements corresponding to their element ID shown in HydroVisE Layout figure. These elements are categorized into Data selection control element, Visualization, and Map functionalities.

Modules & System State

Modules are HydroVisE Functions that are developed for data acquisition, processing, and other functionalities. These functions are further described in the Modules section of this documentation. Modules acquire data from either File System or Data Service depending on the user defined configurations.

System States are the state of different components in HydroVisE. For example, date range of the time-series plot is a System State that are kept in System States JSON object. For more technical documentation user is referred to HydroVisE Developer Documentation.

Data

The data organization for HydroVisE follows the concept of Space-Time-Variable data cubes (e.g. Gray et al. (1997), Maidment and Morehouse (2002), Goodall et al. (2008)). Data cubes are multi-dimensional conceptual cubes that can be used for organization of the data for efficient data queries for a specific variable at given location and time.

Space-Time-Variable data cubes implemented in HydroVisE
Space-Time-Variable data cubes implemented in HydroVisE - Depending on the user preference and needs, the atomic element of the data cube could have a value or an N-dimensional array.

Following data cubes for data organization, it allows users to navigate in each dimension. In figure above, a data cube is shown as an example for data organization. The atomic element of this cube could be fetched or queried using HydroVisE GUI control elements that refers to data at a given comID, time, and variable. The result of the Query could be a single value, an array, or an N-dimensional array.

Here is an example Query of space-time-variable data cube:

Dimension Dimension ID Control Element Example
Space comID Spatial data on the Map "gauge_1"
Time year Time navigator buttons 2016
Variable obs_type Variable navigator buttons "soil_moisture"
Resulting data for the Query could look like this:
datetime,soil_moisture
2016-01-01 00:00,0.31
2016-01-01 01:00,0.36
2016-01-01 02:00,0.355
2016-01-01 03:00,0.35
2016-01-01 04:00,0.34
.
.
.
2016-12-31 23:00,0.42

Next, refer to Configuration and Quick Setup pages for using HydroVisE.

Clone this wiki locally