Pages

2015年3月23日

[ Photography ] 使用 Nikon ViewNX-i 替照片標記地理位置

Title

(Nikon ViewNX-i 圖像的權利屬 Nikon 所有)

呵呵,前幾天才替 2013 年類似性質的文章修訂重發過,沒想到上個禮拜 Nikon 就發布自家新照片管理程式 ViewNX-i。想必 ViewNX-i 將會取代 ViewNX 2 吧。

ViewNX-i 的界面與 ViewNX 2 不同,原本 ViewNX 2 用來替照片標示地理位置資訊的 Log Matching 換位置囉!如果你是老手,請直接跳到這裡看看 ViewNX-i 的 Log Matching 去哪兒了。如果你是新手,那就從頭看一遍如何用 Android 提供的 Google 定位資訊替你的照片標示地理位置。

如果你有 Nikon GP-1,拍照時接上 GP-1 並且取得 GPS 資訊後,相機會主動將地理位置資訊寫入影像檔。可是在室內拍照時會因為室內收不到 GPS 訊號因此 GP-1 無法定位所以無法提供地理位置資訊。或者是你沒有 GP-1 卻想將拍照的地理資訊位置寫入影像檔以提供未來參考用,那麼這一篇應該能幫助你。

GP-1
▲Nikon GP-1


注意事項

時間是很重要的。ViewNX-i 利用地理位置資訊檔,利用照片拍攝時間作為關鍵值來找出對應的地理位置。所以如果相機的時間不準就會影響定位的結果。在 Nikon Transfer 2 當中(啟動順序:Nikon ViewNX-i → 【檔案】 → 【啟動 Transfer ( T )】)有個選項叫做【連接相機時,將相機的日期和時鐘與電腦時鐘同步(僅支援的相機)】,可以利用這個方式校正相機時鐘。電腦端可以用國家時間與頻率標準實驗室的 NTP 校時軟體 將電腦時鐘調整為正確的標準時間。如果你的相機無法被 Nikon Transfer 2 同步時間,則需要手動校時。

00002
▲ Nikon Transfer 2 校時用的選項

另外 Android 裝置必須有連網的能力。如果你的 Android 裝置僅有 Wi-Fi 功能,那麼在不提供無線網路的地方它也無法回報當下位置。或者是你身處於收不到基地台訊號的地方…Android 裝置需要網路才能回傳當下的地理位置資訊。


從 Google 定位記錄匯出 KML 檔

首先,登入《Google 定位記錄》。先來解釋一下畫面。

00001
▲《Google 定位記錄》的畫面

綠框(一)區:日期選擇區。
藍框(二)區:地圖呈現區。當天的路線以及 Android 裝置回報的位置點都會呈現在這裡。為維護個人隱私因此本圖此部分已做過處理。
紫框(三)區:按下這個按鈕,則會自動展示當天的行進路線。
黑框(四)區:這是時間軸。顯示當天的移動資訊。斜線表示移動中,水平線表示停滯於某地。
黃框(五)區:這裡可以以「時間戳記」來選擇定位內容,匯出 KML 或是刪除儲存的定位內容。

接下來要將軌跡匯出為 KML。KML 裏面會包含了「何日何時在何處」的資訊。

  1. 從(一)區選擇照片的拍照日期。

  2. 從(二)區與(四)區確認 Google 定位記錄與當天的行程相符合。有時候可能會因為通訊因素因而導致定位記錄異常或是缺少。

  3. 確認無誤後,點擊(五)區的【匯出成 KML】。瀏覽器會提示儲存一個名稱格式為 history-日-月-西元年.kml 的檔案。你也許會發現日期似乎少一天。原因是匯出的檔案並不是使用本地時區。例如說現在我匯出自己的定位紀錄,得到一個 history-03-13-2015.kml 並且用文書編輯器打開,可以看到定位資訊的第一筆紀錄如下:
    00004
    這些匯出的紀錄使用的時區是 UTC –7 的時區,也就是跟 Google 總部(位於美國加州矽谷)同時區。


