We’ve conducted some initial analysis of our data from last Friday (more here). Our goal was to be able to better visualize our sample data along the stream corridor. As a geographer, I turn to a map as my first impulse, but in this case, it’s certainly not the only way of viewing our data. In particular, we were interested in comparing the values from each of our units and better visualizing trends on our metrics along the stream corridor.
So, from our magic GIS hat, we pulled out some dynamic segmentation tools to “linearize” the data we’ve collected. Put simply, we moved each data point to a stream center line as defined by USGS’s National Hydrography Dataset (NHD) yielding a distance along the stream. We could then plot our metrics, e.g. dissolved oxygen, versus distance along the stream in a conventional scatterplot allowing us to compare our two sample units and samples through time.
Here’s a visualization of the linearization of our data:
In ArcGIS, each data point (in red) was moved to the NHD stream center line (points in blue) if it was within 100 meters of the center line. In addition, each new blue point was given a distance along the stream stretch.
As of yet, these data are unfiltered. We haven’t removed known extraneous and/or invalid readings.
First, data from the Kinnickinnic
(which can be compared to the map here)
Note that the blip in temperature is due to Unit #2’s temperature element being removed from the water for a time. Temperature is almost the same for both units.
Dissolved oxygen is also very similar (thankfully, after quite a struggle) between the two units. The mess to the left in the graph is explained below.
Electrical conductivity also shows close correspondence between the two units except with fairly high values. We use a two point calibration at 84 uS and 1,413 uS, so this divergence outside the calibration range is not all that surprising.
Our pH values, while still exhibiting similar trends, show the greatest discrepancy between the two units that, disconcertingly, varies throughout the sample. We’ll be revisiting our calibration procedure for the pH probe to make sure we’re consistent with each unit.
For the Menomonee River
For the Menomonee, our units again performed similarly, with all but pH matching fairly closely.
Why the jagged or seemingly noisy segments? This is due to including both the paddle out and back along each segment on the same graph. So, for dissolved oxygen on the Menomonee for example, Unit #3 (in orange) returned significantly different values on the way out as compared to the way back in the 6,200 to 6,700 meter range. Mike, paddling Unit #3, took a different path on the way back in this segment and there appears to have been a significant cross-sectional change in the DO across the stream profile. Since we’re linearizing and combining both in- and out-paddles, our line graph bounces back and forth across these values.
Obviously, we still have a lot of explaining to do for each of these trends. We’ll leave that for another post for now.
Mike, Karl, and I had our first big day with the water quality arrays. With everything working fairly smoothly, we headed to Milwaukee for a long day of kayaking. Our goal was to paddle up and down the Kinnickinnic, the Menominee, and Milwaukee Rivers starting from the Milwaukee County boat ramp at River Front (at the east side of the Kinnickinnic and Milwaukee confluence). We were hoping to see differences between the freshwater estuary areas of the lower river reaches to the more stream-dominated upper sections.
Starting around 10am, we paddled all day (mostly into a stiff wind) to cover almost all the ground we were hoping to. We stopped around 6pm after one of Mike’s arms fell off (well, nearly) and around 14 miles of paddling. Both Mike and Karl had units on their boats running all the time, so any stretch of water was sampled four times — a good opportunity to see how our units compared with themselves and each other.
Here’s a look at the raw data from our units starting with dissolved oxygen (DO). Click on the Legend and Layers icons in the upper right to view the legend and to switch between temperature, pH, dissolved oxygen, and electrical conductivity (I’d suggest using the link to full screen map to explore the data in detail). Also, once you’re zoomed in, you can click on any point for detailed sample information.
(Note that the map refreshes itself every minute — this is for when we’re collecting data in real time.)
The map shows considerable variability for most of the metrics we measured. The most significant changes — seen best in the temperature layer — is from the lake-influenced section of each “river” (colder water) to the stream-influenced section of each (warmer water). We were somewhat surprised, though, in how smooth this transition was, particularly in the greater surface flow from the Milwaukee and Menominee Rivers.
The second noticeable change was the increase in electrical conductivity (EC) as we moved upstream. Both the Kinnickinnic and Menominee Rivers showed increases in EC as we moved into surface-dominated waters (particularly when the river current was noticeable) indicating high amounts of dissolved solids in this largely urban watershed (more info at Milwaukee Riverkeepers and SEWRPC) (likely salts from roadways, runoff from Mitchell Field, nutrients from urban yards, and industrial waste water). The Kinnickinnic, in particular, had a region of very poor water quality with high EC values and very low DO (lowest reading of 0.97 mg/L!).
We also were very pleased with the consistency of the measurements we were getting from each unit. They both matched fairly well at initial glance with a couple of discrepancies along a couple stream reaches. We also encountered problems with our server as we paddled the Kinnickinnic, so there are a few gaps in this sample stretch (which is recorded on backup files on the phones that we haven’t retrieved yet).
Stay tuned — we have additional analysis planned to explorer values from both units and other ways of visualizing trends.
By Jacob Strohm
On 24, Jul 2015 | In Mapping Solutions | By Jacob Strohm
My project for this summer is to help the Department of Public Works in Elkhorn, Wisconsin update their maps for the city’s sanitary sewer system. The goal is to produce interactive web maps that illustrate the sewer network and display both manholes and gravity mains.
To create these maps, first we must collect GPS data on the location of all the sanitary sewer manholes in Elkhorn. Myself and a Public Works employee go out four days a week with a Trimble GPS unit mounted on a range pole, and we collect point data on the location of the manholes. We record attributes such as depth to the bottom of the manhole, and the direction of the inlet and outlet pipes. Hopefully this will allow us to create a 3D model of the sewer system. We want the city workers to be able to predict where sewer blockages might occur based on the slopes of the gravity mains. If they aren’t steep enough, the city will know where to reconstruct the sewer lines.
Once a week I spend a day in the lab putting the data into the computer and adding it to a preliminary map. I differentially correct the data, export it into shapefiles, and plot it in ArcMap. I then check to make sure the attributes have been correctly recorded, and begin to create the lines for the gravity mains between the manholes. We do not collect the information on the sewer lines out in the field, so I draw them myself in ArcMap.
In the end, several different maps will be created showing different attributes such as pipe diameters and flow direction. We hope to give the Department of Public Works the ability to edit information about the sewers on smartphones in the field as well. With the precise location of each manhole on the map, there will be no more guessing as to where manholes are if they must be quickly accessed in an emergency. Many of the manholes have been hard to find as they are sometimes buried or hidden in tall grass. We learned just how beneficial this GPS project will be when we got a call to check a sewer for a backup, but a manhole we needed to get into was buried. The only map we had was outdated, and it took nearly half an hour to find the manhole. With the new interactive maps, this should never happen again.
It is exciting to be part of this project, as Elkhorn doesn’t have extensive records of all its infrastructure. Being one of the first people to assist in modernizing the city’s maps is rewarding, and working with the Public Works team makes it an enjoyable experience.
With the rebuilt arrays, time for more in-depth testing… Again, I’m growing more dubious of the claims of Atlas Scientific and how easy it is to obtain high-quality metrics from their probes.
For this test, I was interested in seeing the influence of each probe on the other in the same body of water. In other words, does one probe change the value of another when they’re near each other in the water? With our kayak mount, we can place probes on either side of the boat and wanted to know the optimal configuration.
- Arduino Nano connected to I2C board with pH and DO, EC through PWR-ISO, and Bluetooth (HC-06). Ground wire bridge between PGND on pH and DO (as per Atlas-Scientific instructions)
- All probes EZO version in I2C mode
- Bluetooth in connected mode with phone app
- All probes callibrated via Altas-Scientific methods. 3 point for pH (4,7,10), 1 point for DO (100%), 2 point for EC (dry and 84uS)
- Three buckets of equal amounts of tap water (~3.5 gallons) drawn from tap at same time and let setting for two hours
- Calibrate probes immediately before test
- Place each probe in separate buckets to start.
- Record values for 5 minute with each of the following combinations (isolated, in pairs, all three):
Table of testing probe combinations (number of sample bucket probe placed in)
Graph of results
(click on image for full version)
It’s clear that we are getting interference from some of the probes. In particular, the pH and DO probes influence one another. When they’re both first added to the same vessel, their values are thrown off by a considerable amount for several readings and then both stabilize. The DO readings are close to initial readings (off by ~0.5) after 2-3 minutes; however, the pH values stay considerably lower (by ~1.25).
And, somewhat as expected, the DO probe also appears to be influence by moving it from one vessel to the next (so, it does matter which probe is moved to another vessel). As it’s exposed to the air, it rises approximate half a point and then gradually declines to its previous value. Note that this effect alters values for almost the whole 5 minute sample period.
I did some additional ad-hoc testing of the each probe moving through the water. Only the DO probe shows any noticeable changes in values, and it’s showing about a 1 mg/l increase if any air bubbles are present when moving.
- pH and DO can’t operate near each other — they’ll go on opposite sides of the boat. The connected grounds suggested by AS didn’t eliminate the interaction.
- The isolated EC didn’t appear to influence any other probe. I assume this is due to the power isolator, but this hasn’t been explicitly tested.
- All three probes can’t work near each other — need to separate
- DO needs to stay underwater — any surfacing can influence quite a few readings
- temperature doesn’t appear to influence any of the other probe’s values
We’ll go with DO and temperature on one side of the boat and pH and EC on the other.
In trying to get our two units to agree, we noticed that the DS18S20 temperature probes seem to be off 0.5 to 0.75 C from one another. Given that all probes use temperature compensation (and the dissolved oxygen uses it for calibration), this slight difference could be exacerbating any differences we were noticing.
So, we placed both temperature sensors in a cooler of ice water to generate a manual, one-point temperature compensation for each of our units. For each unit, we let the probe sit in ice water for at least 5 minutes and then took five consecutive readings one minute apart from one another.
Unit #2: -0.19, -0.19, -0.19, -0.25, -0.25 => -0.214 average
Unit #3: 0.00, 0.00, 0.00, 0.00, 0.00 => 0.0 average
Finally, I modified the Arduino code that runs on Unit #2 to add 0.2 C to each of its temperature measurements to handle this discrepancy.
After the data quality issue with the first array design, I contacted Atlas Scientific (AS) about our problems. Jordan at AS suggested that we make two changes: 1) connect the probe grounds on both the dissolved oxygen and pH probes, and 2) isolate the electrical conductivity probe from the rest of the probe using their power isolator. Since neither of these changes are documented on their website or support materials, I was frankly growing a bit concerned about the claims made on AS’s website — was this really our problem?
- One of our probe arrays was a year old; the DO probe was showing some non-linearity in its readings
- The probes electronics were interactions with one another on the microcontroller board
- The probes were interacting with one another in the water (very likely with the EC probe)
- The power draw from the bluetooth device was interacting with one or more of the probe’s electronics
We addressed issue one by using a third set of probes that were still in the box (purchased within a month of array #2) and retired array #1 for now. For two and three, we followed the suggestions of AS above. In addition, we switched from the 3.3v Teensy 3.1 microcontroller to the 5v Arduino Nano. Jordan at AS has expressed some concern that the probes kits may be underpowered at 3.3v and the power isolator would only work at 5v. Effectively, we rebuilt the array from scratch:
As for issue #4, preliminary testing is showing that whether the Bluetooth is in “discovery” mode (light flashing, higher power draw) or connected impacts the EC value but not the other measurements. In “discovery” mode, the EC value is approximately 0.5 uS lower than when the device is either connected or unplugged (why? common ground? power drop?). This seems to indicated that the connected mode is similar to not having a bluetooth device is likely to have minimal impact on the EC values. It does indicate, though, that calibration should only be conducted with the bluetooth unplugged or connected to the phone app.
The goal of our project is to analyze the change in water quality across different economic areas. We will be focusing primarily on income and population density when determining our study areas; selecting 24 stream segments inside of Milwaukee, Waukesha and Jefferson counties in Southeastern Wisconsin.
We are going to be working with the Rock River Coalition to come up with a new and innovative way to collect water quality data. Currently, data is collected as point samples on the shore of rivers, these points are generally separated by great distances and there is no way to tell if the quality of the water changes between these points. Our technique involves mounting sensor arrays on the front of our kayaks and paddling down the center of the river, collecting data points every 10 to 20 seconds. This will give us a plethora of data points, which will make it easier to see how water quality changes over short and large distances.
The metrics that we will be analyzing will include, dissolved oxygen, electroconductivity, pH, and temperature. Those metrics will be analyzed in “real-time” with the sensor array that is attached to the kayaks. We will also be taking phosphorus readings (1 per stream segment) as a point sample.
We hope that this project will not only tell us how water quality changes over the different economic areas, but also provide a new way to collect more extensive data.
Well, we’ve encountered our first big hurdle with our water quality mapping. We’ve been so focused on getting the technology connections to work (Arduino -> Phone app -> Server) and getting our kayak mount system to work, that we’ve neglected data quality a bit. We’ve been operating on the assumption that we don’t have any electronic inference issues in our device and that the accuracy specs from Atlas Scientific are true.
We found out that we’ve got a problem somewhere.
Before heading out to the Milwaukee River, our first “big” sampling destination, we headed up to the Burnt Village put-in on Highway N on the Bark River with both boats and a borrowed YSI probe to compare our numbers to. With everything mounted on the kayaks, we all got in the water and started comparing numbers. Our first disappointment was that the Atlas Scientific arrays didn’t match the YSI values at all — not even close. And, even more disappointing, the Atlas Scientific arrays didn’t match each other — even after having been calibrated using the same techniques and same solutions earlier that day.
Time to hit the drawing board…
By Scott Mueller
On 17, Dec 2014 | In Mapping Solutions | By Scott Mueller
Recently, I was given the opportunity to travel to Wichita, Kansas and be interviewed for GIS Analyst position with Enertech. Enertech assists natural gas and oil distribution and transmission companies to build public awareness programs for their areas of operations. This small but growing company uses GIS and spatial analysis to build their programs and identify residents of the areas and to gather knowledge of the pipelines surrounding areas.
I flew out of Milwaukee, to Chicago, and onto Wichita on a Sunday. After landing, the President of Enertech, Mark Allen, picked me up at the airport and we sat down for dinner, talked football and the city of Wichita. It was a nice relaxing conversation that took my nerves off the big day ahead. After dinner, I was dropped off at the Hotel in downtown Wichita and relaxed and waited for tomorrow morning for the interview.
Monday morning, I was picked up from the hotel by the Vice President of Enertech, Lisa, and driven to the Enertech office. Here I got to meet all the people that make up the Enertech team and have a brief conversation with all of them before the real interview started. For the interview, Lisa, Mark, and the four GIS people of Enertech sat around a table and discussed my history and skills with GIS and how I could contribute to the team. I was asked questions about my problem solving abilities, data management skills, and spatial analysis background. The team seemed delighted to be able to browse through my portfolio and see a collection of my best works throughout my time at UW-Whitewater.
The interview ended with an hour long test of on a computer, using ArcGIS. Though I was nervous to start the test, my experience working with GIS here at UW-Whitewater had me more than prepared.
As my time and interview in Wichita came to a close, we took a short trip to the new Enertech office that was currently under construction. This new location will be a great place. with more room to move and breath, where the company can continue to expand and grow. We ended the day with dinner with the Mark, Lisa, and the GIS team and a quick tour around Wichita. This is similar to how mobile casinos and online casino sites works as explained in this website.
I am grateful to be given the chance to see and experience Wichita for a day, and to meet all the people that make up Enertech, a place that I hope I can help expand and grow. Enertech seems like a great company that would fit my personality and be a wonderful location to begin my GIS career and life outside of Whitewater.
We continue to hone our drone flying and mission skills. At our test/training site, we’ve successfully flown a mission with a complete set of imagery along with sufficient ground control to georeference and rectify the imagery. Thanks to Craig Schreiner, UWW campus photographer, for coming out for the afternoon and taking such great photos. This teaching method works how online trading works where brokers are able to learn to trade online as explained here.