Basin Length (流域长度) 的概念以及在ArcGIS中的实现

一. Basin Length的概念

Basin length是一个常被用来对流域形态进行定量分析的基础概念,在计算elongation ratio/伸张比、relief ratio/地形起伏比等变量时都要用到它。但是它的定义却众说纷纭,甚至在有peer review 的SCI论文中也没有一个非常明确的定义。

在一些资料(百度百科等)里,它被定义为"流域长度是指流域的轴长,即以河口为中心作同心圆,在同心圆与流域分水线相交处绘出许多割线,各割线中点的连线即为流域长度。" 按照这个说法,Basin length就不一定是一条直线。然而,在有的资料里它也会被定义为 " the maximum distance from the watershed boundary to the pour point / 从流域倾泻点到流域边界的最大直线距离(见图一)" (https://gis.stackexchange.com/questions/44307/how-to-find-out-the-basin-length)。这种对Basin length定义众说纷纭的解释让人苦恼。在硕士论文中,我采用了后一种较为简单的解释方法。对此有研究的盆友们请留言,让我们一起对这个概念进行进一步的总结。

图一

二. Basin Length在ArcGIS中的实现

一些文献里提到,Basin Length的计算可以通过在ArcMap里使用measure工具进行简单的肉眼测量来实现。但是这种方法有局限性: 1) 肉眼判断出的最大长度可能并不是真的最大长度,进而measure工具的测量结果也不一定是正确的;2) 当被研究的流域数量非常多时,一个个手动测量劳心劳力。

那么如何不费力地准确量出Basin Length呢?我在网上没有找到满意的答案。最近,在整理硕士论文的时候,突然来了灵感: "将流域边界的矢量面状要素转(polygon)为矢量点状要素(points),然后计算这些points到pour point的距离,其中最大距离即为Basin Length"

顺着这样的思路,我在ArcGIS中进行了如下操作:

1. 将流域边界的矢量面状要素(polygon)转为点状要素(points)

在ArcToolBox中,使用Data Management Tools -> Features -> Feature Vertices to Points (图二)。待转换好后,将流域边界放大,发现流域边界已经被转换为红色的points了(图三)。

图二
图三

2. 计算pour point到流域边界points的距离

将pour point矢量图层载入到ArcMap中。在ArcToolBox中,使用Analysis Tools -> Proximity -> Point Distance (图四)。将pour point数据和边界点(points)数据分别填入 Input Features、Near Features,它们填入的顺序并没有太大区别;Search Radius可以不填写具体数值,但需要选择合适的单位,如米或千米。

完成这一步骤后,Table of contents中会出现一个table,打开table即可看到求得的pour point到流域边界各点的距离(图五)。将表格用table to table或table to excel输出,选出其中的最大值,即为Basin Length。

理解了这个思路,不管是直接在arcgis用model builder还是在python中用arcpy,都可实现批量计算多个流域的Basin length了。此步骤很简单,就不再赘述。

图四
图五
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容