表达式评估器
对由fme功能函数、字符串函数、数学函数和数学运算符组成的表达式执行数学计算。操作数和函数参数由输入特性上的属性、常量文本、已发布和私有参数以及函数和运算符组成。可以使用gui界面设置表达式,但也可以手动编辑表达式。表达式的结果存储在用户指定的属性中。
ExpressionEvaluator有两个主要用途:
- 对一个属性应用一个表达式
- 设置评价模式去哪一个创建新属性或重写现有属性,但仅覆盖一个属性。
- 表达式可能使用@ value ()功能,但不使用@CurrentAttribute ()功能。
- 例如,如果要向单个属性中的值添加1,请使用表达式@值(attr)+1,设置评价模式来重写现有属性,并设置要覆盖的属性来属性是的。
- 将一个表达式应用于多个属性
- 设置评价模式来重写现有属性只选择将被新值覆盖的属性。未选中的属性将保留其原始值。
- 表达式可能使用@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如果属性功能上不存在或是空字符串。
参数
选择创建新属性计算指定表达式的值,并将计算结果放入指定属性中。
选择重写现有属性对每个选定属性求一次指定表达式的值。评估的结果将被放回属性中。
这是将包含结果的属性。使用默认名称,或键入新名称。
此参数允许对相同的表达式求值,每次为所选属性求值一次。对于指定的每个属性,表达式的结果将存储到该属性中。
如果表达式需要当前属性的值,则使用函数检索它@CurrentAttribute ()是的。例如,如果传入的特性具有属性X和是的,我们希望每个都增加1,选择两个属性,并将表达式设置为@当前属性()+1是的。这将设置属性X来X+1个和是的来Y+1是的。
如果使用@值(属性)和覆盖属性以及其他属性,然后结果将是迭代的。后属性表达式的所有后续应用程序中的新值覆盖@值(属性),在处理其余属性时,将使用的新值属性,而不是它原来的价值。属性的顺序会影响结果。
例如,如果你有以下属性和值:
attr0 = 0
attr1 = 1
attr2 = 2
attr3 = 3
和表达:
@ value (attr1) + 1
当所有四个属性都被选择覆盖时,结果将是:
属性0=2(计算1+1和覆盖属性0)
属性1=2(计算1+1和覆盖属性1)
属性2=3的新值属性1,所以2+1个)
attr3 = 3的新值属性1,所以2+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知识中心是的。