沈華英
1.概述
隨著移動智能設備的普及,導航等基于GIS系統的應用滲透進了生活的各個方面,其為人們的生活提供了巨大的便利的。GIS系統作為其中的基礎設施,其上各種算法的優劣決定了應用的反饋速度,進決定了用戶的體驗,其中路徑距離分析是關鍵的環節之一。
路徑距離分析一般要至少設置兩個點上,起止點或多個點之間。分析之后的結果為這些點之間的距離與路徑。這些參數需要用戶事先輸入,一般可以通過輸入設備直接定義。在二維條件下,鼠標的點擊就可以確定位置,提供一個坐標可以惟一地確定一個點,然而在三維環境下還需要三個坐標軸才能確定一個點的位置。開始路徑距離分析之前,最基本的歐式距離分析和成本距離分析。歐氏距離分析遵循的就是我們小學都知道的“兩點之間直線最短”的原則,兩點之間的最短路徑就是兩點之間的線段的距離。但是實際情況并不是很完美,有時我們無法完全沿直線前往某個位置,例如遇到河流、陡坡、懸崖等障礙。這時,我們就應該考慮使用成本距離工具獲得更現實的結果。如何在三維空間中做好路徑距離分析是本文要探討的內容。
2.路徑距離分析
目前有很多GIS軟都提供了路徑分析功能,如ArcGIS,TransCAD,MapInfo等,但都是在2維平面上進行的。以ArcGIS為例,它的ArcMap平臺提供了一個稱為Utility Network Analysis的工具欄來提供路徑分析功能,但是在它的3維GIS平臺ArcScene中卻沒有路徑分析的工具ArcMap中的路徑分析工具,其背后都是通過ArcObject組件對象模型COM實現的,該組件提供了眾多的接口來實現GIS分析功能。而Arccene程序也能訪問ArcObject組件,因此真正的區別在于:ArcScene展示的是一個3維空間。
路徑距離分析與成本距離分析相似,兩者都用于確定從源到柵格上各像元位置的最小累積行進成本。但是,路徑距離不僅可計算成本表面的累積成本,而且可以考慮到從一個位置到另一個位置的總移動成本的水平和垂直因子補償。這些工具生成的累積成本表面可用于擴散建模、流向運動和最低成本路徑分析。路徑距離工具既考慮水平和垂直成本要素,又考慮真實表面距離。
(1)水平系數
水平系數(HF)從像元移動時所遇到的水平阻力因素的角度出發,確定從一個像元移到另一個像元的成本,或者說是困難。在路徑距離分析中,提供了確定水平方向成本的參數,水平柵格必須中存儲了各個像元位置指定的水平角度,例如在上面開車的例子中,指的就是風向。水平方向以度為單位進行定義,0表示位于待處理像元的上方(或北方),值沿順時針方向增加,形成一個圓并在360度時回到原始位置。另外引入的一個概念是,水平相對移動角度(HRMA),這是水平角度和前進角度的夾角,例如我們在風中行駛的汽車的行駛角度和風向的夾角。
1)LINEAR——線性水平系數
HF由HRMA-HF坐標系中的一條直線確定。這條線在y軸(表示HF系數)上與零系數(Zero Factor)相關聯的值處進行截取。線的斜率(Slop)可以使用SLOPE參數指定。如果未確定斜率,則默認值為0.5/45或1/90(指定為0.01111)。默認切削角為181度,這相當于無切削。默認零系數為0.5。
2)INVERSE_LINEAR——逆線性水平系數
HF由HRMA-HF坐標系中的一條直線的逆向值確定。這條線在y軸(表示HF系數)上與零系數相關聯的值處進行截取。線的斜率可以使用 SLOPE 修飾屬性進行指定。如果未確定斜率,則默認值為-2/180或-1/90(指定為 0.01111)。默認切削角為181度,這相當于無切削。默認零系數為2.0。
3)Table——自定義表格
如果前面四種既定設定在算法中不能滿足要求,我們還可以自定表格參數,該文件的每一行有兩列值與之對應。第一列值用于識別 HRMA(以度為單位表示),第二列值為HF。文件中的每行指定圖表中的一個點。兩個連續的點定義HRMA-HF坐標系中的一條線段。HRMA角度必須按升序輸入。對于所有小于第一個(最低)輸入值或大于最后一個(最大)輸入值的 HRMA角度,其HF系數將設置為無窮大。
路徑分析不僅可以考慮到水平方向的影響因子,而且可以考慮到垂直方向的影響因子,例如前面開車的例子中,水平方向的影響因子是風向,垂直方向的影響因子就是路面的起伏狀況。
(2)垂直系數
垂直系數越大,移動的難度也就越大。確定從一個像元行進到另一個像元時遇到的垂直系數(VF)與確定水平系數(HF)相似。這里需要引入一個概念,垂直相對移動角度(VRMA),垂直相對移動角度(VRMA)是“起始”像元與“目標”像元形成的斜率的角度,斜率=垂直增量/水平增量。VRMA以度為單位進行指定。VRMA的值范圍為-90到+90度。
1)Binary——二元垂直系數
當 VRMA大于切削角下限且小于切削角上限時,在兩個像元之間移動的VF設置為與零系數相關聯的值。如果VRMA大于切削角上限或者小于切削角下限,則VF設置為無窮大。工具默認的切削角為正負30度。
2)Linear——線性垂直系數
VF由VRMA-VF坐標系中的一條直線確定。這條線在y軸上與零系數相關聯的值處進行截取。線的斜率可以使用SLOPE屬性進行指定。如果未確定斜率,則默認值為1/90(指定為0.01111)。默認的切削角下限為-90度,而默認的切削角上限為90度。
3)Inverse Linear——逆線性垂直系數
這個與線性垂直系數類似,VF由VRMA-VF坐標系中的一條直線的逆向值確定。這條線在y軸(表VF系數)上與零系數相關聯的值處進行截取。線的斜率可以確定(如果使用SLOPE修飾屬性指定)。如果未確定斜率,則默認值為-1/45(指定為0.02222)。默認的切削角下限為-45度,而默認的切削角上限為45度。
4)Symmetric Linear——對稱線性垂直系數
SYM_LINEAR由兩個與VRMA相關的線性函數組成,這兩個函數關于VF(y) 軸對稱。兩條線都在與零系數相關聯的VF值處截取y軸。使用 SLOPE垂直系數修飾屬性相對于正VRMA定義線的斜率,然后將針對負VRMA生成一個鏡像。默認斜率為1/90(指定為 0.01111)。默認的切削角下限為-90,而默認的切削角上限為90。
5)Symmetric Inverse Linear——對稱線性垂直系數
顧名思義,SYM_INVERSE_LINEAR與SYM_LINEAR垂直系數關鍵字正相反。它由兩個與VRMA相關的線性函數組成,這兩個函數關于VF(y)軸相對稱。兩條線都在VF值為1處截取y軸。使用SLOPE垂直系數修飾屬性相對于與正VRMA定義線的斜率,然后將針對負VRMA生成一個鏡像。默認斜率為-1/45(指定為.02222)。默認的切削角下限為-45,而默認的切削角上限為45。
6)Cos——余弦垂直系數
VF由VRMA的余弦函數確定。默認的切削角下限為-90度,而默認的切削角上限為90度。默認的COSPOWER為1.0。
7)Sec——正割垂直系數
VF由VRMA的正割函數確定。默認的切削角下限為-90度,而默認的切削角上限為90度。默認的SECPOWER為1.0。
8)Cos-Sec——余弦正割垂直系數
當VRMA度數為負值時,VF由VRMA的余弦函數確定。如VRMA度數為正值,VF則由VRMA的正割函數確定。默認的切削角下限為-90度,而默認的切削角上限為90度。默認的COSPOWER和SECPOWER均為1.0。
9)Sec-Cos——正割余弦垂直系數
當VRMA度數為負值時,VF由VRMA的正割函數確定。如VRMA度數為正值,VF則由VRMA的余弦函數確定。默認的切削角下限為-90度,而默認的切削角上限為90度。默認的COSPOWER和SECPOWER均為1.0。
10)Table——自定義表格垂直系數
與 HRMA 圖一樣,VRMA 圖中的字符可由修飾屬性進行進一步的控制,從而細化垂直系數,這個就不再贅述了。
3.路徑距離分析在GIS中的應用
通過從前文的分析,通過水平與垂直兩個方向上的各種標量,我們可以很有效的去頂兩點的距離與路徑,目前有很多GIS軟都提供了路徑分析功能,如ArcGIS,TransCAD,MapInfo等,但都是在2維平面上進行的。以 ArcGIS為例,它的ArcMap平臺提供了一個稱為Utility Network Analysis的工具欄來提供路徑分析功能,但是在它的3維GIS平臺ArcScene中卻沒有路徑分析的工具ArcMap中的路徑分析工具,其背后都是通過ArcObject組件對象模型COM實現的,該組件提供了眾多的接口來實現GIS分析功能。而Arccene程序也能訪問ArcObject組件,因此真正的區別在于:ArcScene展示的是一個3維空間。
在ArcScene平臺中,如果用戶點擊在TIN以外的區域,則無法確定站點的位置;如果用戶點擊在TIN表面上,則通過調用ISceneGraph接口的Locate命令能確定該點的Z坐標,鼠標點擊實際上定義了一條指向屏幕內部的射線,Locate命令計算并返回該射線與TIN的交點路徑分析需要的站點必須位于道路網上,因此還要將得到的交點投影到道路網上這里用到了IPointToEID接口,該接口的GetNearestEdge方法將鼠標創建的點投影到最近的道路上。點是否能投影到道路上取決于捕捉容限SnapTolerance的大小捕捉容限小意味著離道路網稍遠一些的點就無法投影到網絡上,此處將捕捉容限設為TIN表面寬度和高度中的最大值。
總而言之,當需要計算最短路徑的時候,需要考慮和前進方向有關的水平阻力因子和垂直阻力因子的時候,可以使用工具中的既定算法模型,通過配置參數達到目的,或者自定義表格自定義細化水平或垂直系數。
參考文獻
[1]鄔倫,等.地理信息系統—原理、方法和應用[M].北京:科學出版社,20012
[2]中地信息工程有限公司.MAPGIS地理信息系統開發手冊[M].19983.
[3]王國印,等譯.Visualc++技術內幕(第四版)[J].北京:清華大學出版社,1999.
[4]石俊衛,包世泰,馮煜.基于A*算法的山地最優路徑分析[J].-現代計算機(普及版),2013(5).