DEM數據提取河網信息可以說是比較成熟了,但是在ArcGIS中要經過幾個步驟才能完成,不能進行批量化的處理,或者還有一種方法,就是在模型構建器裏面做好模型,進行處理,也是一種從優方法。
本文意在熟悉Arcpy站點包,以及處理流程。處理結果如下圖:
實現的具體步驟:
1.窪地填平。
outFill = Fill(data)
窪地區域是水流方向不合理的地方,可以通過水流方向來判斷哪些地方是窪地,然後對窪地進行填充。
2.水流方向計算。
outFlowDirection = FlowDirection(outFill, "NORMAL")
3.水流積聚計算。
outFlowAccumulation = FlowAccumulation(outFlowDirection)
4.使用spatial analyst中的柵格計算器,提取河網柵格(二值化)(計算大小根據實際而定,這裏設置爲500,生成河網矢量,(屬性表選擇grid_code = 1)
outRasterCalculator=Con(outFlowAccumulation, 1, 0, "value > 500")
arcpy.SelectLayerByAttribute_management("stateslyr", "NEW_SELECTION", ' "GRID_CODE"= 1 ')
注:參考百度經驗。
實驗數據下載地址:https://download.csdn.net/download/qq_33356563/10899627
原始代碼下載地址:https://download.csdn.net/download/qq_33356563/10899625(註釋詳盡,通俗易懂。)