Panorama

What I Did

I attached a riffle-ito to my kayak and paddled around the Androscoggin River. I also had an Arduino Uno with a GPS Shield logging my location.

Here’s what the set up looked like:

Kayak Setup

To keep the enclosure submerged, I tied a bag of rocks to it.

Rocks

Here is a video showing some highlights from the deployment.

Note: This is an Rmarkdown document. The data files and source code used to generate this document all the figures are available in the github repo.

Results

GPS Data

Here’s what the GPS data looks like:

head(gps)
##           DATETIME_UTC FIX FIX_QUALITY LATITUDE LONGITUDE SPEED ANGLE
## 1 2014-8-7 22:6:17.984   1           1    43.92    -69.96  0.15   0.0
## 2 2014-8-7 22:6:20.953   1           1    43.92    -69.96  1.01 348.1
## 3   2014-8-7 22:6:24.0   1           1    43.92    -69.96  0.34 346.2
## 4   2014-8-7 22:6:27.0   1           1    43.92    -69.96  0.16 346.2
## 5   2014-8-7 22:6:30.0   1           1    43.92    -69.96  0.12 346.2
## 6 2014-8-7 22:6:32.984   1           1    43.92    -69.96  0.08 346.2
##   ALTITUDE NUM_SATELLITES            DATETIME
## 1     11.3             10 2014-08-07 18:06:17
## 2      3.3             10 2014-08-07 18:06:20
## 3      2.7              9 2014-08-07 18:06:24
## 4      2.9             11 2014-08-07 18:06:27
## 5      2.9             11 2014-08-07 18:06:30
## 6      2.3             11 2014-08-07 18:06:32

This map shows the locations recorded by the GPS:

plot of chunk map_path

Riffle-ito Data

Here’s what the riffle-tio data look like.

head(riffle)
##              DATETIME RTC_TEMP_C TEMP_C BATTERY_LEVEL
## 1 2014-08-07 17:58:59      23.25  24.16           706
## 2 2014-08-07 18:00:02      23.25  24.07           706
## 3 2014-08-07 18:01:04      23.25  24.07           706
## 4 2014-08-07 18:02:07      23.25  23.99           706
## 5 2014-08-07 18:03:09      23.00  23.81           706
## 6 2014-08-07 18:04:12      22.75  23.46           706

Here is a timeseries of the riffle-ito temperature. Note the high temperature at the beginning and low temperature at the end are not actually measurements of the water temperature, but rather the air temperature as I moved the riffle from my house to the kayak before setting out, and then back from the kayak to the house after returning.

plot of chunk plot_temp

Merge GPS and Riffle-ito Data

To merge the GPS and Riffle-ito data (which are in separate data tables), I computed the mean location and mean temperature at 1-minute intervals. Then I joined the two tables by the 1-minute rounded timestamps.

The data now look like this:

head(df)
##              DATETIME N.WQ TEMP_C N.GPS LATITUDE LONGITUDE
## 1 2014-08-07 18:06:00    1  23.03     4    43.92    -69.96
## 2 2014-08-07 18:07:00    1  22.94    20    43.92    -69.96
## 3 2014-08-07 18:08:00    1  22.59    20    43.92    -69.96
## 4 2014-08-07 18:09:00    1  21.81    20    43.92    -69.96
## 5 2014-08-07 18:10:00    1  22.42    20    43.92    -69.96
## 6 2014-08-07 18:11:00   NA     NA    21    43.92    -69.96

Temperature Map

This map shows the track with points colored by temperature. The data are filtered to only show values when the sensor was in the water.

plot of chunk map_temp

Outfall

I expected to see a change around the Brunswick Water Treatment Plant outfall. The following map zooms into this location (you can see the treatment plant in the lower left).

plot of chunk map_outfall

Here is a photo of the outfall.

Outfall

Unfortunately, I didn’t see much difference. The outfall temperature is probably similar to the water temperature at this time of year. However, the lowest temperature point (the green point) is located right next to the outfall.

Return Trip Temperature

You can however see how the temperature dropped on the return trip, which was close to sunset and thus probably reflects the cooling air temperature. This figure shows the temperature values, with the shapes of the symbols indicating whether the point was collected as I was heading out to the outfall or heading back to the house.

plot of chunk map_temp_return

And this compares the same values as a timeseries. I’m not sure what caused the blips in this figure.

plot of chunk plot_temp_ts

Conclusions