Geotagging with Adobe Lightroom

Posted by Doomshammer on Monday, March 16. 2009 at 16:54 in English only, Photography, Privat, Web
Today I noticed, that Lightroom doesn't work very well with the script I've written to geotag my photos. Though the GPS data is in the EXIF tags, Lightroom doesn't recognize them and (what's even worse) it's doesn't include them into an exported JPG. So you either have to re-run the script over the JPGs or life w/o GPS data in the JPGs.

This wasn't really satisfing for me, so I did a little reaseach on why LR doesn't handle my GPS data correctly. Instead of a real answer to that question, I found a plugin for Lightroom which basically does what my script does, but it's seamlessly integrated into Lightroom. The plugin works really great and has a couple of more features than my script could ever have. Therefor I won't do any further development on the script an use the plugin instead (the funny thing is, that in the background, the script is using perl as well ;-) ).

You can find the plugin here.

Simple photo geotagging with an iPhone

Posted by Doomshammer on Saturday, March 14. 2009 at 22:28 in Anwendungen, English only, Photography, Privat
As you know, I recently received my new iPhone. One cool feature of the iPhone is the built-in GPS module (I know a bunch of other mobile phone do have this feature as well). As I was already searching for a simple solution to geotag my photos w/o much efforts (in terms of money and work), I looked for a way to track my photo trips via the iPhone and later syncronize the GPS data with my photos.

After some searching I found a pretty cool iPhone app. It's name is GeoLogTag (you can grab it for 4$ from the AppStore). The App is as simple as cool. Simply enable it and it'll track your trip and when you are back at home you just press the "GPX" button and the App will transform into a simple webserver where you can grab your GPX files via WLAN.

Now as I found a way to track my trips via iPhone I still needed a tool to get the GPS data into my photos. There are a bunch of tools out there in the internet which will let you sync your GPS geolocation date with your images, but most of them are limited to JPGs. As I am shooting exclusivly in Canon's RAW format with my EOS 5Ds (CR2-Format) these tools won't work. I also found some commercial tools which support CR2-Format, but they are very costly and are running on MS Windows only. So also not the solution I was searching for.

So finally I decided to develop such a tool on my own. My language of choice was (of course) Perl. The good thing is, that there are already modules to parse GPX data as well as a module to process EXIF information. To make the story short... I just finished the first version of the tool. It's pretty simple but effective. You can specify one or more image filenames and a GPX data filename. The script will read out the creation date of the images and will compare it to the dates of the GPX datapoints. If a datapoint doesn't differ more than $X seconds from the images timestamp, the script will tage the longitude and latitude and will write this information into the EXIF metadata of the image. If you specify the "-k" parameter, it'll also add these data as "geo:" keywords.

As the script is written in Perl, it should easily run on any UNIX, MacOS and Windows. It has been written and tested on MacOS X. In first place I wrote this script to support Canon's CR2-Format, but the good thing is that Image::Exiftool supports a bunch of other formats as well, so it may be useful for non-Canon users as well. Feel free to download it and give it a try and let me know how you find it.

Requirements
- Date::Manip
- Log::Log4perl
- Image::ExifTool
- Geo::Gpx

To see the script in action, click here.
Download it here.

Quick and Dirty "Show me the latest 5 photos in my stream" script

Posted by Doomshammer on Tuesday, October 14. 2008 at 15:01 in Anwendungen, English only, Photography, Privat, Thoughts
Here is a brief example of how to quickly fetch the latest 5 photos in you photostream and put them into a quick and dirty HTML output. It is written in Perl and uses my Ipernity::API module

View it as plain text
QUOTE:
#!/usr/bin/perl -w

use strict;
use warnings;
use Ipernity::API;

my $api = Ipernity::API->new(
'args' => {
'api_key' => '0123456123451234651235123452345234',
'outputformat' => 'xml',
},
);
my $result = $api->execute_xml(
'method' => 'doc.search',
'share' => 4,
'per_page' => 5,
'media' => 'photo',
'user_id' => '',
);

foreach my $doc (@{$result->{docs}->{doc}}) {
print '' .
'' . $doc->{title} .<br />
'

\n";
}

[Update II] SPAM durch Kontaktformular

Posted by Doomshammer on Friday, February 1. 2008 at 00:39 in Arbeit, Thoughts, Web

Ein Kunden fragte mich heute ob der SPAM-Filter auf dem Mailserver defekt sei, denn es kaeme soviel SPAM durch. Ein Blick in die Mailserver Logs zeigte aber, das alles ok ist. Beim genaueren Hinsehen fiel mir dann auf, dass die Mails fuer die Kunden-Domain alle von 1&1 kamen (kundenserver.de) und "cgi-mailer" in der Message-ID hatten. Ein Blick auf die Homepage des Kunden verschaffte mir dann Klarheit.

Die Webdesignerin, die die Webseite fuer den Kunden gebaut hat, hat auch ein Form-Mailer Script als Kontaktformular eingebaut. Leider ueberprueft das Script den uebergebenen Inhalt nicht. Das einzige was es macht... es bricht ab, wenn man per GET und nicht per POST sendet. Noch schlimmer ist allerdings, dass man per HTTP POST Request auch noch die Absender- sowie die Empfaenger Emailadresse variabel uebergeben kann (auch mehrere, getrennt durch Kommata). Da der Kunde bei mir kein CGI hat, hat die Webdesignerin das Script auf Ihren Webspace bei 1&1 gelegt (leider ohne Referer-Ueberpruefung oder dergl.). Ich hab' dann mal kurz in den Quellcode der Seite geschaut und die FORM-Felder rausgeholt die interessant sind und mal schnell den folgenden Einzeiler mit cURL gebaut:

QUOTE:
curl -d subject=Foobasa -d empfaenger=empfaenger1@domain.tld,empfaenger2@domain.tld -d return=http://www.microsoft.com -d Bemerkung=Es%20lebe%20der%20SPAM -d Absenden=Absenden -d 'E-Mail=absender@domain.tld' -vvv 'http://www.domain.tld/mailer.php'


Mal gucken ob die Webdesignerin auf meine Mail mit der Anfrage das bitte unverzueglich zu korregieren reagiert. Falls nicht, muss ich wohl mal 1&1 darauf hinweisen.

Update: Ich habe gerade eine Antwortmail von der Webdesignerin bekommen. Sie habe das Script vorerst offline genommen. Das nenne ich mal prompte und vorbildliche Reaktion.

Update II: Tja, zu frueh gelobt. Hab gerade versehentlich mit Ctrl-R den cURL Einzeiler nochmal ausgefuehrt und er funktioniert immernoch. Also war die Reaktion lt. Mail zwar vorbildlich- aber in der Praxis ist hier nichts passiert. Ich habe das ganze jetzt mal an 1&1 weitergegeben- verarschen kann ich mich naemlich selber.

Calendar

Back May '13
Mon Tue Wed Thu Fri Sat Sun
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Quicksearch

Not for Sale!

This blog is not for sale!

Latest twitter

Latest Photos

ERROR: The HTTP server returned the error or the warning(result:403).

Getaggte Artikel

Buttons

Ich bin ein Dokuleser
Get OpenSolaris
Gimme a Smile
neessen.net - Webhosting
I'm a blogger!
Lebst Du noch oder oarks Du schon?
last.fm
trnd - be trendy
I hear Metal
Visit GeoURL
Powered by Linux
Zsh lover
VIM! The Editor
Get Firefox
Ihr, nicht ich!
My amazon wishlist

BLOGROLL