For as long as I have been working with water data, I wanted to construct a line graph superimposed on a box and whisker plot where the boxes show the distribution of values and the line shows some current condition.  One of my favorite things about ggplot2 is that it allows users to construct complex combinations of graphs in ways that make sense.

This plot shows daily mean flow values in the Schuylkill River (the blue line) against box plots of the rolling 20-year set of daily mean values.  In this instance, flows in the lower part of the river are higher than the 75th percentile flow value, while flows in the upper part of the river are within the interquartile range.  Each point (and box plot) represents data from a USGS gage retrieved using the dataRetrieval library.  The vertical step increases in the blue line are inputs from tributary gages.  This particular image was developed as part of an automated dashboard hosted by the Delaware River Basin Commission.  R scripts, run in batch mode, are called by Windows Task Scheduler.  The scripts run overnight every night to retrieve data, develop new graphs, and upload the graphs to the dashboard web page providing a near real-time visualization of river conditions.
4

View comments

  1. This graph is great! I would really like to see the code for this. Our team has been doing similar types of analyses on tributaries to drinking water reservoirs in Illinois

    ReplyDelete
  2. This is nice, it would be great if you could share code openly as repository or snippet. The Delaware River Basin site doesn't provide code either.

    ReplyDelete
  3. Send me an e-mail at JYagecic@gmail.com My preference is to share code via some sort of collaborative project if possible

    ReplyDelete

Modern unmanned aircraft systems (UAS), better known to the rest of us as drones or quadcopters, can be programmed to collect photos from specific coordinates, altitude, orientation, and gimbal angle, thus allowing photos on different days from the same perspective.  The two photos above were taken less than 24-hours apart during normal and flood conditions on the Neshaminy Creek in Bucks County, Pennsylvania.  In addition to reproducible perspective, drones can reach areas inaccessible during bad conditions.  On day one, I was able to park in the lot shown in the top photo.  On day two, I had to park several hundred feet away, but was still able to navigate the drone to the same location.

Here's an animated plot of the % of dissolved oxygen saturation in the Delaware Estuary throughout 2022.  All data is from USGS processed to compute the % of saturation and make the animation.

Another seiche occurred on Lake Erie December 23-25, 2022.  Here is an animated plot using the NOAA PORTS data.

Strong winds caused substantial water surface elevation differences in Lake Erie around November 15, 2020.  Here's an animated plot of elevations measured by NOAA.
2

Here's a time lapse I made of the Delaware River near Philadelphia.  At this location the Delaware is tidal and the water surface elevation changes throughout the day.  Lots of legacy submerged man-made structure here revealed at low tide.  The silver cylinder near the middle is a staff gauge with 1-foot markings for reference.

Animated plot of #Schuylkill River flooding following Tropical Storm #Isaias Data from USGS gages.

Revisiting the river flow profile plot from an earlier post, the video below loops each day's flow profile for the Delaware River in 2019.  Data is from USGS gages processed using R and Windows Live Movie Maker.

Our second fish tank experiment with the Flir One was to insert a foam rubber divider and fill each half of the tank with hot and cold water.  We removed the divider, and watched with the Flir as the hot water moved to the left across the top and the denser cold water moved to the right across the bottom.
1

My son and I played around with an old fish tank, some tap water, and a Flir One thermal imaging attachment for a smart phone.  Here is part one.
1

My prior post on animated flow in the Delaware River contained the last work I performed on my previous lap top just before it gave up the ghost.  When a colleague asked me to share it, I was distressed to realize that the script was lost.  I decided to recreate the script from scratch and to fix one the limitations of the older version by making it easily transportable to other river systems.  Specifically, all the USGS gage numbers, drainage areas, and river miles are contained in a .csv file.
1
My Blog List
My Blog List
Subscribe
Subscribe
Blog Archive
About Me
About Me
I am an engineer working in water resources and the environmental field. On the side, I work with small businesses to help automate their data processing functions. I offer reasonable rates and am very efficient. Send me an e-mail at JYagecic@gmail.com
Loading
Copyright 2016. Dynamic Views theme. Powered by Blogger. Report Abuse.