所需數據:emidalat,一個高程柵格;emidastream.shp,一個流域shapefile。
用高程柵格數據集勾繪整個流域的操作流程。數據源是高程柵格。emidastream.shp作為參照圖層。
除非特別說明,所有工具都駐留在空間分析工具/水文工具集。
- 打開 emidalat和emidastream.shp。
- 檢查中emidalat是否存在小洼地。雙擊流向工具。選擇emidalat作為輸入地面柵格網,鍵入temp_flowd作為輸出的水流方向柵格,點擊確定。
3. 在temp_flowd建立后,雙擊匯工具,選擇temp_flowd作為輸入的水流方向柵格,將sinks設置為輸出柵格,點擊確定。
4. 填平emidalat中的小洼地。雙擊填洼工具,選擇emidalat作為輸出地面柵格,設定emidafill為輸出地面柵格,點擊確定。
5. 用emidafill繼續上述操作。雙擊流向工具,選擇emidatfill作為輸入地面柵格,設定flowdirection為輸出的水流方向柵格,運行命令。
6. 接著創建一個流量累積柵格。雙擊流量工具,選擇flowdirection為輸入的水流方向柵格,鍵入flowaccumu為輸出累積柵格,點擊確定。
- 選擇(或設定臨界值)flowaccumu中流入值超過500個像元的單元,雙擊空間分析工具/條件分析工具集的條件函數工具,選擇flowaccumu作為輸入的條件柵格,鍵入表達式Value > 500,鍵入1作為常數值,設定net 為輸出柵格,并點擊確定運行命令。在接下來的分析中將用到net作為輸入河流柵格。
8.為net中的交匯點(或交叉點)間的每個河段指定一個唯一值,返回到Hydrology工具集,雙擊河流鏈接工具,選擇net作為輸入的河流柵格,flowdirection為輸入的流向柵格,source為輸出柵格。點擊確定。
9.至此,準備了勾繪流域所需的所有數據。雙擊分水嶺工具,選擇flowdirection作為輸入的流向柵格,source為輸入的柵格,watershed指定為輸出格網,點擊OK。將watershed的符號改變成唯一值,以便可以看出每一個流域。
ArcMap中的Python腳本完成以上操作,用這個選項,首先在ArcMap的標準工具條中打開Python窗口。假設工作空間是d:/chap(“/”用來指定路徑),其中包含emidalat,你需要在“>>>”后輸入一下預計,以完成:
inport arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = “ d:/chap14”
arcpy.CheckExtension(“ Spatial ”)
outflowdirection = FlowDirection (“ emidalat”)
outsink = Sink (“ outflowdirection”)
outfill = Fill (“ emidalat”)
outfd = FloeDirection (“ outfill”)
outflowac = FlowAccumulation (“ outfd”)
outnet = Con (“ outflowac”, 1, 0,”VALUE>500”)
outstreamlink = StreamLink (“ outnet”,” outfd”)
outwatershed = Watershed (“ outfd”,” outstreamlink”)
outwatershed.Save (“ outwatershed”)
腳本的前5行輸入了arcpy和Spatial Analyst 工具,定義了工作空間。接下來是使用FlowDirection、Sink、Fill、Flowdirection(已填洼DEM)、FlowAccumulation、Con、StreamLink和Watershed這些工具的語句。每輸入一條語句,你會在ArcMap中看到輸出結果。
來源:https://blog.csdn.net/qq_43173805/article/details/118555587
成都途遠GIS是一家專業致力于無人機航空攝影測繪、航空數據處理、GIS地理信息系統研發、數字孿生城市制作、數字沙盤模型等業務的創新型科技公司,為您提供一站式地理信息服務。
本文鏈接:http://www.duo1680.com/blog/393.html
本文標簽:DEM