999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于向量的河流岸別判定方法

2015-12-30 07:55:57武玉峰
水利技術監督 2015年5期

武玉峰

(遼寧省水利水電科學研究院,遼寧 沈陽 110003)

基于向量的河流岸別判定方法

武玉峰

(遼寧省水利水電科學研究院,遼寧 沈陽 110003)

岸別是河流普查中的一項重要內容,在河流普查中,往往有上千條河,如果采用傳統方法去判別不僅費時費力而且很容易出錯。基于這種需求,在已知河流流向的情況下,利用干流和支流的向量積并通過 ArcPy編程來進行河流岸別的判斷。該方法在遼寧省河流普查中得到了應用,并取得了很好的效果。

河網;岸別;向量;有向圖;拓撲檢查;Arcpy

1 引言

河流湖泊情況是國家基本國情資料,屬于重要的基本國情信息。在第一次全國水利普查中對全國河湖基本情況進行了一次大范圍的普查,如果依靠傳統手段,這幾乎是不可能完成的任務,但是隨著信息技術和空間技術的飛速發展,在此次普查中應用了很多遙感、地理信息等高新技術,使得這次普查任務能夠順利完成。

遼寧省在此次普查中,摸清了流域面積為50km2以上河流的基本情況,填補了遼寧省基本國情信息體系中河湖信息的空白,對于經濟社會發展具有十分重要的意義。在此基礎上遼寧省又進行了10km2以上河流的普查。

岸別是河流普查中的一項重要內容,普查中對岸別的定義為:本級河流位于上級河流的左岸或右岸。傳統的河流岸別判定方法是采用人工判定,即面向水流的方向,左手邊的岸為左岸,右手邊的岸為右岸。這種方法對數量較少的河網是可行的,但是在河流普查中,往往有上千條河,如果仍然采用這種傳統方法去判別不僅費時費力而且很容易出錯。基于這種需求,在已知河流流向的情況下,利用干流和支流的向量積并通過ArcPy編程來進行河流岸別的判斷。

2 研究應用的區域

遼寧省流域水系劃分為三大流域七大水系。三大流域分別為遼河流域、黑龍江流域和海河流域。經過第一次全國水利普查,全省流域面積大于等于50km2以上的河流共 854條。按河流類型分為三類,山地河流787條,平原河流57條,混合河流1條。按流域面積劃分為三類,大型河流16條(流域面積大于5000km2),中型河流32條(流域面積為1000~5000km2),小型河流74條(流域面積 100~1000km2)。在第一次全國水利普查成果的基礎上,遼寧省對流域面積為10~50km2河流做了進一步普查。

3 基本原理

在數學中,向量是一個具有大小和方向的幾何對象,通常它可以形象的用一條帶箭頭的線段來表示,箭頭所指的方向即為向量的方向,箭頭一端的點是向量的終點,另一端是向量的起點,線段的長度表示向量的大小。在一個向量空間中定義了很多運算,其中,向量積又稱為叉積、矢量積,是本文中用到的運算。向量積定義:的向量積為的方向既垂直于又垂直于指向符合右手規則。當位于的不同側時,向量積的方向相反,如下圖所示。

對于二維向量,向量積的坐標表達式為:

其中標量ax×by-ay×bx即代表了向量積的方向。我們用代表干流的方向,用代表支流的方向。的方向即可表示支流位于干流的哪一側。

圖1 二維向量的向量積圖

4 具體實現

從 DEM中提取到河網矢量數據后,經過拓撲檢查無數據錯誤,對原始河網進行簡化,將簡化后的河網抽象為有向圖這種邏輯結構,并以鏈表的形式將抽象后的圖存儲在內存中,最后通過廣度優先搜索算法從代表 0級河流的節點開始遍歷內存中的河網,在遍歷過程中就可計算出每條河的岸別。

4.1 河網矢量數據的提取

DEM(Digital Elevation Model數字高程模型),包含了豐富的高程信息,從DEM中提取河網的方法已有相當多的國內外文獻和資料,也有很多的軟件工具可以使用,例如A rcGis的Hydrology Model(水文分析模塊)、ArcSWAT、River Tools等,無論使用什么工具和方法最終都可從 DEM中提取的河網的矢量數據,詳細過程本文在這里不再贅述。

4.2 數據拓撲檢查

因為河網是從 DEM中自動提取的,由于計算誤差,數據誤差以及閾值設置等因素的影響,不可避免的會有一些錯誤,同時為了與已有的 50km2以上河流數據無縫對接,以及保證后面計算結果的正確,必須利用 arcgis的拓撲工具對這些錯誤進行檢查和修復,為此必須將河網矢量數據以數據集的形式存儲在Arcgis的Geodatabase中,這樣才可以使用arcgis的拓撲工具。

拓撲工具主要檢查違反以下規則的數據錯誤。

(1)不能與其它要素相交:線不能與另一個圖層中的其它線相交或疊置。第一個圖層中任何與第二個圖層中的線疊置或相交的線都是錯誤的,如圖2.a所示。

(2)不能重疊:一個圖層中的線不能與同一圖層中的線重疊。任何重疊的線都是錯誤的,如圖2.b所示。

(3)不能相交:同一圖層中的線相互之間不能相交或疊置。任何與要素疊置的線或任何相交點都是錯誤的,如圖 2.c。

(4)不能自相交:一個圖層中的線要素不能自相交。任何存在自相交的點都是錯誤的,如圖2.d。

(5)不能自重疊:一個圖層中的線要素不能自疊置,任何存在要素自疊置的線都是錯誤的,如圖2.e。

(6)一個圖層中的線要素不能具有一個以上的構成部分。任何具有超過一個構成部分的線要素都是錯誤的,如圖 2.f。

圖2 檢查河網數據的拓撲規則圖

規則(1)用于檢查 10~50km2河流與50km2以上河流的無縫銜接。規則(2)、(3)、(4)、(5)、(6)則保證了10~50km2河流自身的拓撲正確性。

4.3 數據簡化

從DEM中提取出的干流和支流都是極不規則的曲線,兩條曲線交匯于一點,如果要直接在交匯點處找出能夠代表干流和支流方向的向量是很困難的,所以首先需要把河流的矢量數據進行簡化,簡化過程中還要保持干流和支流之間的拓撲關系。

這一操作可以通過arcgis toolbox的簡化線工具來完成,簡化采用POINT REMOVE算法,最大允許偏移量為 1000m,并勾選“解決拓撲錯誤”選項,圖 3即是簡化前后的撫順市劉家河水系。

4.4 構建河網

通過以上步驟,我們已獲取到可以進行實際計算的數據。任何利用計算機進行的計算,首先必須要將數據載入內存,為此必須構建一個合理的數據結構來存儲整個河網,而且這種數據結構不僅要存儲河網的基本信息還必須反映河網的拓撲關系。筆者經過多番研究最終采用了“有向圖”這一數據結構,對河網進行了抽象。有向圖是圖論中的一個重要概念,它的定義如下。

圖3 簡化前后的水系圖

所謂有向圖D是一個有序對(V(D),A(D)),其中V(D)是一個非空有限集,V(D)中的元素稱為頂點,A(D)是由V(D)中的元素組成的一些有序對構成,并且要求:①構成有序對的兩個元素不同,②任何兩個有序對不同。顯然A(D)是一個有限集。A(D)中的元素稱為弧。圖 4所示即為一個典型的有向圖。

圖4 有向圖

基于有向圖的概念,我們將河網的每條河作為有向圖中的一個頂點,河與河之間的上下級關系用弧來表示,即由下級河流指向上級河流,表示下級河流匯入上級河流。將圖3中的撫順劉家河水系抽象為有向圖如圖5所示。

圖5 用有向圖表示的河網圖

構建河網時,從0級入海河流開始,利用空間關系找出匯入0級河流的一級河流,并與0級河流建立關系,然后從找到的一級河流開始,利用空間關系找出匯入一級河流的二級河流并建立關系,依次類推即可遍歷河網中所有的河流,從而建立虛擬河網。

需要注意的是平原區的河流,例如引水灌渠等,跨流域引水工程等破壞整個河網的拓撲有序性,因為這些河流數量較少,可以先從數據中排除這些河流再進行計算。

4.5 遞歸遍歷河網并計算岸別

因為在簡化時保留了干支流間的拓撲關系,所以簡化后的水系也保留了干支流的左右岸關系。從右側的簡化圖我們可以很容易的找到代表干支流方向的向量,即在交匯點處的干流線段和支流線段。如下圖 6所示。

圖6 參與計算的向量圖

簡化后的水系都為折線,而且干支流都在折線的節點處相交,現在我們只需從簡化后的干流的起點出發,遍歷每一個節點,如果有支流在此節點匯入,就取出在此節點相交的兩條線段,并分別讀取干流線段終點坐標(ax1,ay1),干流線段起點坐標(ax2,ay2)、支流線段終點坐標(bx1, by1),支流線段起點坐標(bx2,by2),然后分別計算得干流線段的向量和支流線段的向量:

利用公式(1)計算向量積得:

若n>0則支流位于干流的右岸,若n<0則支流位于干流的左岸。

以上算法全部用Arcpy實現,ArcPy是ESRI從ArcGIS 10開始在所有產品中集成的基于Python的站點包,完全代替了之前的ArcGIS VB Scriptmodule。站點包是 Python術語,表示將附加函數添加到Python的庫。ArcPy為用戶提供了使用Python語言操作所有地理處理工具(包括擴展模塊)的機會,并提供了多種有用的函數和類,以用于訪問和處理GIS數據。限于篇幅只列出關鍵代碼片段如下:

……………………………………………

a1=trunk.lastPoint.X-trunk.firstPoint.X

b1=trunk.lastPoint.Y-trunk.firstPoint.Y

a2=endPoint.X-startPoint.X

b2=endPoint.Y-startPoint.Y

#計算方向

n=a1*b2-a2*b1

if n>0:

direct=u“右岸”

else:

direct=u“左岸”

……………………………………………………

在實際編碼過程中,河流岸別是在構建河網的過程中進行計算的,而不是在河網構建完成后,再對河網進行遍歷,因為構建河網的過程實際上就是一個廣度優先的遍歷過程。

5 結論

本文所述的河流岸別的判定是在計算機內存中構建的抽象河網的基礎上進行的,實際上基于這個抽象河網還可對河流級別、流域面積、彎曲系數、不均勻系數、形狀系數、平均寬度等流域特征參數進行計算。本算法大大提高了河網岸別判定的工作效率,以本次應用研究區域為例,遼寧省10km2以上的河流約有3536條,利用本算法在普通PC上1分鐘內即可完成所有河流岸別的判定,并且準確率達到100%,而且與已有的50 km2以上河流普查成果完全一致,如果采用人工判定,則至少需要一個工作日的時間,而且還不能保證數據的準確性。

[1]顧群.泰州市城市水系規劃河網數值計算研究[J].水利規劃與設計,2014(09).

[2]嚴鋒,郭玉法,劉波,陳斌.GIS技術在地下水資源研究中的應用現狀及前景[J].水利技術監督,2005(05).

[3]遼寧省水利廳.遼寧省水利基礎信息集[M].北京:中國水利水電出版社,2013.

[4]徐俊明.圖論[M].中國科學技術大學出版社,1998.

[5]嚴蔚敏.數據結構[M].清華大學出版社,2007.

[6]朱嘉偉.渠江水系河網探究[J].水利規劃與設計,2011(02).

[7]國務院第一次全國水利普查領導小組辦公室.河湖基本情況普[M].北京:中國水利水電出版社,2010.

[8]陳俊明,林廣發,楊志海,陳瀚閱.數字河網提取的影響參數優化分析[J].地球信息科學學報,2011,13(01)

[9]董婷婷.基于DEM的清河流域大中小型河流特征值自動提取[J].水利規劃與設計,2014(10).

TV21

:A

:1008-1305(2015)05-0049-04

10.3969/j.issn.1008-1305.2015.05.018

武玉峰(1979年—)男,碩士,工程師。

主站蜘蛛池模板: 亚洲无码高清免费视频亚洲| 狠狠躁天天躁夜夜躁婷婷| 国产9191精品免费观看| 高清欧美性猛交XXXX黑人猛交| 日韩免费毛片视频| 成人亚洲国产| 一级毛片网| 免费va国产在线观看| 国产成人精品亚洲77美色| 九色国产在线| 在线日本国产成人免费的| 午夜高清国产拍精品| 国产精品爆乳99久久| 久久99精品久久久久久不卡| 欧美午夜视频| 看看一级毛片| 18禁高潮出水呻吟娇喘蜜芽| 日本人妻一区二区三区不卡影院| 99热这里只有成人精品国产| 污网站免费在线观看| 久久久精品无码一二三区| 激情六月丁香婷婷| 久996视频精品免费观看| 亚欧成人无码AV在线播放| 亚洲区欧美区| 免费视频在线2021入口| 日韩福利在线视频| 国产尹人香蕉综合在线电影| 538精品在线观看| 88av在线播放| 精品撒尿视频一区二区三区| 在线国产资源| 国产欧美中文字幕| 欧美一区国产| 国产一区二区精品福利| 丁香婷婷激情网| 蜜芽国产尤物av尤物在线看| 久久久久久尹人网香蕉| 欧美精品啪啪| 99视频精品在线观看| 女人18毛片久久| 婷婷午夜影院| 99人妻碰碰碰久久久久禁片| 国产一区成人| 中文字幕色在线| 国产精品网拍在线| 欧美精品在线免费| 亚洲综合片| 狼友av永久网站免费观看| 国产色婷婷视频在线观看| 欧类av怡春院| 欧美a在线| 成人精品亚洲| 最新国产精品鲁鲁免费视频| 99精品国产高清一区二区| 亚洲中文精品人人永久免费| 国产精品大尺度尺度视频| 国产亚洲美日韩AV中文字幕无码成人 | 在线免费看黄的网站| 日本免费新一区视频| 2020亚洲精品无码| 国产精品亚洲αv天堂无码| 四虎免费视频网站| 国产特级毛片| 亚洲无线观看| 最新国语自产精品视频在| 亚洲AV无码不卡无码| 久久亚洲天堂| 天堂av高清一区二区三区| 亚洲人成网站观看在线观看| 亚洲综合片| 久久精品免费看一| 色综合久久无码网| 99在线小视频| 国产午夜无码片在线观看网站| 国产在线观看99| 国产拍在线| 欧美精品v日韩精品v国产精品| 91人妻日韩人妻无码专区精品| 国产特级毛片aaaaaa| 777午夜精品电影免费看| 亚洲精品综合一二三区在线|