Friday, September 01, 2006

GPS Data Manipulation

Part of the purpose of the trips to the USA and Europe was to collect GPS data for later analysis. By synchronising the time on my camera with that of the GPS satellites I should be able to plot the pictures on Google Earth in their correct geospatial positions.

So far I've (all programming in Java, with a small amount of Ruby for file manipulation):
1) Cleaned up the nmea (gps) strings received and removed most of the garbage
2) Used Hibernate to populate a SQL Server database with GPGGA and GPRMC messages (providing me with Date, Time, Longitude, Latitude, Speed and Altitude)
3) Extracted the data in a format suitable for plotting on Google Earth (KML files)

I've taken some screenshots from Google Earth displaying various parts of the journey (see below). The next step is to sync the timestamps of the photos with the long/lat GPS data and then include them as part of the KML file output. Beyond that I've plans for an on-line JBoss based system to allow custom slicing/dicing of the data - this is dependent upon available time of course. An interactive globe in Google Earth with my photos on is a good first step.

Click on each image for a larger version

The entire european trip

Copenhagen to Prague

Italy into France

Valencia to Geneva (South-East coast of France)
Note how Google Earth's satellite images of the road don't match the actual data I recorded