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