PointCloudExpressionEvaluator
输入端口
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
这个转换器只接受点云特性。
输出端口
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
计算表达式后的点云。
参数
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
指定要由相应表达式设置的组件。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
指定输出点云中的组件类型。有效的类型有Real64、Real32、UInt64、UInt32、UInt16、UInt8、Int64、Int32、Int16、Int8、Auto和Preserve。Auto表示应该根据用于执行计算的类型自动确定输出类型。保存意味着组件应该保持与输入点云相同的类型。如果组件在输入点云中不存在,则save相当于Auto。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
描述如何计算相应组件值的表达式。有关表达式结构的描述,请参阅下面的表达式语法部分。
表达式语法
表达式由操作数、运算符和括号组成。例如,一个简单的表达式可能是:
(@Component(x) + @Component(y) + @Component(z)) / 3.0
这个表达式计算x、y和z分量的平均值。
当表达式处理程序忽略空白时,可以在操作数、操作符和括号之间使用空白。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
操作数可以是下列任何一种:
- 例如,来自输入点云的组件@分量(Z)。请注意,如果组件具有缩放/偏移,则将在表达式中使用组件的“应用”值。
- 一个数字常量,可以是整数,也可以是浮点。在可能的情况下,数值常量被解释为整数值;否则,操作数将被视为浮点数。浮点数可以用符合ANSI的C编译器接受的任何方式指定,但大多数安装中不允许使用“f”、“f”、“l”和“l”后缀。例如,以下所有数字都是有效的浮点数:2.1、3、6E4、7.91E+16。
- 属性的值,使用@值()符号。
- 一种函数,其参数对操作数具有上述任何形式,如@sin(@分量(z))。有关已定义函数的列表,请参见“函数”部分。
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
下面列出的有效操作符按优先级降序分组:
功能 |
说明 |
---|---|
-+~! |
一元减,一元加,位智商不,逻辑不。 逐位不仅对整数操作数有效。 |
*/% |
乘,除,余数。 余数仅对整数操作数有效。余数总是与除数有相同的符号,并且绝对值小于除数。 |
+- |
加和减。 |
<<>> |
左右移动。 仅对整数操作数有效。 |
<><=>。= |
布尔值小于、大于、小于或等于以及大于或等于。 如果条件为真,则每个运算符生成1,否则生成0。 |
==!= |
布尔值等于或不等于。 如果条件为真,则每个运算符生成1,否则生成0。 |
& |
有点聪明。 仅对整数操作数有效。 |
^ |
位明智的异或。 仅对整数操作数有效。 |
| |
有点聪明。 仅对整数操作数有效。 |
&& |
逻辑和。 如果两个操作数都不为零,则生成1结果,否则为0。 |
|| |
逻辑或。 如果两个操作数都为0,则生成0结果,否则为1。 |
![关闭](http://www.baooytra.com/docs/fme/2017.0/html/FME_Desktop_Documentation/FME_Transformers/Skins/Default/Stylesheets/Images/transparent.gif)
下列函数可用于表达式。注意,math函数调用同名的C math库函数。有关这些函数的功能和哪些参数有效的详细信息,请参阅库函数的C手册条目。
功能 |
说明 |
---|---|
绝对值(arg) |
返回arg的绝对值。 |
ACOS(arg) |
返回arg的弧余弦,范围为[0,pi]弧度。arg应该在范围[-1,1]内。 |
阿信(Arg) |
返回arg的弧正弦,范围为[-pi/2,pi/2]弧度。arg应该在范围[-1,1]内。 |
阿坦(阿格) |
返回arg的反正切值,范围为[-pi/2,pi/2]弧度。 |
ATAN2(Y,X) |
返回y/x的反正切值,范围为[-pi,pi]弧度。x和y不能都是0。 |
天花板(arg) |
返回不小于arg的最小整数值。 |
COS(精氨酸) |
返回参数的余弦(以弧度为单位)。 |
舒适(arg) |
返回arg的双曲余弦。如果结果会导致溢出,则返回错误。 |
exp(参数) |
返回arg的指数,定义为e**arg。如果结果会导致溢出,则返回错误。 |
地板(arg) |
返回不大于arg的最大整数值。 |
fmod(x,y) |
返回x除以y的浮点余数。如果y为0,则返回错误。 |
如果(c,x,y) |
如果c为0,则返回x,否则返回y。 |
索引() |
返回点索引。点云中的第一个点是索引0,第二个点是索引1等。 |
日志(arg) |
返回arg的自然对数。arg必须为正值。 |
日志10(arg) |
返回arg的以10为底的对数。arg必须为正值。 |
功率(x,y) |
计算x的值提升为y的幂。如果x为负,y必须是整数值。 |
兰德() |
返回介于0和1之间的随机值。 |
sin(参数) |
返回arg的正弦值,以弧度为单位。 |
sinh(阿格) |
返回参数的双曲正弦值。如果结果会导致溢出,则返回错误。 |
sqrt(参数) |
返回arg的平方根。arg必须为非负。 |
棕褐色(Arg) |
返回arg的正切值(以弧度为单位)。 |
Tanh(阿格) |
返回arg的双曲正切。 |
类型和溢出
该转换器试图通过在表达式求值过程中更改数据类型来避免溢出。例如,如果两个UInt8值相加,内部计算将使用UInt16类型执行;这确保不会发生溢出。
通常,对整数类型执行算术运算将生成整数类型。除法是一个例外:它总是会产生一个浮点结果。对浮点类型执行算术运算总是会产生浮点类型。
注意,在不同数据类型之间进行转换时,将使用有界强制转换。因此,当计算值不适合目标数据类型时,将相应的目标值设置为目标数据类型中可能的最小值或最大值。
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
FME授权级别
FME专业版及以上
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。