你在这里: 基础设施 Pythoncaller.

Pythoncaller.

执行Python脚本以操纵该功能。

当需要专用任务时,例如对属性的自定义统计分析,但工作台不提供适合该任务的变形式,Python脚本可以在要素的几何,属性和坐标系上执行专业和复杂的操作。

笔记: 使用Python对功能的任意操作是工作台的强大方面。但是,引入工作空间的逻辑不太明显,因此可以比使用工作台内置变压器的逻辑更难以维护。建议尽可能使用其他变压器而不是Python脚本。

通过FME对象Python API提供对功能的属性,几何和坐标系信息。要查看API文档,请导航到FME安装文件夹并转到此位置:fmeobjects \ python \ apidoc \ index.html

接口模式

PythonCaller可以用两种不同的方式与Python脚本进行界面:按函数或课程:

  • 当您打算一次处理单个特性时,请使用函数接口。
  • 使用类接口以获取更多的灵活性。

当您想一起操作一组特性时,类接口非常有用,例如收集接收到的所有特性,然后按特定的排序顺序输出它们。另一个常见的用例是累积所有特性,对整个集合执行操作,然后输出所有特性,并将计算值作为新属性。

功能界面示例

PythonCaller将使用一个参数调用Python函数:一个FMEFeature对象。

将使用进入输入端口的每个FMeature调用该函数。然后,此功能将通过输出端口继续通过工作空间管道。

PythonCaller将忽略函数的返回值。任何提高的异常都将终止翻译。任何凸起的fmeexception都将作为错误记录,并将终止翻译。

下面的示例将字符串属性添加到每个功能,并将其设置为当前时间:

进口fmeobjects
进口时间

          
def timestampFeature(特征):
curtime = time.ctime(time.time())
特性。setAttribute(“时间戳”,curTime)

类接口示例

PythonCaller将在类上调用两种方法:输入()和close()。将为输入端口中的每个FMeature调用INPUT()方法。当没有更多的FMeatures仍然存在时,将调用close()方法。必须使用pyoutput()方法明确地写出需要继续通过工作区进行进一步处理的功能。

类接口可以在一组功能上运行,而不是一次处理传入功能。这是通过将传入功能存储在列表中,然后在输出之前一次处理它们。

下面的示例计算已处理的所有功能的总区,然后输出包含总区的新属性的所有功能:

进口fmeobjects

          
class feature processor(对象):
def __init __(self):
self.featurelist = []
self.totalarea = 0.0

          
def输入(自我,特性):
self.featurelist.append(功能)
self.totalarea + = feature.getgeometry()。getarea()

          
def close(self):
用于自我的功能.Featurelist:
feature.setAttribute(“total_area”,self.totalarea)
self.pyoutput(功能)

脚本编辑

一个PythonCaller变压器可以调用存储在变压器本身或全局工作空间中存储的脚本中的脚本:

  • 要使用特定PythonCaller变压器存储Python脚本,请在变压器中使用Python脚本参数。
  • 要在全局全局存储Python脚本,请单击导航器中的高级工作区参数,然后双击启动python脚本.全局存储脚本的优点是保持Python逻辑集中,这使得编辑和维护更加容易。当整个工作空间中有多个PythonCaller转换器使用相同的脚本时,这很有用。有关更多信息,请参见启动和关闭Python脚本在FME Workbench帮助中。

FME可以访问.py.存储在文件系统中的模块,包括外部Python库中的模块。使用Python "import"命令加载这些模块。FME将搜索标准Python模块位置和工作区位置,以找到要导入的模块。

参数

依赖性

在Python解释器中确定FME用于Python处理工具> FME选项>翻译,在“Python解释器”下。您可以指定一个默认解释器,或将FME指向自定义解释器。有关更多信息,请参见FME工作台帮助

编辑变换器参数

使用一组菜单选项,可以通过引用工作区中的其他元素来分配变压器参数。一些变压器也可提供更高级的功能,例如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击除适用的参数旁边。有关更多信息,请参见变换器参数菜单选项

变压器类别

基础设施

FME授权级别

FME专业版及以上版本

搜索FME知识中心

搜索有关此变压器的样本和信息FME知识中心