python显示dgn_在 Workbench中提取和使用日志信息

原标题:在 Workbench中提取和使用日志信息

·FailTruncated.fmw

·GetAffineParameters.fmwt

·DGNMetadata.fmwt

二、使用Python FMELogFile对象

在启动和关闭Python(位于Workbench中工作空间参数-Advanced中)中可以使用FMEObjectsPython API,与PythonCaller和PythonCreator 一样。其中一个可用的对象是FMELogFile,它提供了访问Workbench日志的功能。多数FMELogFile方法用于在日志中添加信息,但是setCallBack方法允许你发送所有日志信息的副本到你的函数中。这使你可以在创建日志信息时对其进行解析,并在允许时将这些消息中的信息传递给工作空间中的要素。

下面三个例子展示了在工作空间运行期间日志信息的一些可能的用途。

三、应用案例3.1促进对失败的警告

一个用户发现他的一些MicrostationDGN文件被中断。通常,FME遇到中断文件只会在日志中发布警告,但不会转换失败。用户希望截断的文件发生失败,以便与正确的文件区分开。

·FailTruncated工作空间中的Startup Python对每个日志文件搜索截断的DGN文件警告,找到后设置一个标记。

·所有DGN要素读取完成后, Creator转换器在流程结束时,创建一个新的要素,

·把新要素发送到PythonCaller,通过代码检查是否设置了中断标记。如果有标记,工作空间终止。

·PythonCaller输出连接到NULL写模块,该写模块设置为与工作空间中的第一个写模块。

·第二个DGN写模块直到工作空间完成才进行写出,所以如果工作空间终止则不会有文件写出。

3.2提取文件或表的元数据

Workbench读模块通常在日志中包括文件或表的元数据,但是不会把信息添加到从文件中读取的要素中。DGNMetadata示例从文件夹中的所有MicrostationDGN文件中提取GlobalOrigin,Master和Sub单元名称和比例,并将此信息输出到Excel文件。

·工作空间中的StartupPython使用正则表达式从读模块日志信息中提取GlobalPrigin和工作空间单位参数,并把它们存储到global列表中。

·每个DGN文件只读取一个要素(把读模块参数- Advanced- Max Features to Read 设置为1)。

·使用FeatureHolder确保后续处理之前,读取了所有DGN文件。

·PythonCaller使用multi_reader_id 通用属性把每个要素连接到它的元数据。这个属性包含了每个文件的读取顺序,并对应于元数据Python列表的索引。

·重命名属性,然后将要素写出到Excel。

输出:

3.3保存中间转换器的参数

AffineWarper转换器通过输入的控制矢量要素计算了一个最佳拟合的仿射变换,然后将它们应用到observed端口的要素中并输出。计算的参数在日志中被记录,但是没有存储在转换的要素上。GetAffineParameters示例提取这些参数到CSV文件中供选择使用。

·从CSV文件中读取数据并转换为矢量

·矢量发送到AffineWareper并用于转换虚拟点

·工作空间中的StartupPython使用正则表达式从AffineWarper日志信息中提取仿射变换参数

·仿射变换完成后,在进程后使用Creator_2转换器创建一个新的要素

·PythonCaller将仿射参数添加到要素,然后写入到CSV中

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值