斯潘8
斯潘4
我希望能够将一个特性分成更小的块,并逐个处理它们
我已经设法使用modulocounter来分离这个特性,但是我不确定如何让工作区的其余部分按1比1处理被分解的特性。
如果我将所有输出发送到pythoncaller,它们将同时执行。
有什么想法吗?
您好!阿什特布鲁克
感谢您提供更多信息。我认为下面的pythoncode可以让您在不使用modulocounter的情况下解决这个问题:
代码的作用是计算已经输入了多少功能,当这个计数超过某个数字时(在我的例子中是5个)。它将导出包含JSON的特性。
import fmeimport fmeobjectsClass featureProcessor(object):在第一个功能输入def之前初始化一些变量\uu init_uuuu(self):self.nbFeaturesProcessed=0 self.json=“”每次功能输入pythonCaller def输入(self,feature):self.json+=“'crea时都会执行此代码。操作,.format(feature.getattribute(123; instance'))self.nbFeaturesProcessed+=1检查是否已经处理了5个功能p.s.如果self.nbFeaturesProcessed>=5:self.export()在最后一个功能输入def close(self)后调用此方法,则可以从数字10 0000;)中生成参数:如果添加了某些功能,但数量小于5,#如果self.nbFeaturesProcessed>0:self.export()方法被调用以导出创建的json def export(self):通过删除最后一个逗号并在json=“”结尾添加花括号来完成json文件。格式(SEL.JSON [:- 1 ],'')创建一个只有一个属性的新功能,该属性包含json new feature=fmeobjects.fmefeature()new feature.setattribute('json',json)self.pyoutput(newfeature)重置变量以重新启动self.nbFeaturesProcessed=0 self.json=“”
我只是在创建者中创建了10个功能,正如你所看到的,它们组合成两组,每组包含5个功能。
如果你还有问题的话。请问!
a)您应该能够修改python代码来单独处理特性——发布代码,或者至少伪结构会有帮助。
b)如果你想要1乘1,最好用计数器而不是模计数器。
c)可以在自定义转换器中包装pythoncaller,并将parallel process group by设置为唯一的id属性(有或没有实际的并行处理)。
还有,attributerangefilter在做什么?
?2019安全亚搏在线软件公司|合法的