您好, p>
首先,你应该切割之前和粘贴它连接你输入和输出变压器端口。如果将它们连接起来,你就会有一个更好的工厂。 p>
您也可以看看工厂文档,以获取有关TeeFactory一些线索。 p>
在下面的图片,我连一个创建者的输入端口和一个检查至输出之一。 p>
现在对TeeFactory输入和输出上的ChoppingFactory(1和2)。 p>
还要注意的是所述TeeFactory的输出端(3)连接到所述ChopperFactory的输入端(4)。 p>
我的理解是,TeeFactory创建_remnant属性中包含“否”作为缺省值,而且ChoppingFactory将设置它为 “yes”,如果需要的话。 p>
p>
您现在有三个选项,这个代码在PythonCaller整合 p>
此Python代码演示选项3.注意,由于ChopperFactory没有阻止,我可以回读切碎的特点。后右推动用于处理,而不是具有在阻断工厂等SpatialRelator的情况下的接近方法来等待一个 p>
进口FME进口fmeobjects#模板类接口:类FeatureProcessor(对象)的:def __init __(self): #Initialize the pipeline strFactory1 = """FACTORY_DEF * TeeFactory \ FACTORY_NAME Chopper_catcher \ INPUT FEATURE_TYPE Creator_2_CREATED \ OUTPUT FEATURE_TYPE __chopper_input__ \ _remnant no""" strFactory2 = """FACTORY_DEF * ChoppingFactory \ FACTORY_NAME Chopper \ INPUT FEATURE_TYPE __chopper_input__ \ MODE VERTEX \ MAX_VERTICES 2 \ REMNANT_ATTRIBUTE _remnant \ CHOP_POLYGONS \ OUTPUT CHOPPED FEATURE_TYPE Chopper_OUTPUT \ _chopped yes \ OUTPUT UNTOUCHED FEATURE_TYPE Chopper_OUTPUT \ _chopped no""" self.pipeline = fmeobjects.FMEFactoryPipeline("MyFactory") self.pipeline.addFactory(strFactory1) self.pipeline.addFactory(strFactory2) def input(self,feature): #Push features in the pipeline feature.setFeatureType("Creator_2_CREATED") self.pipeline.processFeature(feature) tmpFeature = self.pipeline.getOutputFeature() while tmpFeature != None: self.pyoutput(tmpFeature) tmpFeature = self.pipeline.getOutputFeature() def close(self): pass
Regards,
Larry
哇,这是有趣的! p>
我只是想实现这个自己,但使用的砍刀。然而,我注意到有两个工厂都堪称砍刀变压器。 p> <前> DEFAULT_MACRO WB_CURRENT_CONTEXT#------------------------------------------------------------------------- FACTORY_DEF * TeeFactory \FACTORY_NAME Chopper_catcher \输出FEATURE_TYPE __chopper_input__ \ “_remnant” 没有FACTORY_DEF * ChoppingFactory \ FACTORY_NAME砍刀\ INPUT FEATURE_TYPE __chopper_input__ \ MODE VERTEX \ REMNANT_ATTRIBUTE “_remnant” \ CHOP_POLYGONS \ GRID_POLYGONS PRE>点击
拉里,你在乎拟订我怎么能实现这个使用Python? p>
我与TeeFactory挣扎因为似乎有一个输入它不。我要这个工厂添加到管道?这是如何运作的? p>
感谢您的回答! P>
你好Dries,