流域划分是水文气象分析中的基础步骤,除了ArcGIS这种手工操作之外,对于需要批量处理的时候,python这种编程语言就成了首选。当然,在windows下,可以用python直接调用ArcPy工具包来处理。但是在Linux或者MacOS下,没有对应的版本。
其实有一个python工具包-pysheds,处理速度快,使用方便。用这个工具包写了一个处理函数,主要功能是:给定任意流域出口位置,从一个geotiff的DEM文件中划出上游控制面积:
原始的DEM(1km):
catch = watershed_delineation(raster_file = 'dem.tif', outlet=[99.7366,37.0369])
catch.plot()
划分的流域示例: