FME教程:批量提取与线相交的面,即线面相交取面的解决思路方法,点线相交、点面相交等原理都类似,可参考修改

目录

一、实现效果

二、实现过程

1.读取数据

2.线面相交并提取面

3.融合相交线的属性字段到面    

4.数据输出

5.模板的使用

三、总结    


今天介绍的是使用FME软件实现提取与线相交的面,即线面相交取面,同时在面的属性表中添加相交线的属性字段信息,便于掌握相交的是哪些线要素,为大家解决此类问题提供思路方法。反过来线面相交取线,原理也是一样的,包括点线相交、点面相交等原理都类似,参考修改即可。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板及示例数据下载链接。

一、实现效果

下面的图1、图2分别为源数据、成果数据,可以看到成功将与线相交的面提取了出来,同时将相交线的属性字段信息,提取到面属性表中,便于了解面与哪些线相交。

图片

图1 源数据    

图片

图2 成果数据

二、实现过程

1.读取数据

这里以shapefile格式的数据作为示例,使用shapefile读模块将线、面数据分别读取进来。如果是其他格式的数据,那么使用相应数据格式的读模块进行读取即可,如下图所示。   

图片

图3 读取数据

2.线面相交并提取面

在读取数据后,将线、面数据进行相交处理,并分离出与线相交的面数据,如下图所示。

图片

图4 线面相交并提取面

3.融合相交线的属性字段到面    

对与线相交的面进行线属性字段融合处理,因为可能存一个面与多个线相交,所以针对需要输出到面属性表中的线属性字段信息以顿号分隔进行融合拼接,这样面相交的线有哪些便一目了然,如下图所示。

图片

图5 融合相交线的属性字段到面

4.数据输出

到这里已经完成了线面相交取面操作,并且将相交的线属性字段提取到了面上,接下来使用shapefile写模块输出数据即可。当然也可以根据自己需要的数据格式,选择使用相应的写模块输出数据,如下图所示。   

图片

图6 数据输出

5.模板的使用

在使用模板时,选择面shape路径、线shape路径、输出目录等参数,然后点击运行即可,如下图所示。

图片

7 运行选项


☛ FME系列视频教程推荐 ☚



频讲解及模板下载☛ :【视频教程】10.提取与线相交的面,即线面相交取面


        

三、总结    

本案例介绍了使用FME软件以提取与线相交的面,即线面相交取面为例,介绍几何要素之间,通过空间相交判断提取数据的实现方法。在提取到目标数据后,为了便于掌握提取到数据是与哪些几何要素相交,我们可以在进行空间相交判断的同时将一些标志性字段信息(编号、标识码、名称等)添加到被提取几何要素属性表中。例如在本案例中就是将线图层中的“DM”字段信息提取到面图层属性表中,这样我们打开面图层一看,就知道这个面是因为与哪些线相交而被提取出来的。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板及示例数据下载链接。

在本案例中我们是根据线来提取面,其实各种类型几何相交提取数据的原理都相似,比如以面提取线、以点提取面、以面提取点、以点提取线、以线提取点等等,都可以按照本案例的思路来编写模板进行提取。因此这里是通过以点带面的形式,给大家介绍了几何间进行相交提取数据的方法。

图片

8 总体流程      


☟ 往期推荐 ☟


<think>嗯,用户想用FME实现CASS数据入库,我得先理清楚CASS数据的特和入库的常见问题。CASS数据通常是CAD格式的,比如DWG,可能包含地形、地籍等信息,还有属性需要保留。用户提到之前用ArcGIS转换CAD到GIS时会丢失属性,所以FME可能在这方有优势。 首先,我需要回忆FME处理CAD数据的常用转换器。比如,CoordinateSystemSetter设置坐标系,AttributeManager管理属性,GeometryFilter分类几何类型,还有数据库写入器。可能需要分步骤处理:数据读、坐标系处理、几何属性分离、数据清洗、结构映射,最后写入数据库。 然后,要注意CASS数据中的块参照或注记,可能需要用特定的转换器如BlockDecomposer来分解。属性保留是关键,用户之前用ArcGIS转换丢失属性,所以FME里要确保属性正确提取和映射。可能还需要处理编码问题,比如GBK到UTF-8,特别是中文环境。 还要考虑数据库表结构设计,是否需要在FME中动态创建表或者提前建好。数据验证步骤也很重要,比如几何有效性检查,避免导入无效数据导致问题。另外,性能优化方,比如并行处理或者批量操作,可能对大数据量有帮助。 用户提供的引用里提到FME的坐标系操作和CAD-GIS转换保留属性,所以应该参考这些方法。可能需要将DWG中的元素分类,点线分别处理,属性字段对应数据库表中的列。最后生成工作流模板,方便重复使用,同时记录转换规则和日志,便于排查问题。 可能用户还需要具体的示例或教程链接,但根据现有引用,可以建议他们查看FME的坐标系操作教程和要素转CAD的相关内容,结合CASS数据的特进行调整。总之,步骤要清晰,确保每个环节都处理到位,属性不丢失,数据准确入库。</think>### 分步解答:使用FME实现CASS数据入库 #### **步骤1:数据准备** - **加载CASS数据**:使用`DWG/DXF Reader`读CASS生成的DWG文件,支持自动解析CAD图层、块、注记等要素。 - **坐标系确认**:若数据未定义坐标系,通过`CoordinateSystemSetter`指定为$Xian80$或$CGCS2000$(根据项目要求)[^1]。 #### **步骤2:几何属性分离** - **几何类型过滤**:使用`GeometryFilter`将CAD要素分类为线,例如: - :控制、独立符号 - 线:等高线、道路边线 - :房屋轮廓、地类界 - **属性提取**:通过`AttributeExploder`分解CAD扩展属性,将注记内容(如地物编码、高程值)转换为GIS属性字段。 #### **步骤3:数据结构映射** - **字段重命名**:使用`AttributeManager`将CAD字段名(如`TEXT_VALUE`)映射为目标数据库字段(如`ELEVATION`)。 - **编码转换**:若数据库采用UTF-8编码,使用`StringEncoder`将CAD中GBK编码的注记转换为目标编码。 #### **步骤4:空间数据入库** - **数据库连接**:配置`PostGIS/ArcSDE Writer`连接参数,设置坐标系数据一致。 - **分层写入**:按几何类型分表存储(如`point_features`, `line_features`),通过`FeatureTypeFilter`定向写入。 #### **步骤5:数据验证优化** - **几何检查**:添加`GeometryValidator`过滤自相交、零长度线等非法几何。 - **事务处理**:设置批量(如每1000条一次),避免内存溢出。 ```python # FME工作台伪代码示例 with fme_workspace(): reader = DWGReader('input.dwg', expose_attributes=['*']) coords_setter = CoordinateSystemSetter('EPSG:4547') geom_filter = GeometryFilter(group_by=['geometry_type']) attr_processor = AttributeManager(mappings={'TEXT_VALUE': 'elevation'}) writer = PostGISWriter('host=localhost dbname=gis', table_schema='cass_data') pipeline = reader >> coords_setter >> geom_filter >> attr_processor >> writer pipeline.run() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GIS工具开发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值