你在这里: > ExpressionEvaluator.

ExpressionEvaluator.

对由FME特征函数,字符串函数,数学函数和数学运算符组成的表达式执行数学计算。操作数和函数参数由输入功能,常量文字,发布和私有参数以及函数和运算符组成的属性。您可以使用GUI接口设置表达式,但您也可以手动编辑表达式。表达式的结果存储在用户指定的属性内。

ExpressionEvaluator有两个主要用途:

  1. 将一个表达式应用于一个属性
    • 评估模式到任一创建新属性或者覆盖现有属性,但只覆盖一个属性。
    • 表达可能会使用@价值()功能,但不使用@currentattribute()功能。
    • 例如,如果要在单个属性中将1添加到值,请使用表达式@Value(attr)+ 1, 放评估模式覆盖现有属性和集合覆盖的属性景点
  2. 将一个表达式应用于多个属性
    • 评估模式覆盖现有属性并仅选择使用新值覆盖的属性。未选择的属性将保持原始值。
    • 表达可能会使用@currentattribute()功能,但通常不会使用@价值()功能。
    • 例如,如果要在少量属性中添加1到值,请使用表达式@currentattribute()+ 1, 放评估模式覆盖现有属性,并选择将其应用于的属性。

笔记:如果要将不同的表达式应用于不同的属性,则可以使用多个ExpressionEvaluators或使用单个attributecreator.

支持的运营商是C表达式允许的运算符的子集。它们具有相同的含义和优先级,作为相应的C运算符,具有一个值得注意的例外:它们支持数字NULLS。

预计表达将产生数字结果。FME支持数字NULLS,允许表达式返回NULL的结果。例如,表达式8.2 + 6.回报14.2,而表达@Value(无烟区)* 1返回null。

笔记:易于构建无效表达式,因此您可能需要仔细检查您的表达式,特别是如果您使用的是@Value(attr)在表达式中,因为某些属性可能具有意外值。如果表达式无效,则相应的结果属性将设置为null。当结果为null时,将设置以下属性以指示出现问题,以及以下位置:
fme_expression_warnings {}。attrname
fme_expression_warnings {}。消息
fme_expression_warnings {}。变换名称

在ExpressionEvaluator内部,null,缺少和空字符串属性都被认为是null。因此,@Value(attr)* 1如果如果景点不存在于特征上,也不是空字符串。

参数

算术编辑器

有关更多信息,请参阅算术编辑器。

表达式编辑器

表达式由运算符和操作数,函数和参数以及括号组成的组合。可以在操作数,运算符和括号之间使用白色空格,并由表达式处理器忽略。

在可能的情况下,操作数被解释为整数值。整数值可以以十进制指定,例如123.,在八进阶中,如果操作数的前两个字符是0o.(归零后跟字母o),如果操作数的前两个字符是的,则在十六进制中0x.

如果操作数没有上面给出的整数格式之一,那么它将被视为可能的浮点数。浮点数可以以符合ANSI标准的C编译器接受的任何方式指定,但在大多数安装中不允许允许“F”,“F”,“L”和“L”后缀。例如,以下所有内容都是有效的浮点数:2.13.6E4.7.91E + 16.。如果不可能进行数字解释,则操作数留为字符串,并且应导致表达式评估为NULL。

可以通过以下方式指定操作数和参数:

  • 作为常数数值,整数或浮点。
  • 作为FME功能属性的值,使用@价值()或者@currentattribute()符号。属性的值用作操作数或参数。
  • 作为FME功能功能,例如@区域()。函数被评估,结果用作操作数或参数。
  • 作为数学函数,如@sin(1)

FME功能功能

有关更多信息,请参阅FME功能功能

字符串函数

有关更多信息,请参阅字符串函数

数学函数

有关更多信息,请参阅数学函数

数学运营商

有关更多信息,请参阅数学运营商

例子

FME知识中心具有ExpressionEvaluator的一个很好的例子。

相关变压器

如果要设置多个属性,请考虑使用attributecreator.,其中包含相同的功能算术编辑器

编辑变换器参数

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

变压器类别

计算值

技术历史

ExpressionEvaluator中的数学运算符基于工具命令语言(tcl)expr命令。1TCL及其文件受加州大学,Sun Microsystems,Inc。和其他各方的受版权保护。但是,如果原始版权持有人确认,作者向任何一方授予任何聚会来重用和修改代码和文件。

标签算术

搜索FME知识中心

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