Adding tags from a GPX file to your photos (Geotagging)

GPS is the gratest thing after digital cameraes in my opinion. So how do you geotag (get the GPS information into the EXIF of your photos) photos after they have been taken?

You will need a device that can generate a GPX file and you will need a digital camera. If you read this you probably allready have a digital camera, so I will jump right to the tagging section.

I use my cellular phone (a Nokia N78 and nokia’s SportsTracker http://sportstracker.nokia.com/) to generate the GPX file. I start the application when i go on a tour and export a GPX file when done.
REMEMBER: Before starting any tour; syncronize the time and date of your device (in my case the Nokia N78) and camera.

When your photos are geotagged this will be recognized by sites like flickr.com

How to set GPS information into your photos

I assume that you have a GPX file (the definition of a GPX file is available here: http://www.topografix.com/gpx_manual.asp) and some photos. The photos and the GPX sampling device MUST be set at the same local time, forget about UTC (Universal Time Converter) as EXIF (the camera time) does not support UTC.

This guide will work for computers using Windows XP and Vista (tested on both), and it should work on Mac and Linux with modifications.

A lot of this guide has been taken from the guide at http://marc.merlins.org/linux/gps_geotagging/, my respects to the author

Installation of required applications

This guide should only be done once.

  1. Install a Perl language interpreter. A freeware version can be located at http://www.activestate.com/activeperl/. Install the PERL istallation using the default options. Default installation path is c:\perl.
    1. Notice: The ActiveState Perl installation will install itself into the PATH invironment variable on your computer. I will assume that you have not disabled this feature in the installer (it is on by default)
  2. Download Exiftool from http://www.sno.phy.queensu.ca/~phil/exiftool/index.html
    1. copy all files in the “lib” directory to C:\Perl\site\lib
    2. Copy “exiftool” to C:\Perl\bin and rename this file to “exiftool.pl”
  3. Download gpsPhoto from http://www.carto.net/projects/photoTools/gpsPhoto/. select the link “Direct download of gpsPhoto.pl (HEAD)” and right-click and save target as gpsPhoto.pl (this is a downright stupid way of organising their website, but they write good software so should we not forgive them?).
    1. Copy the gpsPhoto.pl file to C:\Perl\bin

You are now ready to geotag your photos using the GPX file.

Geotagging your photos

Now we will go down to the fun business. The thing that really matters; geotagging the photos.

  1. place your image files in a folder of your choice
  2. place the GPX file in the same folder as the image files.
  3. Create a new file ANYTHING.bat in the same folder as the imagefiles and open the BAT file for edit. Write the following in the file: gpsphoto.pl –gpsfile komplet.gpx –overwrite-geotagged –timeoffset 0 –maxtimediff 7200 –dir ./
    1. komplet.gpx is the name of the GPX file. This is the GPX file you saved using your GPS device. Any filename will go here; even filenames that does not include the GPX extension.
    2. –overwrite-geotagged means that the original file should be overwritten with the resulting geotagged file.
    3. –timeoffset 0 means that there are no time differences between the image DateTimeOriginal exif timestamp and the GPX file time stamp. This can be changed from ’0′ if camera and GPS device time was not in sync at the time of capture.
    4. –maxtimediff 7200 means that an image is considered to be taken at the same spot as the closest (time wise) GPS position within 7200 seconds (2 hours). Images that were taken with more that 2 hours to any GPS position will NOT be geotagged.
      The 7200 can be changed to any value.
    5. –dir ./ means that the images to be geotagged is located in the same folder as BAT file. Save the BAT file.
  4. Save the BAT file
  5. Insert a ‘pause’ on a new line in the BAT file. This will pause the execution of the BAT file when the geotagging is done. This way you can see the information output by gpsphoto.
  6. Run the BAT file we just created (double-click it) and let gpsphoto and ExifTool do their work.

Hopefully you will see a message in the button of your console window stating “Found coordinates for XX images out of XX images … done.” this means that the photos has all been geotagged. otherwise  you should control the  timestamps of the GPX file and the image files for a start.

Posted in EXIF, GPS, Photo, Programming | Tagged | Leave a comment

Guide to setting up the Eclipse IDE for Symbian S60 development

This is my take on the setup of a windows XP 32 computer for developing applications for the Symbian S60  Nokia devices. The setup stated by Nokia is located at the link:http://wiki.forum.nokia.com/index.php/Installing_Java_ME_development_tools_for_S60

The rationale for creating a new guide is that the guide from Nokia is difficult to grasp. I hope this new guide is a help to you, and any errors in this guide will be corrected.

Installing the IDE for developers to S60 devices

Start from the top:

  1. Download and install the latest “JDK” (Java Developers Kit) from http://java.sun.com/javase/downloads/index.jsp
  2. Download and install the latest “Sun Java Wireless Toolkit” from http://java.sun.com/products/sjwtoolkit/download.html
  3. Download and install the latest “S60 Platform and Device SDKs for Symbian OS” from http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html. You have to download the SDK specific for your phone (and i dont know how you figure out which version your phone supports )
  4. Download the Eclipse IDE (This is the IDE  “Integrated Development Environment” where you will actually write your applications) from http://www.eclipse.org/downloads/ select the latest “Eclipse Classic” version, and unpack Eclipse to a location on your HD.
  5. Download and install the latest EclipseME from http://sourceforge.net/project/showfiles.php?group_id=86829 The way to do this is listed below:
    1. unpack the “eclipseme.feature_XXX_site.zip” on your hard drive to a local folder.
    2. Find the “eclipse.exe” under your newly installed Eclipse folder and execute it.
    3. In Eclipse goto menu  “help”->”software updates”->”available software”->”add site”->”Local…”->’select the folder that you unpacked the EclipseME to’->Select EclipseMe and click update.
    4. Accept the requirements. Eclipse Me is now installed.
  6. Download and install Java™ ME Developer’s Library from: http://www.forum.nokia.com/info/sw.nokia.com/id/3cfc525e-f0ec-491c-badd-085c0e2df8bf/Java_ME_Developers_Library.html. Select either the stand-alone version or the Eclipse version (I installed the Eclipse version. This will incorporate the Nokia help in Eclipse).
    1. Eclipse version: Copy the Java_Developers_Library_XXX.jar into the “..eclipse\plugins” directory
  7. Configuring Eclipse’s Java options (copied directly from http://wiki.forum.nokia.com/index.php/Installing_Java_ME_development_tools_for_S60)
    1. In Eclipse, select the menu item Window | Preferences.
    2. Expand node Java | Build Path.
    3. For item Source and output folder, select the radio button Folders, and keep the defaults (src and bin).
    4. Expand node Java | Debug.
    5. Uncheck Suspend execution on uncaught exceptions.
    6. Uncheck Suspend execution on compilation errors.
    7. Set Debugger timeout (ms) to 15000.
    8. Press OK.

Now the development invironment is installed and you are ready to develop your application to your phone.

Nokia has supplied a page for you to get started with applications development at this address: http://wiki.forum.nokia.com/index.php/Creating_your_first_MIDlet_using_EclipseME

Notice:  Some of the supplied Nokia samples does not work (ex: http://www.forum.nokia.com/info/sw.nokia.com/id/f7e8ad78-7898-4053-ab83-74c147923866/MIDP_Location_API_Example_Tourist_Route_v1_0.zip.html) and have to be fiddled with for them to work. This is not an error on your side, this is the result of a phone developer (Nokia) trying to create applications to their own phones: Shitty software.

Rant

Nokia does not allow you to run your own applications on your own phone without you buying a seriously expensive signing contract (See http://discussion.forum.nokia.com/forum/showthread.php?t=147710). This should serve as a warning before starting any development to the Symbian platform. If you dont buy a licence at 200US$ a year you wont be able to create applications to your own phone that will not spam you with “file save”, “file read”, “GPS”, etc messages.

These messages is horrible and actually means that you cannot create an application and use it in  your own Symbian phone that uses the GPS, file system or the other vital systems in your phone without a messagebox occuring. Any application using a save machanism (ex. save progress every 10 minutes) is out of the question.

Conclusion

Nokia delivers a reasonable developers environment, but the usage of the IDE is (more or less) restricted to the developers payng premium cash to the signing agencies i.e. professional developers. We should not expect to see freeware applications to the Symbian platform (who, in their good minds, would pay 200US$ a year to provide us with free applications?)

Best regards
John Rauhe

Posted in Programming, Symbian | Tagged | 4 Comments

Changing image file names based on the EXIF date and time

I name all my photos in the format of “year_month_day__hour_minute_second” e.g. “2009_11_08__10_55_32″. This way I am sure that not 2 images are named the same.

The best way of doing this (in my opinion) is to use Exiftool. Exiftool is a tool to view or modify EXIF information in an image file. Most image files are supported. Exiftool can be found here: http://www.sno.phy.queensu.ca/~phil/exiftool/

Download the Windows executable (the following goes for Windows but can be modified to other platforms).

Assumptions:

  • Images is placed in a folder named “c:\images”
  • Exiftool.exe is placed in a folder named “D:\data\exiftool.exe”

Changing file names using command prompt:

  1. Open a command prompt
  2. Write the following string: D:\data\exiftool.exe -d %Y_%m_%d__%H_%M_%S%%-c.%%e “-filename<CreateDate” “c:\images”
  3. Pressing enter will rename all image files in the folder using the date and time of the EXIF

Changing file names using a BAT file:

  1. Create a new file and call it <something>.BAT
  2. Open the file for edit and write the string: D:\data\exiftool.exe -d %%Y_%%m_%%d__%%H_%%M_%%S%%%%-c.%%%%e “-filename<CreateDate” %1
  3. Save and close the file
  4. Place the file on your desktop
  5. Dragging a folder onto the BAT file icon on the desktop, and releasing it will now rename all image files in the dragged folder.

Notice: If 2 pictures are taken within the same second, Exiftool will postfix the filename with a number.

Posted in Photo, Programming | Leave a comment