你在这里: > 表达式评估器

表达式评估器

对由fme功能函数、字符串函数、数学函数和数学运算符组成的表达式执行数学计算。操作数和函数参数由输入特性上的属性、常量文本、已发布和私有参数以及函数和运算符组成。可以使用gui界面设置表达式,但也可以手动编辑表达式。表达式的结果存储在用户指定的属性中。

ExpressionEvaluator有两个主要用途:

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

注:如果要将不同的表达式应用于不同的属性,可以使用多个ExpressionEvaluator,也可以使用单个属性创建者是的。

支持的运算符是C表达式中允许的运算符的子集。它们的含义和优先级与对应的c运算符相同,但有一个明显的例外:它们支持数值空值。

表达式将产生数值结果。fme支持数值空值,这允许表达式作为结果返回空值。例如,表达式8.2+6条回报14.2条,而表达式@值(nullattr)*1返回空值。

注:很容易生成无效的表达式,因此您可能需要重新检查表达式,特别是在使用@值(属性)在表达式中,因为某些属性可能具有意外值。如果表达式无效,则相应的result属性将设置为空。当结果为空时,将设置以下属性以指示出错的地方和位置:
·fme_表达式警告{}.attrname
·fme_表达式_警告{}。消息
·fme_表达式警告{}.transformername

在expressionevaluator中,null、missing和empty string属性都被视为null。因此,@值(属性)*1如果属性功能上不存在或是空字符串。

参数

算术编辑器

有关详细信息,请参见算术编辑器。

表达式编辑器

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

在可能的情况下,操作数被解释为整数值。整数值可以用十进制指定,例如123个,如果操作数的前两个字符是0度(零后跟字母O),如果操作数的前两个字符是十倍是的。

如果操作数没有上述整数格式之一,则在可能的情况下,它将被视为浮点数。浮点数可以用符合ANSI的C编译器接受的任何方式指定,但大多数安装中不允许使用“f”、“f”、“l”和“l”后缀。例如,以下所有数字都是有效的浮点数:2.1款我是说,三。我是说,6E4型我是说,7.91E+16是的。如果无法进行数值解释,则操作数将保留为字符串,并应使表达式的计算结果为空。

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

  • 作为常量数值,整数或浮点。
  • 作为fme特性属性的值,使用@ value ()@CurrentAttribute ()符号。属性的值用作操作数或参数。
  • 作为fme功能,例如@Area ()是的。对函数求值并将结果用作操作数或参数。
  • 作为一个数学函数,例如@sin (1)是的。

FME功能

有关详细信息,请参见FME功能是的。

字符串函数

有关详细信息,请参见字符串函数是的。

数学函数

有关详细信息,请参见数学函数是的。

数学运算符

有关详细信息,请参见数学运算符是的。

例子

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

相关变压器

如果要设置多个属性,请考虑使用属性创建者,其中包含通过算术编辑器是的。

编辑变压器参数

使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项是的。

变压器类别

计算值

技术史

expressionevaluator中的数学运算符基于tool command language(tcl)expr命令。1个Tcl及其文档的版权归加州大学太阳微系统公司所有。和其他政党。但是,作者已经允许任何一方重用和修改代码和文档,前提是要确认原始版权所有者。

标签算术

搜索FME知识中心

在上搜索有关此转换器的示例和信息FME知识中心是的。