主题:“定制变压器”中的问题 https://knowledge.亚搏在线safe.com/questions/topics/single/142.html网站 “自定义变压器”主题的最新问题 FME能处理和未知的属性集吗? https://knowledge.亚搏在线safe.com/questions/86878/can-fme-handle-and-unknown-set-of-attributes.html

为了简化这个问题,我的短期目标是构建一个简单的模块,它检查来自转换器或读卡器的每个属性,并返回每个属性的空值百分比(与记录总数相比)。


例如:


输入:

属性1

属性2

属性3

属性4


输出:

属性1

属性1空计数

属性2

属性2空计数

属性3

属性3空计数

或者类似的…


再一次,为了澄清,我们不知道属性名,也不知道有多少属性。


理想的,我会建造一个定制变压器,它接受未知数量的属性并执行此计算/处理。

然而,自定义转换器要求输入属性是静态的。


从我所做的所有研究中,我都想不出任何方法来实现这一点。


我想到了一个变形金刚,它将所有属性组合成一个属性,然后它们就可以被分离,但似乎什么都不存在。


我愿意接受任何建议,即使在使用FMEServer方面,发布的参数,无论需要什么,除了理想情况下避免使用python之外,因为其他人可以重用此模块,从而避免版本控制问题。

这是我要生成的许多数据质量检查模块中的第一步,因此我的主要目标是找到一种动态接受未知属性集的方法,进行计算,并用一些额外的计算值返回它们的原始状态。


当做,


戴夫

变压器 FME服务器 列表 自定义变压器 结婚,2019年2月13日15:10:25格林尼治标准时间 大卫·贝诺特
使用自定义变压器的并行处理 https://knowledge.亚搏在线safe.com/articles/86723/parallel-processing-using-custom-transformers.html(https://knowledge.safe.com/articles/86723/parallel-processing-using-custom

并行处理是对多个进程的工作划分。现代计算机有多个CPU核心,在这些核心上分散工作可以充分利用可用的计算能力。

FME中的并行处理是指FME引擎将其工作划分为多个工作进程。工作区作者决定何时使用并行处理以及应该创建多少个进程。然后操作系统决定如何将资源分配给这些进程。


并行处理和定制变压器

FME中的并行处理应用于定制变压器。(在2019年以后的FME中,请它现在是找到并行处理选项的唯一地方)。本质上,通过自定义转换器的每一组功能,在单独的过程中进行。当数据退出自定义转换器时,它会重新组合成一个组。

因为自定义转换器被视为处理任务的一个单元,它包含的各个变压器都包含在每个并联过程中。这允许作者在一个设置中设置多个要并行处理的变压器。它还将所需流程的数量降至最低,因此,启动和停止进程的开销更少,来回传递数据。

并行处理的定义是,请然而,有些变压器是基于特性的,不基于组,因此不适合并行处理。然而,自定义转换器充当基于组的包装器,提供了一种基于特征的变压器并行处理的方法。


设置并行处理

FME中的每个并行过程都使用自己的数据组,其中该组由属性定义。首先,必须在自定义转换器定义的导航器窗口中选择并行处理级别:


之后,使用Transformer的参数对话框选择要分组的属性:


这里,用户使用ZoneCategory属性定义组进行并行处理。


下载

将工作区作为模板启动

作为模板完成工作区


例子

以下步骤是如何在自定义转换器上使用并行处理的示例。

1.启动FME Workbench并打开附加的工作区模板:



工作区正在读取一组公园(空间)数据。它使用neighhoodName作为分组参数来计算每个公园(区域计算器和统计计算器)的平均大小。这将创建每个社区的平均公园大小。

然后工作空间将相邻的公园多边形分解在一起,稍微缓冲一下,以确保相邻的公园合并。第二个缓冲区缩小了公园的大小。

这里可以并行处理,其中每个邻域都作为一个单独的过程进行处理。这是因为所有基于组的变压器(统计计算器和分解器)都使用相同的组。

其他变压器是基于特性的,因此分组并不重要。


2.第2条。选择画布上的所有五个变压器(不包括任何检测变压器)。按ctrl+t(或从菜单栏中选择“变压器>创建自定义变压器”)。

