River Navigation

charts and gps directly

we have a set of really nice charts which allow us to use our gps unit directly (as in, by looking at it's screen) and plotting our position. I still think we should have a cache of the satellite images, but it is less crucial.

Google Earth


I think google earth is a convenient tool for our main navigation. Combined with a navigational map which will show us the depth of the river and the location of the channel in various places along the river, we should have everything we need.

The advantage of satellite navigation is that we can, at a glance, correlate our position on the map with our physical location. Also, satellite maps are really easy to read and show an amazing amount of detail that might be missing from conventional maps, such as the location of shoals and maybe even wing dams. I couldn't find any easily available navigation software for Linux, so we might have to rely on paper charts for wing dam and stump forest field locations. Maybe we stop being elitist and try using Windows FOR THE LOVE OF GOD.


The good thing is that a google-earth based gps navigation system will cost us $20, which is the privilege you pay for Google Earth Pro, the edition that permits you to connect a GPS unit to google earth.

technical details details

We are going to be using a combination of

  • A thinkpad X60 with copious amounts of hot creamy warranty, owned by one Steven Lucy, running Linux (see Power Requirements)
  • a Garmin GPSmap 60CSx GPS unit, running on two AA batteries but which draws power from the USB port of the laptop.

gps to kml file

After connecting the GPS unit to the computer, it does not come up as a known gps device. in fact, the garmin_gps module will provide some details about the device, but I could not get garmin_gps and gpsd to work together. more research is forthcoming...

in the meantime, the gpsbabel software seems to do pretty well at communicating with the GPS unit. the following command:

gpsbabel -T -i garmin -f usb: -o kml -F gps.kml
will create the gps.kml KML file, which is a human-readable xml file regularly updated with position information. that file is a bit inefficient, since it just keeps growing as more positions are logged, so some rotation will have to be done to keep its inefficient XML goodness from getting out of control.

Google earth

google earth has a realtime gps option which will read the kml file and plot our progress. i haven't tested this since it requires the $20 subscription to google earth pro, but i'll probably do it soon.

we will not have access to a high-speed internet connection on the raft, so we will need to cache the satellite image data ahead of time by following the entire course of our navigation through google earth.

there are a few ways to do this. one, which is yet to be tested, is using a squid cache. some hacks are necessary to properly cache keyhole data:


and it may not work properly.

a sure-fire way to to use the built-in caching mechanism in google earth. this is suboptimal since the maximum size for the cache files is 2GB. we would have to rotate cache files manually in order to have access to the right imagery. I suppose it is open source, so I could, you know, edit the cache size.