循环
循环可以让很多数据处理的工作变得简单。透过循环,也可以让FME魔板更加简洁! 在之前的推送使用FME沿线生成点(二)中,使用了循环来沿着线来均匀的生成点。今天,我们使用另一种方式来完成相同的操作啊!
思路如下:
1、使用Creator生成一条线,参数:((0,0),(10,0)),并添加NUM字段;
2、使用Python,通过循环生成所需参数;
在这里,首先计算要生成的点数、分割比例,与生成间隔;
3、在指定位置生成点!
使用Snipper生成,设置方式与之前的推送基本一致。
运行概览:
核心代码:
代码语言:javascript复制import fme
import fmeobjects
# Template Function interface:
# When using this function, make sure its name is set as the value of# the 'Class or Function to Process Features' transformer parameter
def processFeature(feature):
pass
# Template Class Interface:
# When using this class, make sure its name is set as the value of# the 'Class or Function to Process Features' transformer parameter
class FeatureProcessor(object):
def __init__(self):
pass
def input(self,feature):
num = int(feature.getAttribute('NUM'))
att = 100.0/(num-1)
for i in range(num):
pct = 0 att*i
feature.setAttribute('pct',pct)
self.pyoutput(feature)
def close(self):
pass
其他
转换器截图:
虽然FME自带循环也可以,不过,有没有觉得这种方式更优雅呢??
各位,周末愉快!