当提示时,输入一个简单的名称,如ParkProcessor…


然后单击“确定”关闭对话框并创建自定义转换器。


三。在自定义转换器定义(活动选项卡应标记为ParkProcessor)中,浏览导航器窗口以查找并行处理参数。在变压器参数下。

双击参数,选择“中等”作为处理级别:


单击“确定”,将打开并行处理。


第四章。返回主画布(活动选项卡为主)。单击齿轮按钮打开ParkProcessor Transformer的参数对话框。在group by参数中选择neighhoodName作为并行处理的属性:

现在,跑步时,自定义转换器将为每个邻居创建单独的进程。多个进程将并行运行(中等处理,每个CPU内核一个)。


5.注意到,在工作区和上面的屏幕截图中,已经有了neighhoodName的参数。

回想一下,FME会自动发布自定义转换器中使用的所有属性。这使得变压器可以在多个地方使用,其中(在本例中)“neighhoodName”可能不可用。因此,当创建自定义转换器时,FME会自动生成第一个发布的参数,第二次激活并行处理。

我们两者都需要吗?好,这取决于邻居名称的使用位置。可以删除Group By参数中对它的任何引用,因为整个自定义转换器现在是一个大组。

让我们把这些参考资料整理一下。返回自定义转换器定义。

打开StatisticsCalculator参数对话框,然后取消设置分组依据,取消选择邻居名称。对溶解变压器重复此过程:


检查AreaCalculator和BuffererTransformer中neighhoodName属性的其他用途。没有用,我们可以删除提示输入该属性的用户参数。为此,打开输入端口的参数对话框,取消选中邻居名称:


这告诉FME变压器中不再需要该属性(并行处理除外)。并且可以删除用户参数提示。


6.检查自定义转换器的参数对话框。运行工作区。输出与之前相同,但是,有了并行进程,运行速度可能会快得多。

最后一点有趣的是:虽然基于特征的变压器没有组来并行处理,它们仍然是并行处理的。这是另一种提高性能的方法。

自定义变压器 并行处理 周一,2019年2月11日格林威治标准时间17:05:54 标记2安全亚搏在线
分线器FME 2018 https://knowledge.亚搏在线safe.com/questions/86563/linedivider-fme-2018.html网站

你好,

我使用一个FME服务器2016来运行不同的工作台。为了更新FME服务器2018,我必须升级这些工作台,也一样。在一个工作台中,我使用来自三岛岛的定制变压器分线器。

升级后我有问题,升级工作台的输出小于旧工作台的输出。

旧输出

新输出

尤其是蟒蛇有另一种输出。但是旧的和新的工作台应该有相同的大小。

有人知道蟒蛇的哪些部位发生了变化吗?


谢谢,祝你好运


巨嘴鸟 故障模式与影响分析 自定义变压器 清华大学,2019年2月7日12:45:25格林尼治标准时间 乔·格纳
循环中的动态发布参数 https://knowledge.亚搏在线safe.com/questions/85230/dynamic-publish-parameter-in-loop.html(https://knowledge.safe.com/questions/85230/dynamic-publish-parameter-in-

你好,

我想通过追踪路线找到物体。

但有时由于分支的存在,有多条路径,为了不进入无休止的循环,我需要保存已经使用的段的ID。

我找不到在循环中临时保存属性值的解决方案,所以我创建了一个列表(以所有相关ID的形式,逗号分隔)对于使用ID的段的每次迭代,应该删除列表中的ID。

因为这个列表对每个功能都很重要,我需要一个(发布的)参数,这是动态的。我该怎么做?

谢谢,


基奥

自定义变压器 参数 迭代 周五,2019年1月11日格林威治标准时间15:03:53 基奥
使用fme.macrovalue的python自定义转换器错误 https://knowledge.亚搏在线safe.com/questions/85056/python-custom-transformer-bug-using-fmemacrovalue.html

我试图用一个查看公共参数的python脚本编写一个自定义转换器。

有很多尝试和错误正在发生,但我认为我正在做它应该现在。


这有助于我开始:

https://knowledge.亚搏在线safe.com/questions/44873/getting-published-parameters-from-within-a-python.html(https://knowledge.safe.com/questions/44873/getting-published-parameters-


