• The GeoNet Visualization application is an easy-to-use and interactive web application. It is an R Shiny app hosted on the Syracuse University Research Computing Clusters. It is designed to automatically detect statistically significant changes in surface water chemistry in stream networks. These detected changes in water chemistry can be related to anthropogenic pollution events.

How the GeoNet Visualization app works

  • The GeoNet Visualization Shiny app has a top panel to select the analyte from Chloride and Specific Conductance. The default value is “Chloride”.
  • Below the analyte selector, the user can also change parameters to define to what spatiotemporal extent the GeoNet Visualization app should search water quality samples to be included in the statistical inference. The distances are specified in km. The selected water sampling locations are shown as green and red discs on the interactive map.
    1. Pollution Site to Flowline Intersection Nodes (NOT IN USE YET): The lower bound is pre-set to 0 km which means the app would always take into account all intersection nodes (of stream flowlines) that are closest to the spill upstream. The upper bound is pre-set to the maximum value of 50 km. This value could be changed by the user to consider intersection nodes only up to a certain flow distance less than 50 km.
    2. Upstream/Unaffected: The lower bound is pre-set to 0 km which means the app would always take into account water quality data that are closest to the considered intersection nodes. The upper bound is pre-set to the maximum value of 10 km. This value could be changed by the user to consider water quality data only up to a certain flow distance from considered intersection nodes less than 10 km.
    3. Downstream: In this case, the app allows to change both the lower and upper bounds. These are pre-set to 0 km and 10 km. This covers all water quality samples closest to the spill downstream up to a certain flow distance from the spill location less than 50 km.
    4. Sampling Date Range: In this case, the app allows users to define the date range of upstream and downstream samples to be considered in the statistical inference.
  • The Shiny app has also a side panel allowing the user to customize a few more GeoNet parameters to facilitate their searches
    1. Location parameters: These parameters allow the app to search for the spill nearest to the user-provided location in Pennsylvania. The located spill is plotted as a black disc on the interactive map.
      1. Choosing the longitude: The longitude can be entered in degrees. It ranges from -80.6 to -74.6.
      2. Choosing the latitude: The latitude can be entered in degrees. It ranges from 39.6 to 42.8.
    2. River overlay: This parameter corresponds to the distance from the spill up to which the river stream network must be plotted. The distance is again specified in km. Overlaying the stream network is time expensive and hence the pre-set is set to a small value of 10km. The maximum value possible is 50km. Note that for larger distances, it may take considerably more time to load the interactive map.
    3. Choose the Date: This parameter allows the user to search for the nearest spill temporally. Note that this temporal search takes place over the spills that are already spatially closest to the location parameters chosen in the first step.
    4. Choose zoom level: This parameter allows the user to zoom in over the interactive map. The pre-set value is 11 and it ranges from 6 to 14. The user can also set the zoom level by clicking over the “+” and “-” located over the top left of the interactive map.
  • Besides this, the user can observe the density plot by clicking over the density plot tab in the main window. This can give an idea of the relative differences in the distribution of concentration values upstream versus downstream.


  • GeoNet Visualization Shiny App Author: Rohit Patil, Amal Agarwal, Susan Brantley, Lingzhou Xue, Tao Wen
  • Libraries Used: shiny, shinydashboard, leaflet, plotly, network, igraph, mapdata, intergraph, sna, maps, GGally, MASS, foreach, doParallel, data.table, RcppArmadillo
  • Pennsylvania Surface Water Water Quality Data: Compiled from the Water Quality Portal (https://www.waterqualitydata.us/) by Alison Herman, Tao Wen, and Xianzeng Niu
  • Pennsylvania Stream Flowlines: Downloaded from the Pennsylvania Spatial Data Access (https://www.pasda.psu.edu/)
  • Computing Resources: Syracuse University Research Computing (https://researchcomputing.syr.edu)
  • Hosted by: Syracuse University Research Computing Clusters

External Links

  • GeoNet Source Codes: https://github.com/HANDS-Research-Group/GeoNet_2021
  • Contact Us: Tao Wen, Assistant Professor at Syracuse University (https://jaywen.com/)

Guided tutorial to explore GeoNet through Pine Creek example

  • As a demo example, the default values for location and date parameters are pre-set to observe the spill event in Pine Creek at Lycoming County that occurred on Jan 6, 2012.
    1. Click the black disc in the center and note the average of concentration values downstream (~9.3ppm) is significantly higher than upstream (~6.5ppm). This is also reflected in the one-sided t-test and Wilcoxon test p values. Both are 0 (less than the significance level of 0.05) indicating that both mean and median concentrations are statistically significantly higher downstream compared to upstream.
    2. Click over one of the water quality sampling locations represented by the green and red disc. Can you observe the location of the sampling location in the form of longitude and latitude coordinates and average of the concentration values over time?
    3. Click the density plot tab and observe that the concentration value peak is significantly shifted towards larger values for downstream compared to upstream. What do you conclude from this plot? (Hint: This plot matches the conclusion from step 1)
    4. Change the upper bound of downstream threshold flow distance from 10 km to 50 km. Repeat steps 1-3 and document your observations and conclusions. Note the change in average concentration values between comparing upstream vs downstream close (0-10km) and upstream vs. downstream far (0-50km).
    5. Zoom out by setting the zoom level to 10. Set the river overlay to 30 km. Now move the map so that downstream sampling locations are roughly around the center. Zoom in back to level 11 and click over each of these green and red discs. How does the concentration (averaged over time) vary as you observe different sampling locations?
    6. Change the analyte to Specific Conductance and repeat steps 1-5. What do you observe? How do you compare these results with Chloride?

Tabular Summary

Detect Reported Spill Events in Pennsylvania Stream Network

Set the Threshold Flow Distances and Sampling Date Range

Threshold Flow Distances in km
Sampling Date Range