目录
一、实现效果
二、实现过程
1.数据准备
2.提取地物CASS码
3.根据CASS码初步分离拟删除的地物
4.通过几何关系最终分离要删除的地物
5.数据输出
三、工具使用优化
四、总结及注意事项
今天带来一个基于FME实现对dwg数据批量删除自定义范围内指定地物的工具案例。主要解决对dwg数据局部批量删除某些地物的问题,例如删除地形图某个范围内的所有的砖房屋、路灯等,而指定范围外的砖房屋、路灯则需要保留的情况
☛ FME系列视频教程推荐 ☚
-
1.FME入门视频教程
-
2.FME进阶视频教程
-
3.FME案例实战教程
全文查看链接:dwg批量删除自定义范围内指定地物的工具,快速批量删除。
一、实现效果
本案例以删除指定范围内的砖房屋、路灯为例,通过下图的前后对比可以看到,指定范围内的砖房屋、路灯被删除,而范围外的砖房屋、路灯则被保留下来。
实现效果
二、实现过程
1.数据准备
小编准备了一幅dwg示例数据、一个dwg格式的范围数据(要求范围线闭合哦)以及一个txt格式的cass编码,这里在“cass编码”txt文件中指定要删除的地物CASS码,要删除哪类地物,就填写相应的CASS码即可。做好数据准备后,下面进入核心环节-工具实现过程。
CASS编码配置
2.提取地物CASS码
要想准确删除某项数据,就必须找到能区分数据的唯一标识,而CASS码就是很好的选择。因为提取CASS是常用操作,具体提取方法参照之前的文章:FME提取dwg扩展属性的通用方法,以提取CASS码为例,手把手详细版,这里不再赘述,下面是提取效果
提取CASS码
3.根据CASS码初步分离拟删除的地物
调用相应的读模块读取“cass编码”txt文件后,使用FeatureMerger转换器,挂接初步分离拟删除的地物,效果如下图。
初步分离拟删除的地物
4.通过几何关系最终分离要删除的地物
通过SpatialFilter转换器,将上一步操作中得到的数据与删除范围几何进行几何关系判定,将范围内外的数据分离开来,效果如下。
地物最终分离
5.数据输出
至此,便将要删除和要保留的数据完全分离,那么接下来将要保留的数据输出dwg即可。
数据输出
三、工具使用优化
针对在判定地物是否在删除范围内的2种几何情况:一是地物只要与范围区域相交即删除(一部分在范围区域,另
一部分超出范围区域的情况也删除),二是地物必须被包含在范围区域内才删除(存在部分超出范围区域的地物不删除)。为便于实际使用,对于上述2种情形,这里使用参数进行控制,由用户在“相交”和“包含”两种几何判定标准中,自由选择合适的方式,运行选择界面如下。关注微行公众号:“GIS工具乐园”,持续更新开发技巧分享哦。
运行选项界面
本案例中的FME工具的整体实现流程如下。
整体流程
四、总结及注意事项
1.由于FME读取dwg复杂要素,例如台阶等多线条组合成的组合地物时,会将其打散,故导致输出的成果dwg中的台阶及其类似地物也会被打散炸开,前后对比如下图。该问题目前无法解决。
数据被炸散情况说明
2.因为FME读取时会将dwg复杂要素炸散,故在“CASS编码.txt”中需要将需要删除要素的所有组成部分CASS码填写齐全,才能完整删除。