如果公共参数设置为固定值或设置为特征属性值,则转换器工作。但是当有两个自定义转换器的实例时,它会先查看开始的内容。所以第二个变压器使用第一个变压器的固定值。


自定义_transformer_name='multinstancebug'参数_name='codelength'实例_name=fme_macrovalues[自定义_transformer_name+'_workspace_name']mv_codelength=fme_macrovalues[实例_name+''+参数_name]如果mv_codelength[0:6]='@value':codelength=int(feature.performmfunction(mv_codelength))elif mv_codelength[0:6]='@eval':codelength=int(feature.performfunction(mv_codelength))elif mv_codelength!='':codelength=int(mv_codelength)否则:codelength=0logger.logmessagestring('codelength:'+str(codelength),fmeobjects.fme_inform)


这会产生意想不到的结果,我现在看到的唯一解决方法是使用attributeCreator和attributeRemover首先将值写入功能。


请参见我创建的工作台:多实例错误.fmwt



蟒蛇 巨嘴鸟 自定义变压器 私有参数 结婚,2019年1月9日13:42:42格林尼治标准时间 杰克鲁达
自定义转换器传播的属性多于所需的属性 https://knowledge.亚搏在线safe.com/questions/84019/custom-transformer-propagating-more-attributes-tha.html(https://knowledge.safe.com/questions/84019/custom-transformer-propagating

我定义了一个自定义转换器,它输出的属性比我想要的多。我只想输出这两个属性(network_id和lower_network_id):


但是在主工作台中使用它时,它还从原始输入功能输出属性:


我认为这是因为它们自动向前传播所有源属性,但我想避免这种情况,我只想要两栏的单子。我怎样才能做到这一点?

自定义变压器 太阳,2018年12月9日12:00:51格林威治标准时间 伊博酯
是否可以在读取更多源数据之前强制完成自定义转换器的执行? https://knowledge.亚搏在线safe.com/questions/82627/is-it-possible-to-force-finish-execution-of-custom.html

我有一个工作台,它运行许多几何交叉任务和许多源数据集,并将结果写入数据库。我把不同的任务分为自定义变形金刚,而且大多数源数据集只进入一个自定义转换器,不需要在其他任何地方使用。我的问题是,一旦在其中一个定制的转换器中实现了基于组的转换器(主要是功能合并和聚合器)。加载了更多的源数据,一旦交叉点任务开始,工作台就会耗尽内存。

是否可以配置FME工作台,使其仅读取与一个自定义变压器相关的数据,并强制其在为另一个自定义变压器加载更多源数据之前完成?
读者 自定义变压器 执行令 清华大学,2018年11月15日15:11:55格林尼治标准时间 托罗斯曼
在循环中创建名为计数器号的属性 https://knowledge.亚搏在线safe.com/questions/82004/create-attribute-in-loop-with-counter.html(https://knowledge.safe.com/questions/82004/create-attribute-in-loop-with-

我尝试在一个循环中根据数量x创建多个属性。如果x=3,则创建的属性应为footo_doc、footo_doc2和footo_doc3。

在下面的示例中,我有一个带有循环的工作流程,但是属性创建者不能正确地使用@value(attribute_name)选项。此流中是否缺少某些内容,或者在循环期间无法使用属性值来命名属性?

循环测试

自定义变压器 属性 循环 属性创建器 结婚,2018年11月7日13:57:01格林威治标准时间 杰鲁恩
如何将已发布的参数传递到自定义转换器中 https://knowledge.亚搏在线safe.com/questions/80364/how-to-pass-a-published-parameter-into-a-custom-tr.html

如何将工作区中发布的参数传递到同一工作区中的自定义转换器中?我认为您可以将一个已发布的参数传递到一个属性中,然后在自定义转换器中使该属性可用,只是想知道是否有一个简单的清洁方法?

已发布参数 自定义变压器 周五,2018年10月12日10:17:40格林尼治标准时间 萨奇巴敏
在FME服务器的工作区中缺少链接的自定义转换器 https://knowledge.亚搏在线safe.com/questions/79540/missing-linked-transformer-in-workspace-within-the.html