轉換 KML 成 GPX

Nikon ViewNX-i 只能匯入 GPX 格式的定位資訊,因此需要把上個階段取得的 KML 轉換成 GPX。由於 Google 定位資訊匯出的 KML 內,每一筆資訊的登記時間都是 UTC-7,但台灣時區屬於 UTC+8,為了後續使用 ViewNX-i 替相片標記地理資訊時不至於遭遇困難,所以轉檔成 GPX 時需要將時區轉換為 UTC。這裡詳細說明一下,為什麼不直接轉成台灣時區呢?由於 ViewNX-i 設計上比較沒有彈性,經過多次試驗後發現 ViewNX 對 UTC 的適應性最好,所以建議轉成 UTC。

雖然 Google 官方推薦使用 GPSBabel。GPSBabel 現在(1.5.2)也終於可以處理 Google 定位資訊匯出的 KML,但是我在 Windows 下使用 GPSBabel 1.5.2 輸出 GPX 時,雖然時區已經自動轉換成 UTC,但是 ViewNX 讀入後對於時區的判斷會一直失誤,
所以我還是使用 GPS Visualizer 提供的 KML 轉 GPS 服務 來完成這件事情。

  1. 先確定 Output format 是 GPX(下圖藍框處),然後滑鼠點擊下圖綠框處的《Choose File》選擇上個階段取得的 KML 檔案,最後按下下圖黃框處的《[+] show advanced options》。
    00001
  2. 下圖紅框處《Time offset》欄位填入的數值就是輸入檔案的時區與輸出檔案的時區的差值。先打開從 Google 定位下載的 KML,
    00007
    找到類似上圖的區域,看看這個 KML 使用的時區。我們可以看到在 <when> 與 </when> 之間標記了一組時間,下面的 <gx:coord> 與 </gx:coord> 表示座標。時間表示後面有 –07:00 字樣,這表示這組時間的時區是 UTC-7 的時區。我看過得 KML 有 UTC-7 的也有 UTC-8 的。由於這邊與接下來的動作有關,所以每次轉換前請先確定你手上的 KML 時區是哪裡。
    因為做示範的這組 KML 使用的是 UTC-7 的時區,與 UTC 相差 0 – (-7) = 7 個小時,因此這裡填入 +7。
    00002
    如果你手上的 KML 用的是 UTC-8 時區,這邊要填 +8 喔。
  3. 向上捲,按下下圖藍框處的《Conver》。
    00003
  4. 將滑鼠游標移到下圖紅框處的連結,按右鍵從跳出式選單選擇【另存新檔】儲存。
    00004
  5. 檢視一下輸出檔案;我的 3 月 14 日的定位紀錄 KML 轉換成 GPX 後,第一筆資訊的時間是 3 月 13 日 16 點 00 分 09 秒。由於台灣時區屬於 UTC+8,16 + 8 = 24 也就是 00 點,因此沒有問題。
    00005


在 ViewNX-i 替照片加上地理位置資訊

  1. 開啟 ViewNX-i,點擊選單列下方的【地圖】按鈕,如下圖。
    00001
  2. 按下下圖紅框中的圖像,就會打開 Log Matching 視窗。
    00002
  3. 按下下圖紅框中的【匯入】按鈕,並且選擇你轉換好的 GPX 檔。
    00003
  4. 按下下圖紅框處的【開始】按鈕,ViewNX-i 就會利用 GPX 內的時間戳記與照片登記的拍攝時間比對後,以最佳結果配對。
    00004
  5. 配對完成後,可以看到剛剛的【開始】按鈕變成了【套用】。此時點擊左側的圖片檢視標記的位置是否正確。如果沒有問題,按下下圖紅框處的【套用】按鈕。按下後 ViewNX-i 會提示將會覆蓋原有(如果有的話)的地理資訊內容,按下確定繼續。
    00005
  6. 標記完成後,照片下方會多出一個有經緯線的地圖的圖像。大功告成。
    00006

沒有留言: