ArcGIS水文分析實戰教程(3)DEM資料準備

2021-09-16 20:27:25 字數 4309 閱讀 2762

arcgis的水文分析工具需要dem資料才能執行,因此在使用之前必須要準備好dem資料並且針對dem資料進行預處理。本章節內容介紹如何根據已有的資料製作和處理dem,並實現水文分析前的資料預處理。by 李遠祥

arcgis的水文分析工具集是對地表形成徑流的模擬,使用dem作為計算的引數,主要的後期資料都是準對dem進行生成的,如流向柵格、流量柵格這兩個重要的引數。

資料出了邊界之外,每一層的資料中都帶有高程屬性。呼叫arcgis 3d分析模組,【3d analyst】--【資料管理】--【建立tin】雙擊呼叫。

在選擇引數的時候,分別設定資料如下。

從圖上看,凡是涉及到有高程值的資料必須懸賞高程字段,但工具中的sf type 就相當不好選了。如果是高程控制點,那麼選擇【mass_points】絕對沒有異議。但等高線部分可以選擇的除了【mass_points】之外還有【hard_line】和【soft_line】。

這裡硬線和軟線到底怎麼選擇?arcgis的工具提示是

隔斷線和面表面型別具有 hard 和 soft 限定符,指示要素所表示的沿表面的斜坡是平滑還是尖銳的不連續部分。

這是乙個比較難懂的說明。大致上可以理解為兩條等高線之間如果構成不規則三角形,採用hard的話在這兩條線之間的區域會平滑一些,採用soft的話基本上就是直接過渡,形成最大的高差。

這本來是乙個測繪學的問題,但由於現在要在水文分析前使用,那麼這些細節引數就值得推敲了。前面章節已經詳細介紹過arcgis的水文分析工具的基礎演算法是d8單流向演算法,徑流只會向乙個方向流動。筆者認為,如果等高距過大和等高線密度比較稀疏,採用hard的做法是比較好的,防止出現了尖銳的三角形頂點,導致彎曲的徑流拉直線生成,但這種做法也就是對徑流線進行了一些平滑,損失一些精度。如果資料的精度比較高,區域的等高線稠密並且控制點足夠多,推薦使用soft的方式,這樣徑流線會更加精準流動。

對於具有大面積水,如湖泊、水庫等地類,那就可以設定為replace型別。這樣在遇到水面邊界的時候不會進行三角化處理,統一以乙個高程值填充了該區域。

在建立tin工具中大量出現了hard和soft的選項,原理跟上面所說的一樣,需要考慮的最主要因素就是等高線的稠密程度。

對於行政邊界來說,一般採用clip型別來處理,在邊界處裁剪掉資料。不然,在邊界處就會出現非常深得三角點。

而另一型別erase ,則是挖空區域,使其沒有鏤空沒有資料。不過這種情況很少見。

關於sf type的說明,可以檢視arcgis相關幫助。但這一部門相當難以理解,即便測繪人員能夠理解,但由於缺乏水文分析原理的支撐,一般也不清楚使用不同的方式會對水文分析結果產生哪些影響。

按照上述的引數設定,生成的結果如下

接下來就可以通過【3d analyst】--【轉換】--【由tin轉出】--【tin轉柵格】工具轉成dem資料。值得注意的是,該處的型別選擇必須選擇浮點型,如下圖

為什麼要選擇浮點型去構建dem。如果站在測繪的這個程度上,浮點型的dem跟整形的區別不大,畢竟都是通過tin去構建生成的,一些小數點位數實際意義不大。但站在水文分析的去考慮就不一樣了。前面章節已經說明過arcgis的水文分析是基於d8單流向演算法的,在有凹陷的dem資料下會形成斷流,從而不能匯聚成河流。而整形的dem時對tin的高程作了四捨五入的操作,硬生生的將地形起伏特徵去除。別看都是小數點後的數值,d8演算法決定了其流向,哪怕是相差0.001公尺,足以改變流向。取整後的dem資料會形成特殊的凹陷區或者平坦區,從而導致徑流無法自然形成。而這些凹陷區(平坦區域實際上屬於大得凹陷區)在arcgis的水文分析工具中稱之為「匯」,是必須找出來並且填平的。

該工具中還有【取樣距離】引數,取樣距離預設使用的是observations設定,表示該dem像元的列數,也就說用多少列來表示該區域。建議使用另一引數cellsize,這可以直接定義像元網格的大小。如果使用observations,後期還需要通過區域寬長和列數去換算單位網格的大小,非常不方便。水文分析的匯水區大小定義時,筆者認為還是使用單位網格大小比較直觀。可以參考前面的文章,裡面有詳細的敘述。

引數設定好後可以直接生成dem,如下圖

這樣dem就生成完畢,可以作為水文分析的基礎資料了。

如果使用等值線+高程控制點方式去生成tin,在由tin轉dem,對一般水文分析人員,甚至是部分gis人員都比較難以理解清楚其每個引數的作用。由於dem資料是要作為水文分析的基礎,因此很多引數的調整必須謹慎選擇,所以,水文分析的原理是十分重要的。

