免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1105|回复: 5
收起左侧

在 Workbench中提取和使用日志信息

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-5-28 15:16 | 显示全部楼层 |阅读模式

原文地址:

https://knowledge.safe.com/articles/849/how-to-extract-and-use-log-information-in-workbenc.html?smartspace=debugging-tips

一、下载二、使用Python FMELogFile 对象

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

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

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

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

  • FailTruncated工作空间中的Startup Python对每个日志文件搜索截断的DGN文件警告,找到后设置一个标记。
  • 所有DGN要素读取完成后, Creator转换器在流程结束时,创建一个新的要素,
  • 把新要素发送到PythonCaller,通过代码检查是否设置了中断标记。如果有标记,工作空间终止。
  • PythonCaller输出连接到NULL写模块,该写模块设置为与工作空间中的第一个写模块。
  • 第二个DGN写模块直到工作空间完成才进行写出,所以如果工作空间终止则不会有文件写出。

3.2 提取文件或表的元数据

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

  • 工作空间中的Startup Python使用正则表达式从读模块日志信息中提取Global Prigin和工作空间单位参数,并把它们存储到global列表中。
  • 每个DGN文件只读取一个要素(把读模块参数- Advanced - Max Features to Read 设置为 1)。
  • 使用FeatureHolder确保后续处理之前,读取了所有DGN文件。
  • PythonCaller使用multi_reader_id 通用属性把每个要素连接到它的元数据。这个属性包含了每个文件的读取顺序,并对应于元数据Python列表的索引。
  • 重命名属性,然后将要素写出到Excel


输出:

3.3 保存中间转换器的参数

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

  • CSV文件中读取数据并转换为矢量
  • 矢量发送到AffineWareper并用于转换虚拟点
  • 工作空间中的Startup Python使用正则表达式从AffineWarper日志信息中提取仿射变换参数
  • 仿射变换完成后,在进程后使用Creator_2 转换器创建一个新的要素
  • PythonCaller将仿射参数添加到要素,然后写入到CSV



本文转载来自CSDN作者:fmechina   版权归作者所有
原文链接:https://blog.csdn.net/fmechina/article/details/83411961?spm=1001.2014.3001.5501




4

主题

2621

铜板

19

好友

助理工程师

Rank: 5Rank: 5

积分
302

精华勋章宣传勋章

发表于 2021-5-30 16:48 | 显示全部楼层
看起来听不错的!
回复 支持 反对

使用道具 举报

0

主题

490

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
49
发表于 2021-11-30 15:03 | 显示全部楼层
学习一下mmmmmmmm
回复 支持 反对

使用道具 举报

0

主题

8078

铜板

2

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2212
发表于 2021-12-3 14:10 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

1万

铜板

3

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3270
发表于 2022-11-27 19:56 | 显示全部楼层
好资料,正在学习中....
回复 支持 反对

使用道具 举报

3

主题

2380

铜板

1

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
995
发表于 2023-3-20 09:46 | 显示全部楼层
谢谢楼主!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表