I had the crazy idea last night that I should bundle Ethan the Dog into the bicycle trailer and ride out to the Dog Fun Park near the Queen Elizabeth Hospital so that he could get some exercise. This despite Ethan the Dog never having been in the bicycle trailer before, despite the 26ºC temperature, despite the Dog Fun Park seeming impossibly far from our house, and despite there being a chance that the Dog Fun Park wouldn’t actually be open, as it’s undergoing expansion.
Surprisingly, given all of this, it all went relatively smoothly. I did discover that a bicycle trailer is not a naturally comfortable place for dogs, at least on the first ride, so Ethan was a little ornery. Fortunately I was able to strap him in with his car seatbelt, so there was no danger of him leaping out of the trailer to chase a squirrel; he did, however, manage to nose his way through the mesh cover on the front of the trailer.
The highlight of the trip, for me at least, was discovering that it’s possible to cycle almost the entire distance from Joe Ghiz Park to the Dog Fun Park on a paved cycle trail that runs up Riverside Drive and then around the Queen Elizabeth Hospital along the Hillsborough River. The City of Charlottetown has a brochure that describes both trails:
11. Riverside Drive Path Distance 1.5 KM
The asphalt path begins at Park Street and runs along Riverside Drive and ends at Murchison Lane.
12. Hillsborough River Path Distance 1.2 KM
This asphalt path begins at the corner of Riverside Drive and Murchison Lane, and runs along the Hillsborough River, ending at Hillsborough Hospital.
I’d known about these two paths from many trips out to the hospital and to the dog park, but this was my first timing seeing them up close, so I turned on Google Fit for the cycle ride home and it made me a nice map of the route:
Google Fit has the distance from Dog Fun Park to home at 4.89 km, making the round trip 9.78 km. So, not “impossibly far,” but still longer than I’ve cycled in a long time.
Looking at OpenStreetMap this morning I discovered the both the path along Riverside Drive and the path along the Hillsborough River were missing; this is likely because they’re both difficult to make out from satellite imagery. I remembered that Google Takeout should allow me to export my ride from last night, which I should then be able to import as a trace into OpenStreetMap and use as a basis for adding the paths.
Sure enough, I found an option to export my Google Fit data in Takeout:
I choose “Include all Fit data” and, a couple of minutes later, I had an 8 MB ZIP file with every single data point from Google Fit I’ve accumulated since I installed it in 2015. In the “Activities” folder inside the ZIP file was a file named 2018-07-09T18_43_53-04_00_PT35M3S_Cycling.tcx that contain the log of my cycle trip back from the dog park. The “.tcx” file extension is a Garmin-originated file format called Training Center XML that’s like GPX, but formatted to represent activities rather than just points. Here’s how it starts out:
<?xml version="1.0" encoding="UTF-8"?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2" xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1" xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Activities> <Activity Sport="Biking"> <Id>2018-07-09T22:43:53.636Z</Id> <Notes>Biking</Notes> <Lap StartTime="2018-07-09T22:43:53.636Z"> <Track> <Trackpoint> <DistanceMeters>0.0</DistanceMeters> <Time>2018-07-09T22:43:53.636Z</Time> </Trackpoint> <Trackpoint> <DistanceMeters>29.938282012939453</DistanceMeters> <Time>2018-07-09T22:43:54.000Z</Time> <Position> <LatitudeDegrees>46.26018524169922</LatitudeDegrees> <LongitudeDegrees>-63.097129821777344</LongitudeDegrees> </Position> <AltitudeMeters>-6.199999809265137</AltitudeMeters> </Trackpoint>
That first “Trackpoint” is the Dog Fun Park, and it continues with Trackpoints all the way home.
OpenStreetMap won’t read TCX files, but it will read GPX files, and GPSBabel will helpfully convert from one to the other:
The result of the conversion was a file cyclepath.gpx, ready for import into OpenStreetMap.
From the OpenStreetMap Upload GPS Trace page, I uploaded the GPX file:
After a few minutes for processing, OpenStreetMap had the trace ready for use.
The Riverside Drive Path turned out to be easy to trace from satellite imagery, so I did that first, creating lines for parts of the path and for the crosswalks along the way, and adding them all to an OpenStreetMap Relation called Riverside Drive Path.
For the Hillsborough River Path, which is obscured by the tree canopy, I turned on the GPS Traces layer in the OpenStreetMap editor, and my cycle route appeared as a green line on the map:
Once I started adding the cycle path I realized that there are actually two paths involved in the journey from the corner out to the dog park: along the river to Hillsborough Hospital is the Hillsborough River Path, but once you turn inland it becomes the Hillsborough Park Path, which the city describes as:
13. Hillsborough Park Path Distance 0.8 KM
This asphalt path connects to Hillsborough River Path and runs along Murchison Lane and turns left and runs along Patterson Drive, ending at Pioneer Avenue.
So I started by adding a new OSM Relation called Hillsborough Park Path, and added all the lines and crosswalks to the relation. I then created a Hillsborough River Path relation, and combined some existing lines near the hospital with new lines over my GPS traces, and some new crosswalks.
With all of this in place, all three paths appear not only on OpenStreetMap itself, but on derivative works like Waymarked Trails, where you can now see all three:
I’m happy that our night’s outing not only resulted in exercise for me, exercise for Ethan, but also some new open data for the community to profit from.