续前篇:如何用HydroRIVERS河网数据提取长度大于80km的一级河流

在前一篇推文中,我分享了WWF全球河流数据HydroRIVERS,没有看过的可以看一下这篇文章。

HydroRIVERS河网数据

HydroRIVERS是全球的河网数据库,在空间结构上,它将一条河流分成了很多首尾相连的小段,而不是单一连续的多段线,如下图所示。

如果我们要提取出一个整体的河流,那么还需要自己处理,将这些小段河流连成一个独立的多段线,以便于更好地处理数据。

所以,今天就探讨一下如何从HydroRIVERS河网数据中提取出总长度大于80km的一级河流。

首先,要注意一点,这里说的一级河流,是指的HydroRIVERS数据库的属性字段定义的级别,至于是否和国内相关标准定义的河流级别相符,则不在今天的关注范围内,这里更多地是侧重于如何提取出河流的方法。

HydroRIVERS定义的河流级别,一级的就是直接流入湖泊、海洋的河流,如长江、黄河等,它们直接流入了海洋;但同时,也有很多内陆河,直接流入了湖泊,它不是某条河流的支流,也被定义为一级。

处理过程

鉴于整个HydroRIVERS数据要素量太大,总共有847万个要素,要素太多处理起来会卡顿。所以我考虑,首先,在ArcGIS软件中,按属性选择,将ORD_CLAS字段值等于1的要素提取出来,从而减少要素量;

提取级别等于1的要素

导出数据

级别等于1的要素

经过处理后, 获得了以上的河流级别等于1的要素,要素量从847万减少到了69万个。

但是,获取的要素仍然是首尾相连,断开的状态。

长江呈断开状态,不连续

下一步,就是要将这些首尾相连的线段,连接成一个整体。

在ArcGIS软件中,我没有找到很好的方法和工具,汗~~~(谁知道方法的记得私信我一下)

无奈,借助FME来做,FME中倒非常简单,LineCombiner一个转换器轻松搞定!

用FME连接线段

处理完成后,首尾相连的线段被连接成了一个连续的多段线,要素量从69万减少为了13.5万个要素。

每个河流是一个连续的多段线

到了这一步,已经基本上实现目的了,最后一步,就是要提取出长度大于80km的河流。

在属性表上新建一个字段,用来存放每条河流的长度。

新建字段

计算河流的长度

再用一次按属性选择,筛选河流长度大于80km的河流,并删除小于80km的河流。

最后,得到了最终的成果,就是河流的长度大于80km,并且每一条河流是一个连续的多段线。

结语

以上,就是用HydroRIVERS河网数据提取长度大于80km的一级河流的全部过程,当然,在处理数据的过程中,要求不尽相同,这里只是介绍一种能够实现的方法供大家参考。

猜你喜欢

转载自blog.csdn.net/m0_61147973/article/details/124097099