Create Topographical Maps of Water Depths with This Unique Project
This 3D water depth logger uses a few simple components that take continuous measurements for creating color-coded maps.
Creating water-depth maps
As anyone who has seen a boat would have probably observed, their hulls sit below the waterline, thus displacing water and creating a buoyant force. However, this can lead to issues in shallower water since the boat could get stuck on a hidden shelf or area of sediment buildup. To solve this problem, governments and harbor owners will often employ imaging devices that use sensors to determine the depth of the water at various points, thus creating a map to aid ships. Jan Neumann (who goes by Neumi on GitHub) was able to build a DIY version for much less than the usual cost.
The hardware
At the center of the device is an Arduino Uno, which is connected to a GPS module and a standard NMEA-capable echolot sounder that uses the reflection of sound waves to measure the depth from the boat to the bottom of the harbor. Every second, the Uno writes a line within a CSV file that contains the current position of the device and the depth level measured by the echolot sounder. Additionally, tidal data is gathered every second from a Wasser&Schiffahrsamt water level meter to calibrate for both high and low tides.
Post-processing and graphing
Once all of the data had been gathered across the 40,000 square-meter harbor, Neumann ran it through a series of two Python scripts. The first checks if the data in a given row is valid and fills it in if it's not. The depth data is also adjusted based on the values from the water level meter to account for the tide. The second script places points around a matplotlib graph and uses an interpolation algorithm to generate the smooth gradients. Finally, the actual spots where readings were taken were graphed as well.
Results
The resulting image is a great water depth map that shows how shallow the harbor is towards the land and gets deeper near the entrance. The legend even has a color-coded key for quickly distinguishing between varying depths.