你好


当我在ProdFME服务器中打开工作区时,我看到这个丢失的链接自定义转换器错误。但此转换器已存在于SharedResources文件夹中。我试图添加工作区和其他选项,但是无法添加自定义转换器。

我还有上次保存的信息。我们没有升级FME版本。此错误之前和发生此错误时的版本相同。

last_save_build=“FME(R)2015.1.3.2(20160108-build 15575-win32)

请告知。提前谢谢。

标签@高桥,请@标记2安全亚搏在线,请@特伦特保险柜亚搏在线,请@达尼洛·费姆,请@大卫·R

FME服务器 自定义变压器 二千零一十五点一 坐,2018年9月29日06:58:19格林威治标准时间 故障模式与后果分析
Oracle NMS MP变压器 https://knowledge.亚搏在线safe.com/questions/79420/oracle-nms-mp-transformer.html网站

是否有Oracle NMS MP文件的读卡器?这似乎是小世界许可证中的一个选项,但找不到任何构造。是否有人知道或有一个变压器可以安装此文件类型?

https://knowledge.亚搏在线safe.com/articles/780/working-with-ge-smallworld-databases.html

@标记安全亚搏在线

自定义变压器 清华大学,2018年9月27日15:22:00格林尼治标准时间 凯文福克斯
自定义转换器未在转换过程中保留发布的参数 https://knowledge.亚搏在线safe.com/questions/79313/custom-transformer-not-retaining-published-paramete.html(https://knowledge.safe.com/questions/79313/custom-transformer-not-retaining

在自定义转换器中,我必须在几个地方使用已发布的参数。参数从主工作区传递。我用记录器检查了一下,发现这个值出现在自定义转换器工作流程的开头,但当继续进行时,它会被清除掉(我不知道是什么原因造成的,亚搏在线据我所知,发布的参数是只读的)。

已发布参数 自定义变压器 FME桌面2018 结婚,2018年9月26日08:35:47格林威治标准时间 亚历克斯·克里斯
自定义变压器回路中的分解器保持,直到所有记录通过 https://knowledge.亚搏在线safe.com/questions/76833/deaggregator-in-custom-transformer-loop-holding-un.html(https://knowledge.safe.com/questions/76833/deaggregator-in-custom-transfor

我有一个自定义变压器回路中的分解器变压器。当我运行工作区时,分解器保留所有特性,直到每一行通过循环。我想要一排通过整个定制回路变压器,一路上,在进入下一行之前。

自定义变压器 循环 解聚器 星期二,2018年8月21日19:47:11格林尼治标准时间 Preichart公司
是否在自定义python转换器的设置对话框中正确转义字符串属性值? https://knowledge.亚搏在线safe.com/questions/76606/properly-escaping-string-attribute-values-in-custo.html

你好。

我刚构建了一个自定义的基于python的转换器,它使用两个字符串属性值。

其中一个字符串有一些嵌入的引号(“),在提供给python代码之前被剥离了。

我试着用单引号交换引号,但这完全破坏了Python的执行。

在传递输入值之前,是否确实没有自动转义(进入Transformer设置对话框)?

我通过输入\“(反斜杠引号)代替“(引号)”成功地使它工作。但这真是个糟糕的工作。FME本身就应该自动完成这项工作。

干杯。

蟒蛇 自定义变压器 一串 格式化 周五,2018年8月17日09:41:01格林尼治标准时间 利法林2016
如何通过命令行安装带有静默FME命令的自定义转换器? https://knowledge.亚搏在线safe.com/questions/76097/how-can-i-install-by-command-line-a-custom-transfo.html

我用定制变形金刚来组织我的工作空间,其中一些可以在其他工作区中重用。现在我有11个自定义变压器,我和一个5人的团队合作,每个人都可以更新以创建新版本的变压器。我已经按照文档所述安装了它们在这里,请需要一段时间。如何通过命令行或其他方式以静默模式在Windows文件夹中安装所有变压器?

自定义变压器 FME桌面2017 FME服务器2017 链接自定义转换器 嵌入式变压器 清华大学,2018年8月9日20:49:55格林尼治标准时间 埃迪泽