如果害怕上述方式過於複雜和難懂,可以嘗試一種新的方法,那就是【地形轉柵格】工具。這個工具在【spatial】擴充套件模組中,不需要用到3d分析模組,與水文分析工具同屬於乙個擴充套件。esri將其工具放置在【插值分析】工具箱,如下圖所示

可見該工具其定位。但不得不說該工具確實非常的強大,看下圖的設定

其操作非常簡單,它定義了地形中常見的九種型別:

pointelevation - 表示表面高程的點要素類。field 用於儲存點的高程。

contour - 表示高程等值線的線要素類。field 用於儲存等值線的高程。

stream - 河流位置的線要素類。所有弧線必須定向為指向下游。要素類中應該僅包含單條弧線組成的河流。此輸入型別沒有 field 選項。

sink - 表示已知地形凹陷的點要素類。此工具不會試圖將任何明確指定為匯的點從分析中移除。所用 field 應儲存了合理的匯高程。如果選擇了 none,將僅使用匯的位置。

boundary - 包含表示輸出柵格外邊界的單個面的要素類。在輸出柵格中,位於此邊界以外的像元將為 nodata。此選項可用於在建立最終輸出柵格之前沿海岸線裁剪出水域。此輸入型別沒有 field 選項。

lake - 指定湖泊位置的面要素類。湖面內的所有輸出柵格像元均將指定為沿湖岸線所有像元高程值中最小的那個高程值。此輸入型別沒有 field 選項。

cliff - 懸崖的線要素類。必須對懸崖線要素進行定向以使線的左側位於懸崖的低側,線的右側位於懸崖的高側。此輸入型別沒有 field 選項。

exclusion - 輸入資料應被忽略的區域的面要素類。這些面允許從插值過程中移除高程資料。通常將其用於移除與堤壁和橋相關聯的高程資料。這樣就可以內插帶有連續地形結構的基礎山谷。此輸入型別沒有 field 選項。

coast - 包含沿海地區輪廓的面要素類。位於這些面之外的最終輸出柵格中的像元會被設定為小於使用者所指定的最小高度限制的值。此輸入型別沒有 field 選項。

考慮得非常周到,不是說九種地形資料必須都有,而是針對性的越齊全越好。還有一點就是該工具對等高線的支援非常友好,如果輸入要素資料型別為等值線,則演算法將先根據等值線的曲率生成概化的表面形態。然後該演算法會將等值線作為高程資訊的源。等值線最適合大比例資料,因為此時等值線和拐角可準確地指示出河流和山脊。在較小比例下,對等值線的拐角點進行數位化並將其用作輸入點要素類可能同樣有效且消耗更少。可以看到該工具出來的結果本身就能很好的呈現山脊和河流。在水文分析中這就是分水線和水系了。

關鍵部分還有在可選引數中,地形強化引數。預設使用的是enforce。

這樣的話在資料生成過程中就已經移除掉「匯」,避免了後期的處理。

筆者認為這個工具簡直就是為水文分析工具而生的。屬於非常好的輔助工具。既簡單而且有實在,將水文分析所需的資料特性很好的表現出來。該工具在arcgis10.0及更高的版本中有整合。

對於水文分析前的dem資料生成,有著非常明顯的定義,傳統的測繪人員是不清楚這些細節的;而水文研究者對於gis資料更是完全不了解。本章的主要特點就是從水文分析原理的角度去解釋dem製作的一些細節,力圖讓dem資料能夠準確的還原基礎地形,並且準確的生成主要的地形特徵。

ArcGIS水文分析實戰教程 12 河網分級流程

河網分級的基本流程是在河流提取的基礎上多做一步分級的工作,如下圖所示 同理,其關鍵部分還是河流定義的部分,也就是對流量柵格進行閾值設定部分。分級完成之後再呼叫柵格河流向量化工具將資料進行匯出。筆者在前面的章節也提到過河網分級的一些原理和意義,這裡就不再詳細論述了。具體可以參考之前章節 arcgis水...

ArcGIS水文分析實戰教程(7)細說流域提取

流域提取,或者叫集水區提取,是根據河流 流向和出水口共同確定其空間範圍。從水文學和地理學上,其區域必須是與河流有對應關係。所以,在流域提取之前,必須指定河流。河流資料可以從dem資料提取,也可以從已有的向量河流中轉化過來。如果河流資料是從dem中提取的,那麼對河流的劃定就一定要仔細,必須要對流量柵格...

最新Python資料分析實戰教程

課程簡介 主要介紹python在資料處理 資料分析 資料視覺化方面常用的實戰方法與技巧。本課程目的是幫助學員提公升工作效率及效果,增強職場競爭力。課程目錄 章節1 python與資料分析概況 課時1課程學習指南 課時2資料分析概況 課時3python概況 章節2 python 安裝 課時4安裝ana...