span8
span4
在本教程中,我们将把表示交通信号的DWG文件转换为Esri shapefile (SHP)。信号以块的形式存储在DWG文件中,并且有一个包含信号ID的文本实体。我们的目标是:
这种转换强调了在FME中使用AutoCAD块实体的一种方式:当转换为不存储此类复杂实体或不需要在输出中使用单个几何图形的格式时,不使用爆炸块(保留它们的插入点)效果很好。
本教程中使用的数据来源于温哥华的城市不列颠哥伦比亚省。它包含在开放政府许可下的信息-温哥华。
在下面的图像中,我们可以看到DWG文件中的一个交通信号示例。交通信号以块的形式存储。
除了这个块之外,还有一个文本标签表示信号的ID。它不包含在块中,而是与块一起存储在TrafficSignals层中。
让我们看看FME是如何处理这些数据的,方法是在FME数据检查器中查看DWG文件,并使用reader参数将块爆炸为实体检查:
FME读取了块的“插入点”,它表示块的位置(用蓝色表示)。注意,红色的点表示文本插入点,这是不同的。蓝色插入点将被转换为SHP文件。表示信号id的文本也存储在traffic信号层,并使用NeighborFinder transformer移动到插入点。
1)启动工作台,在空白工作区中添加AutoCAD DWG/DXF Reader。
在添加阅读器对话框中,为阅读器选择AutoCAD DWG/DXF,并选择交通信号。数据集的dwg文件。
单击Parameters按钮。
确保' Group Entities By '被设置为' Layer Name '。
我们想保持块作为一个单一的实体(点),所以不要爆炸的块在阅读器参数:
单击OK两次。
我们只需要交通信号的特征类型,所以在选择特征类型对话框中取消选择“0”特征类型。
2)公开autocad_text_string
在参数编辑器窗口中单击打开交通信号阅读器特性类型。单击Format Attributes选项卡。检查autocad_text_string。单击Apply。稍后我们将使用这个属性。
3)添加GeometryFilter
在参数编辑器窗口中单击GeometryFilter转换器,打开它。通过在“几何类型筛选”下选择“点”和“文本”,将点(表示块插入点)与文本(表示信号ID)分开。这将为NeighborFinder准备数据。
4)添加NeighborFinder
将这些点从GeometryFilter连接到NeighborFinder的基本端口。将GeometryFilter的文本输出连接到候选端口。
在“参数编辑器”窗口中单击NeighborFinder transformer,打开它。设置最大距离为5(使用数据检查器中的测量工具来确认这是一个可以使用的好数字)。单击Apply。
5)添加AttributeRenamer
将autocad_text_string重命名为SignalID。
添加一个Esri Shapefile写入器
从“作家”菜单中选择“添加作家”。
添加一个Esri Shapefile写入器。为数据集选择一个位置。在Shapefile定义下拉菜单中,选择Manual。单击OK。
7)将AttributeRenamer的输出端口连接到写入器
打开写入器参数对话框。选择“用户属性”选项卡。添加在AttributeRenamer (SignalID)中创建的属性。单击Apply。
8)运行工作空间,检查输出数据
现在您将在属性表中看到将文本标签作为属性的单点。
DWG文本标签作为数据检查器中的SHP属性。
©2019安全亚搏在线软件公司法律