How to Batch-Geotag Photos – GpsPrune 如何將相片批次加上地理標記

我習慣geotag我所有的相片。這樣可以幫助我想起來這是在哪拍的,尤其是有些相片並沒有顯著的地標。

[Update] 加入如何手動標記說明

我以前的做法是很low-level & time-consuming:

  • 在Picasa裡,選好相片。Tools -> Geotag -> Geotag with Google Earth…
  • 在Google Earth點選拍攝的相片點。

對於處理這些沒有顯著地標的相片,要想從Google Earth的衛星相片裡找到拍攝點很困難,尤其是有些地方 (深山) 並沒有很清晰的圖片。像這種情況,我還會搭配用SportTracks打開GPX檔案,依照拍照時間來找該點紀錄的位置。

很笨的方法,是吧? 應該是有軟體可以處理這樣的事情,只是我一直沒有去找。想說,每次出遊後整理相片也還好。但最近很忙,一些遊記 (沒算PBP) 打從七月中開始就沒整理,待標記相片就越來越多…

最近在研究製作離現地圖給Android手機使用時,在看OpenStreetMap Wiki時找到了解決辦法。在整理上篇遊記時一試,果然省事許多。連同七月底的九份之旅還有武嶺行的相片就一起整理了。

GpsPrune

GpsPrune以Java寫成,是個跨平台軟體。只要有Java Runtime (至少v1.5,Windows XP的需要另外裝)可以執行。支援多國語言,包括簡體中文 (pity)。

GpsPrune的功能很多,除了前篇提到的GPX Editor的功能大致上都有,還多了些

  • 高度圖可以3D流覽 – 需要安裝 Java 3D
  • 相片及聲音檔案加上地理標記
  • 匯出相片縮圖到 kmz格式,及儲存座標資訊到相片EXIF裡 (需要ExifTool)
  • 對高度vs時間及速度vs時間等來繪圖或是匯出到svg檔案
  • 從座標資訊可以下載SRTM的高度數據
  • 可以依座標在Wikipedia查詢
  • 可以跟Gpsies.com上傳及下載

這裡只針對批次相片地理標記說明。

Installing GpsPrune 安裝

  • 下載(Runnable Code)可執行檔。就存在你想放的位置。直接點擊就可以執行。

Installing  ExifTool 安裝 (建議)

  • 下載ExifTool。選擇合適的版本,解壓縮並將exiftool(k).exe改名成exiftool.exe

在GpsPrune -> Settings -> Set program paths,會出現這視窗。將路徑copy到欄位,按”Check”後,ExifTool會做確認。

設好後,記得儲存設定”Settings -> Save Settings” 好讓GpsPrune記得這路徑。(不要改檔名,直接將”.pruneconfig”存起來)

Geotag Photos 地理標記相片

  • 先File -> Open file打開你的GPX檔案。在中間panel按中間”地球”,可以顯示地圖。
  • 再來File -> Add Photos 選擇要Geotag的相片
右邊有三個選項:包含子目錄 (subdirectories),包含沒有座標 (without coordinates) 及超出目前區域 (outside current area) 的相片
  • 要將相片跟GPS軌跡結合起來,Photo -> Correlate Photos

GPS軌跡記錄的時間是標準時間,相片的時間則是看你設的時區,所以需要加上Time Offset。軟體自動計算出+8。檢查一下沒甚麼問題 (“Correlated” checked)後,按”OK”就行了。

成功! 藍線上面的黃點就是連結的各個相片。有的在行進中拍照的相片,還可以顯示當時的速度 (見滑鼠所指的)。

有時候相機的時間並不是很準,這時候需要微調 (分鐘/秒)。上面的例子是用手機拍攝的,在時間上就比較沒有問題。建議不要同時處理不同機子拍攝的相片,因為時間差可能會不同。

如果在Preview panel (預覽) 時有些相片沒有連接好 (“Correlated” unchecked)。這時候需要手動先Geotag一個點,GpsPrune會依此資訊重新估算時間差。再來預覽時,會看到相片都有 “Correlated”。

Manually geotag photo 手動標記相片

如果相片拍攝時間在GPX檔案紀錄的時間範圍外,就無法自動correlate相片,而必須手動標記。

A. 相片在track上拍攝的:

  1. 選好要tag的相片
  2. 選好地圖上track的點
  3. 在Photo -> Connect to Point。這樣就標記完成

B. 相片不是在track上拍攝的:

  1. 在地圖上選好位置,按右鍵選” Create New Point”
  2. 重複A.1-A.3

PS 1: 如果要移除已標記的相片上位置資訊,就用Photo -> Disconnect from Point

PS2: GpsPrune沒法選擇多張相片同時標記在同一點,只能一張張手動標記 (這樣有點不方便)。如果要多張手動標記可以使用Picasa內附的功能 (透過Google Earth or Google Map),或是另一個軟體Geotag

Save to Exif 存到Exif

EXIF記錄相片一些相機拍攝時的設定資訊,其中也包含了地理座標 (如果相機有內建GPS功能時)。如果希望把剛剛連接到GPS點資訊存在相片理,就需要做”Save to Exif”這步。

如果想保留原始檔,就不要選”Overwrite files”;這樣GpsPrune會將原始檔改名,不會直接寫入。

後記

使用GpsPrune來自動Geotag相片真得很方便,速度快很多。其他的功能我還在摸索中 (有嘗試想3D 高度表繪圖,結果檔案過大,軟體當在那沒反應 ),有機會以後再分享。

PS: 這樣總算可以去整理PBP的相片了 (是說,沒有藉口再拖稿了嗎? )

官方教學video

(Visited 473 times, 1 visits today)