span8
span4
你好,
我试图找到一个能够创建新属性的转换器,根据来自多个不同属性的值检查数据的不同条件,然后在这些条件为真时添加新创建的属性的值。类似于“总分属性”。
我将while放在大写字母中,因为对于属性creator,只有“if”语句。我不是一个程序员,但是我知道对于if语句,只要一个为真,脚本就会停止。这似乎就是我一直使用的属性creator transformer所发生的情况。当然,我也可能是错的。就像我说的,我不是一个程序员。
然而,我不想那样。我希望程序继续检查所有的条件,并添加到“分数属性”。怎么做呢?
基本上是这样的:
如果/while attribute1 >= 10,则向新的总分属性添加1
如果/while属性1 < 10,则将2添加到新的总分属性中
如果while属性2= yes,则将3添加到新的总分属性中
如果/while属性4缺失,则将4添加到新的总分中
等
当要公开的属性是FinalScore时,Python调用者会回答:
进口fme进口fmeobjects类FeatureProcessor(对象):def __init__(自我):通过def输入(自我,特性):#得到你所有的属性attribute1 = feature.getAttribute (“attribute1”) attribute2 = feature.getAttribute (“attribute2”) attribute3 = feature.getAttribute (“attribute3”) attribute4 = feature.getAttribute (attribute4) #创建finalScore finalScore = 0 #如果/当attribute1 > = 10,加1新总分属性如果attribute1 > = 10:finalScore = finalScore + 1 #如果/当属性1 < 10,添加2其他新的总分属性:finalScore = finalScore + 2 #如果虽然属性2 =是的,新总分加3如果attribute2 = = " yes "属性:finalScore = finalScore 4 + 3 #如果/当属性缺失,加上4新总分如果不是attribute4: finalScore = finalScore + 4的功能。setAttribute('FinalScore', FinalScore) self.pyoutput(feature) def close(self): pass
如果yes为true或1,您可能会觉得很有趣,但是这是在FME中学习python的一个很好的方法
通过If else或者If elif else的组合,你可以做任何你喜欢的事情。
如果attribute1小于5?如果attribute1 < 5: finalScore = finalScore + 1 #如果不是,它是否小于10?的elif ATTRIBUTE1 <10:finalScore = finalScore + 2#如果假两个语句然后这样做别的代替:finalScore = finalScore + 3
这可能是更容易做到这一点的两个步骤。
如果我理解正确的话这一点,你有几个属性的要素,要根据这些属性的值以给出分数。像这样的事情
我想创建一个基于价值的测试分配一个数值为每个属性你中间的属性,然后在最后总结本
©2019安全亚搏在线软件公司法律