FME之读取文件名路径FilenamePartExtractor转换器

本文介绍了如何在读取文件时利用FilenamePartExtractor转换器提取文件路径及其组成部分,如文件夹路径、完整文件名等,并在输出文件时展示其在FME中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在读取文件所在路径及相关信息时,我们除了在读模块时选择Directory and File Pathnames数据类型。还可以选择在某个阶段使用FilenamePartExtractor转换器来读取文件所在路径及相关信息。

在前面转换器只要暴露有fme_dataset,在源文件名选择它即可实现。

根据官方帮助文件,

例如,路经

C:\WINNT\Profiles\user\Desktop\roads.shp

会按如下方式提取:

文件夹路径    C:\WINNT\Profiles\user\Desktop\
完整文件名    roads.shp
根文件名    roads
文件扩展名    shp
文件夹名称    Desktop

在输出文件时,这个转换器很有效。

<think>好的,用户想用FME批量读取带有扩展属性的CAD数据并导入数据库。首先,我需要回顾一下FME处理CAD数据的常用方法。FME支持多种CAD格式,比如DWG、DXF,通常使用Autodesk AutoCAD DWG/DXF Reader来读取数据。 接下来,用户提到要处理扩展属性。CAD中的扩展属性可能存储在块属性、扩展实体数据(XData)或对象数据中。需要确认用户的数据具体存储在哪里,可能需要使用Feature Information工具查看数据结构。 然后,批量读取意味着需要处理多个CAD文件。FME的工作空间可以通过设置源路径为目录,并启用“递归搜索子目录”来处理多个文件。同时,可能需要使用文件名作为属性来区分不同文件的数据。 导入数据库的步骤需要考虑目标数据库类型,如PostgreSQL、MySQL或SQL Server。需要使用对应的数据库写入器,并确保字段映射正确。扩展属性可能需要属性重命名或结构转换,比如使用AttributeManager或AttributeExposer。 另外,处理几何数据时,可能需要检查坐标系是否正确,确保与数据库中的空间参考一致。数据转换过程中可能会遇到复杂实体(如多行文本、块参照),需要使用几何过滤器分解或保留特定类型。 最后,测试工作流程时,建议先用少量数据验证,确保扩展属性正确读取和映射。可能还需要处理错误数据,比如无效几何体,使用GeometryValidator进行清理。 用户可能遇到的问题包括扩展属性未正确提取、字段类型不匹配、批量处理效率等。建议在FME Workbench中使用日志和Inspector转换器调试数据流,确保每一步都符合预期。</think>### 使用FME批量读取CAD扩展属性并导入数据库的方法 #### **步骤1:准备FME工作流框架** 1. 打开FME Workbench,新建工作空间。 2. 添加**Autodesk AutoCAD DWG/DXF Reader**作为数据源,选择包含扩展属性的CAD文件或文件夹[^1]。 3. 勾选“递归搜索子目录”选项以批量读取子文件夹中的文件[^2]。 #### **步骤2:提取扩展属性** 1. 在Reader参数中启用**Read Extended Entity Data**(针对XData)或**Explode Blocks into Attributes**(针对块属性)[^3]。 2. 使用**AttributeExposer**转换器显式暴露扩展属性字段(例如`autocad_xdata`或`attribute_text`)。 3. 通过**TestFilter**或**AttributeFilter**分离带扩展属性的实体(如标注、块参照)。 #### **步骤3:数据结构映射** 1. 添加**AttributeManager**转换器,将CAD属性(如图层名、颜色)与数据库字段对应。 2. 对嵌套的扩展属性(JSON/XData结构)使用**JSONFragmenter**或**AttributeSplitter**解析为独立字段[^4]。 3. 通过**GeometryExtractor**转换器保留空间几何信息(如WKT格式)。 #### **步骤4:写入目标数据库** 1. 添加数据库写入器(如PostGIS、Oracle Spatial),定义表结构与字段类型。 2. 设置几何字段映射参数(坐标系、几何类型)。 3. 启用**Bulk Insert**模式提升批量写入效率[^5]。 #### **关键代码示例(FME格式)** ```python # 在Workbench自动生成的转换器链中,核心参数设置: READER_PARAMETERS "AUTOCAD_READER" DEF LINE LAYER_DEF line ATTRIBUTE_EXPOSURE_MODE "expose_xdata" XDATA_HANDLING "flatten" WRITER_PARAMETERS "POSTGIS_WRITER" DEF TABLE cad_features GEOMETRY_COLUMN "geom" FIELD_DEFS "file_name" CHARACTER(255), "xdata_property1" FLOAT ``` #### **调试与验证** 1. 使用**Inspector**转换器预览属性表和几何图形。 2. 通过**Logger**记录未映射的扩展属性字段。 3. 对几何错误(如无效多边形)添加**GeometryValidator**清理流程[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值