2008年10月12日 星期日

利用exiftool和gpsphoto把raw檔加上geotag

昨天參考了01上的文章為Raw圖檔同步軌跡-GpsPhoto.pl,動手把Canon的CR2檔案和轉出來的jpeg加上gpstag資料。

如此上傳圖案到picasa和flikr就會自動帶入位置,同時也可利用google earth來瀏覽照片。

不過該篇文章有些地方沒有寫的很明白,在此作個補充。

幫raw檔加上geotag前,記得先copy一份出來備份,避免加上geotag後raw檔無法開啟,原始檔案又砍掉就麻煩了。

首先電腦必須安裝ActivePerl

安裝完畢後執行Perl Package Manager

選View all packages找到image-ExifTool,目前版本是7.30,官網最新是7.46,日後再來教學如何更新版本。
gpsPhoto01

點選後,選右上角的Mark for Install,圖示右下方會出現+的符號
gpsPhoto02

接下來選右上角的綠色箭頭圖示Run Marked Actions,或是用快捷鍵ctrl+enter
gpsPhoto03

接下來程式就會開始安裝,跑完後可以選左上角的view all installed packages,確認有沒有出現在列表。
gpsPhoto04

主要步驟安裝完畢,接下來要安裝gpsPhoto

官網取得程式,在Direct download of gpsPhoto.pl (HEAD)按右鍵另存新檔。

下載後是gpsPhoto.pl,copy到Active Perl安裝目錄(預設是C:Perl)的bin目錄底下
gpsPhoto05

以上安裝完畢

接下來準備好軌跡檔,以Garmin為例,輸入軌跡檔後另存為gpx檔案,檔名建議英文
gpsPhoto06

為了方便使用,建議把gps的軌跡檔和圖片放一起

按左下角的開始->執行,輸入cmd,執行
輸入gpsphoto.pl -dir=c:\album\1010 -timeoffset=-28800 -gpsfile=c:\album\1010.gpx -maxtimediff=60 -kml=google.kml
gpsPhoto07

在此說明一下-dir為指定目錄,我相片是放在c:album101,所以我是輸入c:\album101,

如果是檔案,則改為-file=檔名路徑,例如-file=c:\album\1010\123.JPG

-timeoffset=-28800是台灣(GMT+8)的值,算法是 值(秒)=GMT-當地時間(相機時間)

因為台灣為GMT+8,標準時間為GMT+0,所以GMT+0 - GMT+8為負,因此-28800後軌跡檔時間才會對應到相機。

Canon 40D的時間設定是正常設定,有的相機時間設定是GMT格式,這時候就要作一些調整,一般來說大致是用-28800。

-gpsfile為指定gpx檔的路徑。

-maxtimediff=60,設定相片和gps軌跡的時間誤差,預設120秒,我設定60秒提高精確度,如果有相片無法對應,則逐步提高數值,我是以60秒為間隔往上。

-kml=google.kml,同時輸出google earth的檔案,可以不用

中途會發現有的圖片顯示could not find a coordinate,那表示檔案和軌跡時間無法對應,這時候回去調整maxtimediff數值,開始往上加,例如120、180等等,直到全部檔案都完成對應為止。
gpsPhoto08

完全對應則會出現exact match,最後顯示對應57張圖,全部有64張,所以還有7張需要修正
gpsPhoto09

修改-maxtimediff值
gpsPhoto10

已經有geotag的圖片,則不會寫入新的位置,只會更新尚未寫入geotag的圖片。
gpsPhoto11

等全部圖片更新完畢,就可以上傳了。
gpsPhoto12

a quickr pickr post

沒有留言:

備份DSM transmission的BT檔

群暉的transmission套件的BT檔存放位置是 /usr/local/transmission/var/torrents 利用cp /usr/local/transmission/var/torrents 目的資料夾路徑,就可以將BT檔COPY到新資料夾備份