From [[Guy]] comes a link to The Gapminder World, a tool that lets you create custom “world development” graphs. You have to use it to get a real sense of what a wonderful tool it is.

My friend [[Oliver Baker]] reminds me that today, July 10, 2006, is the 150th anniversary of the birth of Nikola Tesla. When my [[Dad]] and I were in Croatia in 2004, I took this photo of him in front of the Tesla monument in the centre of Gospic:

Telsa Monument in Downtown Gospic

Tesla was born in Smiljan, which is about as far west of Gospic as my grandfather’s birthplace of Konjsko Brdo is north. Indeed my great-grandfather Stipe, born in 1867, was 11 years younger than Tesla, and given that Tesla returned to Gospic in 1879 when my great-grandfather was 12 and Tesla was 23, it is possible to entertain delusions that they met on market day and Tesla got the scoop on the whole electricity thing direct from a Rukavina.

Is it any coincidence that Niagara Falls, where Tesla invented hydro generation, is less than 20 km from St. Catharines where my grandfather lived in the 1940s when Tesla was near death — somebody had to continue his work!

Tonight’s project: walk around the block and take some photos with my [[Nokia N70]] while my [[GPSlim 236 Bluetooth GPS]] was logging my location every 5 seconds. Then use open source tools to take the time and location information from the GPS traces and merge it with the time information from the photos to automatically stamp the location of each photo into its [[EXIF]] data.

I fired up the GPSlim and started the nmea_info application on the phone to start logging my location. I headed out the front door of my office, along Fitzroy St. to Queen St., along Queen to Kent St., along Kent to University Ave., along University to Fitzroy St., and back along Fitzroy St. to the office. The entire trip took 8 minutes.

I ended up with a file on the N70 called nmea_gga_log.txt that I renamed WalkAroundBlock.txt. This is an NMEA-format file with a line for each GPS waypoint (“digital bread crumb”) on my path that looks like this:

$GPGGA,223249.000,4614.1718,N,06307.7965,W,1,07,1.5,24.6,M,-19.3,M,,0000*50

Next, I used GPSBabel to convert this NMEA file to a GPX file — GPX being a common XML format for representing geographic data:

gpsbabel -i nmea,date=20060710 -o gpx \
  -f WalkAroundBlock.txt \
  -F WalkAroundBlock.gpx

I named this new file WalkAroundBlock.gpx and each waypoint in this file looks like this:

<trkpt lat="46.236196667" lon="-63.129941667">
  <ele>24.600000</ele>
  <time>2006-07-10T22:32:49Z</time>
  <fix>3d</fix>
  <sat>7</sat>
  <hdop>1.500000</hdop>
</trkpt>

Loading this track into GPS Visualizer and making a map of it, here’s what I get:

GPS Visualizer Map of my Walk Around the Block

I made the map just to check and make sure that my GPS traces look something like the route I walked. So far, so good. Next, I use the fantastic gpsPhoto.pl Perl script to magically merge the GPX file’s location information into the photos by matching up the times of the photos:

perl gpsPhoto.pl \
  --dir photos/ \
  --gpsfile WalkAroundBlock.gpx 
  --timeoffset 10800

Note that gpsPhoto.pl has some dependencies (they’re clearly indicated on the web page for the script) and I had to futz around for about an hour before running the script getting all the dependencies to build on my OS X machine, the big hold-up being expat, which I had to install with fink which needed updating itself before I could proceed.

One I had everything in place, however, everything went off without a hitch, and gpsPhoto.pl returned a series of successful matches:

photos/20060102824.jpg, 2006:07:10 19:32:20, timediff=29
Lat 46.236196667, Lon -63.129941667 - Bearing: 0 - Altitude: 25m

And so on. Once all was finished — it only took a few seconds — I was able to confirm that the location information had been burned into the JPEG files by opening them up in Graphic Converter and looking at the EXIF date (Window \| Show Information). Here’s what it looks like now:

