基于FME实现等高线的计曲线连接工具,快速连接计曲线在计曲线注记点断开处的缺口,计曲线批量连接,等高线批量连接

33 篇文章 15 订阅

目录

一、实现效果

 二、延长线法实现过程

1.计曲线延长

 2.查找计曲线注记指定范围内的延长线uuid

3.筛选出计曲线注记点指定范围内的延长线,并在交点处打断

4.筛选出与计曲线相交的延长线

5.延长线连接

6.筛选出计曲线注记点指定范围内唯一的延长线

7.计曲线连接

三、端点连线法实现过程

1.获取计曲线端点

2.查询计曲线注记点指定范围内的计曲线端点uuid

3.将同属于一个计曲线注记的端点连线

 4.计曲线连接

四、工具的使用

1.使用运行

2.提示信息单独输出

3.模板总体流程图

五、总结


地形图的计曲线在计曲线注记的位置会断开形成缺口,在入库成DLG数据时,有时候需要将该缺口连接补上,那么面对的将是成千上万个缺口,采用人工连接的话耗时耗力,下面带来一个基于FME实现的计曲线连接工具。

本工具实现了两种连接方式,分别是延长线法和端点连接法,下面将分别介绍,首先来看一下实现效果。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板及示例数据下载链接。

本工具基于FME2020.2开发,使用前请自行安装FME2020.2及以上版本的FME软件


☛ FME系列视频教程推荐 ☚



一、实现效果

从下图可以看到连接前后的区别,在计曲线注记的断口处成功实现连接。关注微行公众号:“GIS工具乐园”,持续更新开发技巧分享哦。

二、延长线法实现过程

该方法的总体思路是通过延长计曲线形成交点,然后延长线在交点处打断,最后筛选出正确的延长线与计曲线进行连接。

1.计曲线延长

将计曲线延长指定长度,为便于使用,这里使用参数来传递延伸长度。延长后取用计曲线的首尾延长线,用于下一步处理。

2.查找计曲线注记指定范围内的延长线uuid

首先说明一下,对进入处理流程的所有数据均计算一个uuid作为要素的唯一标识。

查找出计曲线注记在指定范围内的延长线的uuid,然后筛选保留高程值与计曲线注记值一致的延长线uuid,并只保留只有两个延长线uuid的数据,用于下一步处理。

3.筛选出计曲线注记点指定范围内的延长线,并在交点处打断

利用上一步数据,查找出计曲线注记指定范围内符合使用要求的计曲线延长线,并在交点处打断。

4.筛选出与计曲线相交的延长线

筛选与计曲线相交的延长线,即超出交点部分的延长线丢弃不要。

5.延长线连接

将成组的延长线进行连接,然后筛选出由2根延长线连接而成的线。

6.筛选出计曲线注记点指定范围内唯一的延长线

筛选出计曲线注记点指定范围内的唯一延长线,避免连接错误。

7.计曲线连接

基于ELEV高程值属性对计曲线和延长线进行连接。

 连接效果如下

三、端点连线法实现过程

该方法的总体思路是提取计曲线的端点,然后通计曲线注记点查找指定范围内的计曲线端点,最后计曲线端点连线。

1.获取计曲线端点

提取出计曲线的首尾端点。

2.查询计曲线注记点指定范围内的计曲线端点uuid

此步骤与延长线法的步骤2类似。

查找出计曲线注记在指定范围内的计曲线端点的uuid,然后筛选保留高程值与计曲线注记值一致的端点uuid,并只保留只有两个端点uuid的数据,用于下一步处理

3.将同属于一个计曲线注记的端点连线

将同属于一个计曲线注记的端点连线。

 4.计曲线连接

基于ELEV高程值属性对计曲线和端点连线进行连接。

 连接效果如下

四、工具的使用

1.使用运行

对工具运行所需的的值使用参数进行传递,运行使用时,输入相应参数即可。

2.提示信息单独输出

对未能连接的计曲线注记点、计曲线数据单独输出一份,便于对未能连接的计曲线进行人工处理

3.模板总体流程图

五、总结

本工具以优先保障连接正确性为原则,经使用山区数据进行测试,使用延长线法的成功连接数量占总数的80%左右,使用端点连接法的成功连接数量占总数的比例最高可达95%,实际使用中的成功率会因数据及输入延长距离(端点距离)参数有关,可使用不同的参数多运行几次测试出最佳距离。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FME是一款功能强大的数据转换和理软件,可以用它编写程序来检查等高线与高程点之间的矛盾。 以下是利用FME编写等高线与高程点矛盾检查程序的步骤: 1. 打开FME Workbench软件,创建一个新的工作空间。 2. 导入等高线和高程点数据。可以使用FME的读取器读取数据,例如读取SHP文件、CSV文件等。 3. 将读取的等高线数据和高程点数据连接到一个FeatureMerger转换器中。FeatureMerger转换器将两个输入数据集合并为一个数据集。 4. 在FeatureMerger转换器的参数设置中,选择“相交”选项,这样就只会输出等高线和高程点相交的部分。 5. 将输出的数据连接到一个Tester转换器中。Tester转换器可以用来测试特定条件是否满足。 6. 在Tester转换器的参数设置中,选择“自定义条件”选项。在条件设置中,输入以下表达式: $if _line && _point then LineStartZ <= PointZ && LineEndZ >= PointZ else true$ 这个表达式意味着,如果检测到相交的等高线和高程点,则应检查等高线起始点的高程值是否小于等于高程点的高程值,并检查等高线终点的高程值是否大于等于高程点的高程值。如果没有相交的等高线和高程点,则返回true。 7. 运行转换器并查看输出结果。如果存在不符合条件的数据,则说明等高线和高程点之间存在矛盾。 以上是利用FME编写等高线与高程点矛盾检查程序的步骤,可以根据实际需要进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS工具开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值