GpsPrune can load data from arbitrary text-based formats (for example, any tab-separated or comma-separated file) or Xml, or directly from a GPS receiver. It can display the data (as map view using openstreetmap images and as altitude profile), edit this data (for example delete points and ranges, sort waypoints, compress tracks), and save the data (in various text-based formats). It can also export data as a Gpx file, or as Kml/Kmz for import into Google Earth, or send it to a GPS receiver.
Some example uses of GpsPrune include cleaning up tracks by deleting wayward points - either recorded by error or by unintended detours. It can also be used to compare and combine tracks, convert to and from various formats, compress tracks, export data to Google Earth, or to analyse data to calculate distances, altitudes and so on. More Info »
Furthermore, GpsPrune is able to display the tracks in 3d format (like the hike plots on this site) and lets you spin the model round to look at it from various directions. You can also export the model in POV format so that you can render a nice picture using Povray. You can also create charts of altitudes or speeds. It can also load Jpegs and read their coordinates from the exif tags, and export thumbnails of these photos to Kmz format so that they appear as popups in Google Earth. If your photos don't have coordinates yet, GpsPrune can be used to connect them (either manually or automatically using the photo timestamps) to data points, and write these coordinates into the exif tags.
GpsPrune is written in Java, so as long as your platform has a Java runtime (at least version 1.5) including GUI libraries then it should work. It has been tested on Linux (using Sun JRE 1.6) and Windows (XP and 7, with Sun JRE 1.5 and 1.6). It has also been shown to work on Mac OSX, Mandriva, Ubuntu, Elive, Sun Solaris...
GpsPrune is released under the Gnu GPL which specifies what you can do with the program and its source cod