Graphic Converter Screen Shot showing GPS data in EXIF

With the location data burned into the photos, it was easy to whip up a quick Google Maps photo browser application to let me see the location of the photos on a map:

Google Maps Photo Browser

Note that once I saw the photos on the map, I realized that I hadn’t synced my camera phone’s clock to the GPS clock, meaning that things were out of sync by about 60 seconds; I corrected the problem by running gpsPhoto.pl again, and adding 60 seconds to the time correction:

perl gpsPhoto.pl \
  --dir photos/ \
  --gpsfile WalkAroundBlock.gpx 
  --timeoffset 10860

Things are still a little off, partly because the timing still isn’t perfect, and partly because I’m running the GPS receiver without any sort of DGPS assistance, so the accuracy is not what it could be.

If you watch the josm-rawgpstracks tutorial screencast that you can find here on Imi’s website (or on a mirror), you can learn about a neat JOSM feature: the ability to position photographs geographically based on comparing their timestamp to the GPS logs. Which is a pretty neat way to “geocode” photos.

This isn’t rocket science, of course, and the use in JOSM is primarily for the utility it offers in helping to name ways within JOSM. Next I’m off to look for open source tools that will let me merge my GPS trace information with my photos and end up with EXIF data within the photos themselves that indentifies their location.

I’ve continued my GPS-equipped bicycle rides around Charlottetown for the past couple of weeks, and I’ve continued to pour the data I’ve gathered — my “digital bread crumbs” — into OpenStreetMap.

The process of turning GPS points into lines, and then combining lines into streets has been much easier since I started using JOSM — a standaline Java editor for OpenStreetMap data. The OpenStreetMap browser-based editor has proved quite flaky — it’s slow, and inconsistent with what, if any data it returns; JOSM grabs data from the OSM database, lets you edit it and then allows you to upload it, which works very well. The only thing that JOSM is missing compared to the browser editor is the Landsat satellite imagery under the map; this is so “confusing green and red blob”-like for Charlottetown that it’s of questionable use in any case, so it’s not a big deal.

Here’s the data I’ve gathered for Charlottetown shown in the browser-based editor. The yellow dots are my GPS traces, the white lines are streets I’ve created, and the green segments are lines that have yet to be joined into streets:

OpenStreetMap Browser Applet

Here’s the sub-set of the same data in the standaline JOSM editor. The white specs are GPS traces, the red dots are OpenStreetMap nodes and the blue lines are streets:

JOSM Editor Screen Shot

Finally, here’s what this data looks like on the public OpenStreetMap map (this snapshot is a little out of sync with the edited data) — yellow lines are streets, green segments are “yet to be streets” lines:

OpenStreetMap Viewer

You can see this data for yourself at OpenStreetMap using the map viewer right on the front page.

The process of using and understanding JOSM has been made much easier for me by the helpful JOSM screencasts created by the editor’s author, Imi; no open source project should be without such helpful resources!

Want to put a map of Prince Edward Island somewhere on your website? OpenLayers makes it dead simple; just paste in:

<iframe 
   src="http://openlayers.org/viewer/?center=46.2361,-63.13&zoom=5"
   width="500" height="250" scrolling="no" 
   marginwidth="0" marginheight="0" frameborder="0">
</iframe>

Here’s what you should end up with:

Oliver on the TrailIt was time to climb back on the bus yesterday for our weekly trip out to the [[Charlottetown Farmer’s Market]]. We caught route #3 from the Confederation Centre to its stop right across the road from the market entrance; we were the only ones on the bus for most of the way (hey, downtown livers: there’s a bus that goes directly to the market from downtown; what gives with all the cars?).

After our usual stops, we walked north through the University of PEI campus, across through Brown Court, and down into a very pleasant and mostly hidden trail that runs along the creek from UPEI to North River Road (that’s [[Oliver]] walking along said trail in the picture there). The trail comes out just south of Ellen’s Creek Plaza, so only needed to walk about 1/2 mile to get our various lemon-based beverages.

