楔子
98年9月底,臨時起意與家人上合歡山一遊,於重新開幕的松雪樓大廳,讚嘆那幅合歡山頂360度展望的鉅作。坐在高雅的餐廳裏,面對令人肅然起敬、曾經扭傷腳踝一路抽筋登頂的奇萊北峰,悠閒的吃著拉麵套餐,真是一種享受。隨後循戰備道登上主峰,感謝老天賞賜,下午兩點仍只少許雲朵,當下細數山頭並依樣畫葫環拍一圈,帶著滿足下山。
回家後設法找軟體拼接成全景照片,並想一一標示以饗親朋,但對照上河地圖[1],卻發現太魯閣大山在奇萊北峰的後方偏右,且因高度較低,會被其龐大的山體遮掩,再查閱台灣百岳全集[2],終於確認左側山頭應為帕托魯山,並電話告知松雪樓服務人員請求更正。
後來,在書店無意間發現久未翻閱的雜誌--台灣山岳,第86期主題正是「舉頭望高山季」,讓我想起學生時代與學長爬山時一塊數山頭,除了佩服之外,對遙遠與陌生的稜脈卻有難以辨識的困惑,終於,有山岳玩家不吝公開四大絕招,但是僅有定性的描述,心中的疑惑依然存在,除了長時間的練功與運氣之外,是否還有什麼方法能以數據為基礎,客觀、精確而易於操作?幾經思索,就用自己的測量專業試試看吧。
初步構想
從照片判讀未知點,是屬於攝影測量學的範疇,主要用於地形圖測繪、航照影像圖製作、古蹟維護及車禍鑑定等,Google Maps/Earth就是最知名的應用範例,但動輒百萬級的量測級數位像機與影像工作站軟硬體,並非人人可用,因此,是否可用便宜普遍的消費級數位像機、容易取得的PC軟體,搭配自行撰寫的程式,求取尚能接受的答案?如果可行,爬山與拍照的樂趣又會再多一點。
打定主意,首先想到的是指北針定位時所用的方位角,若能求出從拍攝點到未知點的方位角,就能利用地形圖搜尋該方向所有可能的山頭(以下稱為候選者),再參考稜線走向及山形外貌,判斷出最可能的答案。
如何求得方位角?登山者最常使用的工具是指北針,但它易受干擾且誤差頗大,有時可能多達5度以上,對於縮小可能範圍幫助不大。而攝影測量是利用照片上少數已知點推算多數未知點的技術,因此若能找出兩個已知的山頭,以及確認拍攝的位置,就能以坐標計算已知山頭的方位角,以此為約制條件,如同一張可以左右彈性伸縮的紙,固定兩條線的位置後,即可用數學的線性內插法推算未知山頭的方位角。
此外,若搭配影像處理軟體,如Windows作業系統內建之小畫家,或Photoshop、PhotoImpact等影像處理軟體,將數位影像開啟,再移動游標讀取各山頭影像坐標,即可省卻沖洗照片的不便,與避免徒手用尺量測的不精確。
在大致解決方位角問題後,標高是否可再提供另外一個條件,以檢驗候選者的正確性?就山區標高測量而言,一般是應用三角高程測量的方法,在已知標高為ha的點位a架設電子測距經緯儀,測量縱角V與斜距D,並換算為距離S(= D * cos V),二者之高差Δh即為
S * Tan V(如圖1),則未知點標高 hb = ha + Δh。但未知山頭多在數公里甚至上百公里之遙,若不考慮地球曲率與大氣折光[註],必然會增加高差誤差量而增添辨識困難度,因此必須加入其影響量 (0.87 * S * S)/(2 * R),其中R為地球半徑6370km ,整合後即為
Δh = S * Tan V + (0.87 * S * S)/(2 * R) ──(1)式
同理,由兩已知點之縱角應用線性內插法,得未知點縱角,比較所有候選者之方位角及縱角,若在可接受之誤差範圍內,即可認定為所求。
附帶一提的是,許多人都看過從八通關附近仰望玉山與玉山東峰的照片[4],從(1)式可求出二者之縱角分別為14.5與16.1度,由於玉山東峰的縱角較大,解釋為何看起來比較高的原因。
實際操作
一、 測定拍攝位置
選定適當拍攝位置後,以GPS衛星導航設備測定TWD67坐標,如果無此裝備,可選擇三角點或地圖上明確地點,以便事後查詢。
二、拍攝作業
一般風景照多使用廣角鏡頭展現寬廣視野,但具有中央誇大而外圍扭曲變形之缺點,對影像量測及後續計算非常不利,因此須將焦距調整至標準焦段,相當於135像機之50mm 附近,然後以相同焦距平穩的逐幅部分重疊進行360度全景拍攝。若無法辨識出兩個已知山頭,則可使用指北針測出各山頭方位角,也能提供後續求解時參考。
三、確定已知點及像片相關資料
首先以合歡山頂三角點旁拍攝之單張像片測試(如圖2),找出兩個已知山頭,分別為奇萊北峰與屏風山,查閱三角點成果表[5],並納入無三角點之百岳資料,整理成known_pt.dat檔(本文所有範例檔請至http://docs.google.com/leaf?id=0B-dkUcqTN_TEOWQ0NTQ1MzQtYjdiNy00ZGQ5LTk2MDUtZWUxM2Q2MmQ5ZjY1&sort=name&layout=list&num=50下載),將拍攝點與兩已知點之TWD67系統縱、橫坐標、標高,及感光元件尺寸、像片像素值(即小畫家中「影像/屬性」之高度與寬度)等資料填入pmp.dat檔,並將各已知及未知點放大至出現馬賽克方格,移動游標至目標後讀取視窗右下方之影像坐標,分別填入檔案中,執行PMP程式,即可自動計算未知點方位角、縱角等各項資訊,並求出可能之候選者(詳見成果檔pmp.rpt)。圖2之未知點A、B、C都只有一個候選者,無須進行第四步驟即可分別推斷為三角錐山、立霧主山與帕托魯山。
如果拍攝點、已知點或候選者無三角點,可使用Garmin的 MapSource軟體搭配TOPO Taiwan地圖(由上河公司製作,即[1]之電子版),並於「編輯/偏好設定/位置」設定方格坐標為台灣二度分帶、大地坐標系統為Taiwan(TWD67),讀取其坐標值,並按known_pt.dat格式加在檔案最後,再重新執行PMP程式即可。
四、判斷可能之山頭
當以台北市某大樓頂拍攝之照片為例,pmp.rpt檔(表1)中之未知點E有兩個候選者E1(小草山)、E2(竹篙山),須由以下準則判斷:
1. 若未知點後方無更高之山頭,取縱角最大者。
2. 反之,則選距離小於縱角最大者之所有候選者中,縱角最大者。如未知點並非該方向次高者,或出現不合理的答案,則應對照地形圖之稜線走向與山頭位置後再加以判斷。
本範例由準則1推斷未知點E應為竹篙山。
若未知點無解時,可將pmp.dat檔之容許誤差量放寬至1度,再執行PMP;或由pmp.rpt檔中顯示之方位角,依前述MapSource軟體之「量測距離工具」按鈕選取拍攝點,游標向外移動時可看到視窗底部之相對方位,即為從拍攝點向外之方位角;也可先上網下載全台三角點之.kmz檔[6],並於Google Earth (以下簡稱GE) 開啟,利用「工具/尺規/線條」功能,選取已知點後,向外延伸直線,「朝向」的度數即為方位角,但需轉換為67坐標(詳見前項實際操作)。然後選擇此方向上可能之山頭、獨立標高或肩狀稜等位置,自行補充known_pt.dat檔後再執行PMP即可。
前述合歡山頂之測試係採用300萬畫素,已屬古董級的Canon Powershot A70像機,而某大樓頂是以500萬畫素Nikon Coolpix 5000拍攝,為了解其他像機是否適用,因此以1010萬畫素Canon EOS 400D測試雪山登山口之照片,也得出滿意的結果,請參考所附範例檔案。
改進措施
由三次測試發現,各山頭之Y方向位置(縱角)差距不大,以短距離作約制條件,進而校正整張像片,常造成外插計算而有較大誤差,必須考慮其他方法予以改進。
在拍攝時若未採用具備水平氣泡之三腳架(以上測試均為手持),必定會有X、Y、Z三軸的個別旋轉量ω、φ、κ,假設像機正上方為Z軸、正右方為X軸,組成右旋坐標系,則Y軸為鏡頭之拍攝方向[7],其中直接影響縱角者為ω(鏡頭俯仰角),若能概略求出此值並加以改正,對推算結果應能有所改善。
圖3之L與M為鏡頭與山頭位置,LJ為水平線,當鏡頭無俯仰時即為攝影軸,LK為鏡頭俯角ω之攝影軸,角V為M之縱角,AB與CD為像機感光元件(CCD/CMOS)之高度,E與F各為其垂足,因此LE與LF等於鏡頭焦距f,G、H為M之顯影位置, HLF為直角三角形,假設Y為像片底部至山頭之感光元件尺寸長HD,d為感光元件高度值(由CCD/CMOS型號上網查詢[8]),DF為d / 2,f可從像片檔之EXIF內容中取得,則 HF = HD – DF = Y – d / 2 = LF * Tan (V + ω),
亦即 Tan (V + ω) = ( Y – d / 2) / f ─── (2)
兩已知點之V值由(1)式計算得出,分別代入(2)式求出兩個ω值,取平均作為鏡頭俯仰角,各候選者再利用(2)式計算縱角V,即可消除鏡頭俯仰角之影響,而改善縱角誤差量。
經過內插與鏡頭俯仰改正後,求出的未知點還可用Google Earth (以下簡稱GE)加以檢驗。由於GPS定位測量不像傳統三角測量要求點位間相互通視,因此絕大多數新設的TWD97系統三角點均位於道路附近以方便作業,山頭上的三角點幾乎全被剔除,故本文只能使用TWD67系統,而GE的坐標系統是WGS84,必須經過坐標轉換方能使用,相關轉換程式可自行上網下載,或利用MapSource軟體功能,先於TWD67及二度分帶下輸入各點坐標,轉換為WGS84與經緯度的度分秒後(詳見實際操作三),再讀取其內容,即可輸入其中展示。
於GE新增地標後,為使其明顯標示,可進入內容修改顏色、比例,然後以拍攝點為中心,縮放至適當比例,再按下滑鼠滾輪,上下移動為俯仰角,左右移動為方位角,調整至與像片相當之拍攝角度,即可驗證答案是否正確。
此外,在GE達人 何燦群 先生的部落格中,還提供觀景台功能[9],設定其位置後,可以360度環場觀景,就像是一具超級望遠鏡,非常適合辨識山頭,亦能證明前述之推論無誤(如圖4)。
延伸應用
一、全景照片
如果單張照片中找不到兩個已知點,可以利用軟體將相鄰且部分重疊之照片拼接成全景照片,以找到足夠的條件,當然,不同照片的ωφκ必不相同,故無法進行改進措施,且拼接必會產生扭曲變形,得出的成果也就不能太過要求。
至於軟體部分,原本使用Canon像機附贈的PhotoStitch,但往往產生影像交錯與過度彎曲的問題,成果並不理想,後來找到一個Freeware--AutoStitch,而且是免安裝的綠色軟體,不僅操作簡單(只須選擇照片,連順序也不用指定),拼接效果更是沒話說,放大後幾乎看不出破綻,唯一的缺點是英文版,因此檔名與目錄名稱必須為全英數字元,否則將沒有任何動作。
二、 放樣
如果運氣不是極好,山頭被雲霧遮蔽,是否就沒輒呢?在工程測量中,有一種方法稱為放樣,也就是將施工設計的點位資料,在現場測定其位置,同理,若已知拍攝點及照片上兩個已知點,即可將想要尋找的山頭資料輸入stp.dat,執行STP程式,可自動計算方位角、縱角、Y值及其平移量,並記錄放樣點影像坐標於報表檔stp.rpt中,只須將游標移至該點即為所求。
回到本文開頭松雪樓的攝影鉅作,合歡山頂看得到太魯閣大山嗎?若將其資料輸入進行放樣,會發現放樣點落在奇萊北峰右下方的山體上(如圖5,以紅色十字標示);若再以MapSource軟體「量測距離工具」標示合歡山至太魯閣大山之方向線,讀取此線與奇萊北峰南側稜線交點坐標與標高值(3423m ),再以合歡山望太魯閣大山之縱角代入(1)式,求取交點之視線標高(3358m ),因為視線較稜線低,亦可證明是看不到的。
三、印刷品與網路上的照片
至於在書報雜誌或網路上看到的照片,是否也能適用?翻閱86期台灣山岳雜誌第40頁,是從大屯山向南方展望的照片左半部,用力壓平以300dpi全彩掃描,然後以相同步驟操作,但因不知像機型號與拍攝時之鏡頭焦距,所以無法執行鏡頭俯仰改正。為避開右側變形部分以及外插情況產生,選定拉拉山及圓山飯店屋頂西北角為已知點,其他山頭視為未知點,先將方位角及縱角容許誤差量設為0.5度,圖中之高腰山、逐鹿山無解,而馬比杉山解為南湖東南峰,若將容許誤差量放寬為1度,則逐鹿山解為茶墾。
照片中逐鹿山的方位角經計算大於卡保山卻在其左,明顯有誤,再將馬比杉山放樣,發現與標示處有段差距,若將同一條稜線之南湖東南峰放樣,則發現較為吻合,因此馬比杉山大約是位於圓山飯店右側3.9cm的雲霧之中。至於高腰山部分,若將拔刀爾山東方約390m 處之1040m 峰輸入known_pt.dat檔,則可求出此解。
使用限制與建議
一、 垂直攝影
以上討論都是以垂直攝影為前提,亦即攝影軸傾斜角(ωφκ)不大時方能成立,如果過大,則數學關係也將不同,就不在本文探討之內。因此,如果選用具備水平氣泡之三腳架,可幾近消除ω與φ,至於κ則併入方位角內插計算中,能大幅減少成像時的變形,而單眼數位像機的鏡頭與感光元件製造較為精密,效果應會更佳。
其實在攝影測量實務中,ωφκ對像點變形之幾何關係十分複雜,改進措施簡化為只有ω之影響量,將造成改正不足或者過度,而影響縱角之因素本來就多,所以推算時應以方位角為優先,縱角有時只能作為參考。
二、 儘量避免外插
內插法是假定已知範圍內之數值為線性均勻變化,故選擇已知點應以位於影像外圍者優先,如此未知點與放樣點均可控制在已知範圍內,不致形成外插而增加誤差量。
三、 現場解算
以上方法必須透過電腦輔助,除非攜帶筆電上山,否則只有下山再說,實屬遺憾,是否可能於現場解算未知山頭呢?Garmin的GPS裝置提供投影航點法功能[10],先測定所在地的坐標,再以電子羅盤瞄準目標得出方位角,加上目視方式推算距離,求出未知點坐標,但因距離推算之誤差甚大,實用性並不高。
如果參考此法,將測量所得之方位角當作觀測值,然後由所在地坐標與known_pt.dat檔全部三角點資料反算所得之方位角比對,加上距離條件(例如只取小於50km 者),選取誤差小於門檻值(例如5度)之三角點為候選者,再參考地形圖之稜線走向與相對關係,就能求出大概之答案(詳見”現場解算_pda.xls”檔)。
四、 解算建議
如果已知點不足,可於拍攝時利用指北針測定各山頭之方位角,假定任意兩個為已知點,以試誤法(try and error)重複嘗試,當拍攝點只知其大略位置時亦同。
此外,還能利用展望模擬圖與方位角尺規輔助(詳見拙著「如何製作展望模擬圖」[11]),同時,綜合運用PMP與STP程式、GE觀景台及現場解算方法,以增進解算之效率與正確性。
最後,是否有方法可以百分百確定山頭位置呢?是的,如果能像早年實施三角測量時,扛著超過20公斤的經緯儀及腳架等裝備置於拍攝點,利用它1秒(即1/3600度=0.0003度)的最小讀數,瞄準一個已知點並設定其方位角,再測量未知點的方位角與縱角或進行放樣,即可與計算之數值比較並加以確認。
結語
登頂是登山者的主要目標,展望更是老天爺賜予的獎賞,但往往因為學藝不精、經驗不足或是運氣不好而不識廬山真面目,如果平時能多認識山形並了解稜脈走向,再加上前述工具輔助,以數據支撐推算之結果,擺脫以往猜謎的困境,相信可以從「大概是」進一步到「應該是」,坐在家中欣賞台灣美麗山景之餘,也能確認目標,不必人云亦云、不求甚解,也不再是look look而已。
多年疑惑終於獲得解答,不亦樂乎!尤其在工作之後爬山機會少了,高山之旅更是屈指可數,以前拍攝的幻燈片、書報雜誌以及網路上的圖片,許多未知或存疑的山頭總算有求解的可能,不論是否為山友,希望在爬山與拍照時能再增加些許的樂趣。
後記
99年5月22日,帶家人上合歡東峰賞花,回程到松雪樓午餐,並拍下大廳鉅作,下山後比對先前製作的合歡山展望模擬圖,結果赫然發現,除了引發研究動機的太魯閣大山並未修正為帕托魯山外,竟然又發現了四個錯誤,即東郡大山、奇萊南峰、八仙山與能高山,應該分別為卓社大山、奇萊主山、白姑西南峰與能高南峰。
此外,本文於3月中曾投稿台灣山岳雜誌,但未獲青睞,檢討原因有二:
1. 雖然已儘量簡化,但對一般讀者可能還是生硬難懂。
2. 指正86期的照片標示有三個錯誤,好像有點踢館的味道,而該篇文章正好是雜誌編輯所寫,實在有些白目。
不過以上純屬臆測!又幸虧有網路這個平台可以滿足個人一點虛榮。當然,若有任何疑問,還是歡迎大家不吝指教,謝謝!
陳建志 99.6.11初稿 99.6.14修正 jgchen6@gmail.com
註:詳參考資料[3]
地球曲率:因地球表面為一曲面,遠處地表向下彎曲,造成兩點間之高差較從拍攝點地表起算為大之現象。
大氣折光:因地球表面空氣各層密度並不相同,造成視線彎曲之現象。
參考資料
[1] 1/50000台灣地理人文全覽圖北島,圖號46,上河文化,2006
[2] 台灣百岳全集第二世代上冊,P313,戶外生活,2007
[3] 平面測量學,P290-295,國立成功大學航空測量研究所,民73
[4] 阮榮助攝,台灣百岳全集第二世代下冊,P49,戶外生活,2007
[5] 中華民國台灣地區三角點成果表,內政部、聯勤總部測量署,
民69,可自下列網址下載http://jidanni.org/geo/taiwan_datums/triangpts/twd67/index.html
[6]http://gemvg.com/php/kml/kml.php?kmlpath=http://gemvg.com/ge/twmountain/twcontrolpoint.kmz,GE相關技術請參考何燦群先生的部落格,網址:http://gemvg.com/
[7] Paul R. Wolf,Elements of Photogrammetry(攝影測量學) 2nd Edition,P502,McGRAW-HILL,1987
[8]http://www.dpreview.com/learn/?/Glossary/Camera_System/sensor_sizes_01.htm
[9] http://gemvg.com/archives/126
[10] http://www.garmin.com.tw/manuals/etrexColorT.pdf
[11]http://tw.myblog.yahoo.com/ncku-ob/article?mid=556&prev=565&next=545