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(注释详尽,通俗易懂。)