斯潘8
小精灵
尊敬的社区亚搏国际在线官网:
我想创建一个霍顿序列,这意味着系统的随机分布点。我found附加的python代码。调用它:halton_序列(十
,
三
)
现在,如何修改代码,以便在pythoncrator中使用它?我需要一个坐标列表来创建点。
谢谢你的帮助!
在压脓器中尝试以下方法:
import fmeobjectsdef next_prime():  def is_prime(num):    "Checks if num is a prime value"    for i in range(2,int(num**0.5)+1):      if(num % i)==0: return False    return True  prime = 3  while(1):    if is_prime(prime):   ____yield prime___prime+=2def Vdc(N,基=2):__Vdc,denom=0,1__,而n:____denom*=基部____N,余数=divmod(n,base)____Vdc+=余数/浮点数(denom)返回vdcdef halton_序列(大小,dim):__seq=[]__primegen=next_prime()__next(primegen)__for d in range(dim):___base=next(primegen)__seq.append([vdc(i,base) for i in range(size)])  return seqclass FeatureCreator(object):  def __init__(self):    pass  # Do nothing  def input(self,feature):    # Initialize the sequence    size = int(FME_MacroValues['HALTON_SIZE'])    dim = int(FME_MacroValues['HALTON_DIMENSIOn'])____halton=halton_序列(大小,dim)____,如果dim==2:______Halton_points=zip(Halton[0],Halton[1])____elif dim==3:_____Halton_U points=zip(Halton[0],哈尔顿[1],halton[2])    else:      raise IndexError('Only 2 or 3 dimensions are supported')    for elem in halton_points:      newFeature = fmeobjects.FMEFeature()      if dim == 2:        newFeature.setDimension(fmeobjects.FME_TWO_D)      else:        newFeature.setDimension(fmeobjects.FME_THREE_D)      newFeature.addCoordinate(*elem)      self.pyoutput(newFeature)  def close(self):    pass  # Do nothing
您必须在工作区中创建两个已发布的参数halton_size和halton_dimension。输出将是二维或三维点的一个数字(Halton_大小)点。
由于升级论坛软件似乎与代码块斗争,以下是工作区模板(FME 2018.1):霍顿序列.fmwt
?2019安全亚搏在线软件公司|合法的