你在这里: 计算器 > ExpressionEvaluator

ExpressionEvaluator

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

ExpressionEvaluator主要有两种用法:

  1. 将一个表达式应用于一个属性
    • 评价模式要么创建新的属性覆盖现有的属性,但只覆盖一个属性。
    • 表达式可以使用@值()功能,但不使用@CurrentAttribute()函数。
    • 例如,如果您想在单个属性的值中添加1,请使用表达式@ value (attr) + 1,设置评价模式覆盖现有的属性,并设置属性来覆盖attr
  2. 将一个表达式应用于多个属性
    • 评价模式覆盖现有的属性并且只选择将被新值覆盖的属性。未选择的属性将保留其原始值。
    • 表达式可以使用@CurrentAttribute()函数,但通常不会使用@值()函数。
    • 例如,如果您想在一些属性的值中添加1,那么可以使用表达式@CurrentAttribute () + 1,设置评价模式覆盖现有的属性,并选择要将其应用于的属性。

注意:如果您想将不同的表达式应用于不同的属性,您可以使用多个expressionevaluator,也可以使用单个AttributeCreator

支持的操作符是C表达式中允许的操作符的子集。它们与相应的C操作符具有相同的含义和优先级,但有一个值得注意的例外:它们支持数值null。

表达式将产生数值结果。FME支持数值null,允许表达式返回null作为结果。例如,表达式8.2 + 6返回14.2,而表达式@ value (nullAttr) * 1返回null。

注意:很容易构建一个无效的表达式,因此您可能想要对表达式进行双重检查,特别是在您使用的是@ value (attr)在表达式中,因为某些属性可能具有未预期的值。如果表达式无效,则相应的结果属性将设置为null。当结果为null时,将设置以下属性来指示哪里出错了,以及在哪里出错:
fme_expression_warnings {} .attrName
fme_expression_warnings {} .message
fme_expression_warnings {} .transformerName

在ExpressionEvaluator内部,null、missing和空字符串属性都被认为是null。因此,@ value (attr) * 1会导致空如果attr在特性上不存在或为空字符串。

参数

数学编辑器

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

表达式编辑器

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

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

如果操作数没有上面给出的整数格式,那么它将被视为浮点数(如果可能的话)。除了“f”、“f”、“l”和“l”后缀在大多数安装中不被允许外,浮点数可以用符合ansi的C编译器接受的任何方式指定。例如,下列所有数都是有效的浮点数:2.1,3.,6 e4,7.91 e + 16。如果无法进行数字解释,则操作数将作为字符串保留,并应使表达式的值为null。

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

  • 作为常量数值,可以是整数,也可以是浮点数。
  • 作为FME特性属性的值,使用@值()@CurrentAttribute()符号。属性的值用作操作数或参数。
  • 作为FME的特征函数,如@区域()。函数求值并将结果用作操作数或参数。
  • 作为一个数学函数,如@sin(1)

FME特性函数

有关更多信息,请参见FME特性函数

字符串函数

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

数学函数

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

数学运算符

有关更多信息,请参见数学运算符

例子

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

相关的变形金刚

如果要设置多个属性,请考虑使用AttributeCreator,其中包含了相同的功能数学编辑器

编辑变压器参数

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

变压器的分类

计算器

技术的历史

ExpressionEvaluator中的数学运算符基于Tool Command Language (Tcl) expr命令。1Tcl和它的文档是由加州大学,Sun Microsystems公司的校委会拥有版权和其他各方。然而,作者进行了授权的任何一方重复使用和修改代码和文档,提供的原始版权持有人的认可。

标签算术

搜索FME知识中心

有关此变压器的示例和信息,请参阅FME知识中心