FME实现CAD带属性转SHP数据方法
已有数据:某地区标准分幅的dwg格式地形图,高程点所在图层为TER,几千幅,在同一个文件夹下。
需求:从所有地形图中提取高程点图层,边转换为GIS格式。
处理过程:
1.数据查看。
在FME Data Inspector软件中查看分幅cad数据,对高程点数进行查看。
高程点数据在cad中样式如下:
为一个空心圆圈,在FME中,表示为autocad_ellipse,autocad_hash两种图形类型,经过测试,只需要转换其中一个即可。
另外,上述两种类型,转换到gis中为polygon,需要使用FME将面转换为点。
高程点所在图层为 TER,cass中编码为 202101
之前处理遇到的高程属性一般写在 autocad_elevation属性中,但是本数据集,很多该属性为null。后发现,高程写在height属性中
上述属性会在接下来的提取中使用。
2.数据处理与转换 FME Workbench
1.添加Reader
格式选择dwg格式,数据集选择右侧+号,
在弹出的界面中选择需要添加到转换中的数据集,选择文件夹下所有的dwg文件即可。点击确定,
在弹出的界面中选择图层 TER,其他图层取消选择。
点击确定,Reader添加成功。
2.暴漏dwg文件属性
双击reader,在弹出的属性窗中选择 Format Attributes,检索中输入 extended,找到如下属性,勾选,即可暴漏该格式属性。
按照同样的方式,勾选 autocad_elevation,autocad_entity,fme_attrib_info{}.height属性。
点击OK,之前勾选的属性即可暴漏出来。此时reader如下图所示
3.要素筛选
由于TER图层中包含大量的地形要素,本次只需筛选出高程点要素即可。使用转换器Tester对数据进行筛选。
(1)添加Tester转换器
在工作台空白处输入test,弹出的下拉框中选择 Tester转换器,即可将转换器添加至工作台中。
(2)配置连接
(3)配置筛选条件
双击Tester转换器,左侧选择 属性 autocad_extended_data{0}.string{0},
Operator选择 =,
Right Value设置为 202101
点击确定,即可完成筛选器配置。
4.面转点
(1)添加 CenterPointReplacer转换器
在空白处输入center,选择 CenterPointReplacer转换器。
(2)配置连接
注意,筛选器中选择Passed输入至面转点转换器
5.添加writer
菜单栏添加Writer,选择File Geodatabase,配置存储数据集位置。
点击确定后,在Allowed Geometries属性中选择geodb_point
在user attributes选项卡中添加如下属性
点击确定即可添加。
配置连接,最终如下图
6.执行转换
点击工具栏按钮
等待执行完成