Just past noon we walked back towards UPEI, this time through the Charlottetown Rural yard and out to University Avenue and up to the Student Centre where we caught the 12:40 p.m. bus back downtown.

Four bucks in bus fare and a pleasant walk in the woods.

There have been two important innovations in the bus schedule. First, route #1 now runs up and down University Avenue every hour; that’s really big, because it means that the maximum wait for the next bus is now one hour rather than two. Second, the same route #1 now runs much later into the evening: the last bus out leaves downtown at 9:05 p.m. and the last bus back leaves the Charlottetown Mall at 9:30 p.m. This means that you can take in an early movie at the mall and take the bus both ways.

Whatever happened to “Covers the Island Like the Dew?”

The Guardian Van

I had my first visit to the re-launched Cora’s this morning. The staff are about 10% friendlier than they were before the franchisee switch; otherwise, it’s exactly the same: expensive food, well-prepared, heavy on the fruit.

My sources tell me that the Thai food place on Pownal Street is scheduled to move to Kent Street near Prince, into the old tattoo parlor space.

Word is that work on [[Formosa Tea House]] number three, going into a renovated house on University Avenue next to Bowlan’s, is proceeding, but perhaps a little slower than originally anticipated, as the renovation job over three floors is a lot of work.

Meanwhile, Kenny and Winnie, who have been operating the [[Formosa Tea House]] at Ellen’s Creek weren’t there yesterday; they’ve left to concentrate on renovating their own new acquisition, the building on Pownal currently occupied by the aforementioned Thai place. No word on what their plans for the space are yet.

I found out this morning that [[Timothy’s]] doesn’t open until 10:00 a.m. on Sunday mornings, which nearly plummeted me into an irreversible state of despair (I was rescued by Cora’s, thank goodness). This seems like an awfully late time to open, but then again the streets of [[Charlottetown]] were deserted this morning, so maybe it’s simply a wise business decision.

Meanwhile, I’ve become fond of Timothy’s “iced mocha” drink; it’s about as close as you’ll come to the much-loved, sadly retired “Iced Cowpuccinno” at [[COWS]]. And it makes the “Iced Capp” from Tim Hortons down the street taste like swill.

Every time I walked into Timothy’s this week I found superstar contrarian [[David Weale]] settled in behind his laptop (and a very snazzy laptop at that — sold me on the virtues of the “glossy” screen). David is off to Les Îles de la Madeleine to escape the mosquitos at Cranberry Wharf, so I might be able to move into the chair he’s vacated and take advantage of its proximity to a power outlet.

Timothy’s is about to expand southward (or is it eastward — who can tell in Charlottetown?) with the opening of an outlet in Founder’s Hall on the waterfront. The new place won’t actually be a Timothy’s, but has a home-brew new name like “Island Grounds” or “Island Grind” that I haven’t committed to memory yet.

Despite negative reports about the Rustico restaurant Dayboat from trusted friends, I’m newly motivated to try it out as I learned yesterday that my coincidence-drenched new friend [[Patricia Van Bolderen]] is working there (when she’s not slicing bagels with [[Kim Dormaar]] at the [[Charlottetown Farmer’s Market]]).

Meanwhile, Kim reports that he had a new customer from Virginia stop by the smoked salmon counter at the market a few weeks ago after learning of its wonders from here on the weblog; behold my awesome market-changing powers.

Speaking of which, please stop by [[Karin LaRonde]]’s booth at the market next time you’re there and order some iced tea; Karin is very inventive when it comes to iced tea, and some of her recent concoctions have been fantastic.

About This Blog

Photo of Peter RukavinaI am . I am a writer, letterpress printer, and a curious person.

To learn more about me, read my /nowlook at my bio, read presentations and speeches I’ve written, or get in touch (peter@rukavina.net is the quickest way). You can subscribe to an RSS feed of posts, an RSS feed of comments, or receive a daily digests of posts by email.

Search