-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture and Workflow
HydroVisE is developed with a paradigm of modularity, usability, and scientific visualization of spatio-temporal data. The workflow diagram is shown in figure below.
![]() |
---|
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:
- User prepares a config file.
- After initialization, control elements are generated.
- User interactions with GUI's control elements triggers modules to do specified tasks.
- Modules use the data from specified data sources.
- Results of the user interactions are shown on GUI.
Each element of workflow diagram is described in following sections.
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 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.
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:
![]() |
---|
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 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.
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 - 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" |
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.
- Tutorial 1
- More tutorials will be added soon
- Real-time and Historical USGS Streamflow Viewer
- Sensor and Satellite-based Soil Moisture Visualization
- Satellite-based Soil Moisture Assimilation in Hydrologic Model
- Hydrologic Model Streamflow Forecasts Visualization