pointcloudExpressionEvaluator.
输入端口
此转换器仅接受点云特征。
输出端口
计算表达式后的点云。
参数
指定要由相应表达式设置的组件。
指定输出点云中组件的类型。有效类型为Real64、Real32、UInt64、UInt32、UInt16、UInt8、Int64、Int32、Int16、Int8、Auto和Preserve。Auto表示输出类型应根据用于执行计算的类型自动确定。Preserve意味着组件应该保持与输入点云中相同的类型。如果输入点云中不存在该组件,则“保留”相当于“自动”。
描述如何计算相应组件的值的表达式。有关表达式结构的说明,请参阅下面的表达式语法部分。
表达式语法
一个操作数、和运算符的组合。例如,一个简单的表达式可以是:
(@组件(x)+@组件(y)+@组件(z))/3.0
此表达式计算X,Y和Z组件的平均值。
操作数、运算符和括号之间可以使用空格,因为表达式处理器会忽略它。
操作数可以是以下任何一种:
- 例如,来自输入点云的组件@组件(z).请注意,如果组件具有比例/偏移量,则在表达式中将使用组件的“应用”值。
- 一个数值常量,可以是整数或浮点。在可能的情况下,数字常量被解释为整数值;否则,操作数将被视为浮点数。浮点数可以用ANSI兼容的C编译器所接受的任何方式指定,但在大多数安装中不允许使用后缀“f”、“f”、“l”和“l”。例如,以下所有值都是有效的浮点数:2.1、3、6e4、7.91e+16。
- 属性的值,使用@值()符号。
- 一种函数,其参数具有上述任何形式的操作数,如@sin(@component(z)). 有关已定义函数的列表,请参见“函数”部分。
下面列出的有效运算符按优先级降序分组:
功能 |
说明 |
---|---|
- + ~ ! |
一元减,一元加,位不,逻辑不。 Bit-Wise仅对整数操作数有效。 |
* / % |
乘以,划分,余数。 余数仅适用于整数操作数。其余的始终具有与除法者相同的符号,并且绝对值小于除数。 |
+ - |
加减法。 |
<< >> |
左右转移。 仅对整数操作数有效。 |
< > <= >= |
布尔少,更大,小于或等于,大于或等于。 如果条件为真,则每个运算符生成1,否则为0。 |
==!= |
布尔等于和不等于。 如果条件为真,则每个运算符生成1,否则为0。 |
& |
有点明智。 仅对整数操作数有效。 |
^ |
位异或。 仅对整数操作数有效。 |
| |
比特聪明或。 仅对整数操作数有效。 |
&& |
逻辑与。 如果两个操作数都是0,则生成非0操作数,否则生成非0结果。 |
|| |
逻辑或。 如果两个操作数都为零,则生成0结果,否则生成1。 |
以下函数可用于表达式。注意,数学函数调用同名的C数学库函数。请参阅库函数的C手册条目,以了解这些函数的作用以及哪些参数是有效的。
功能 |
说明 |
---|---|
绝对值(arg) |
返回arg的绝对值。 |
acos(arg) |
返回arg的反余弦值,范围为[0,pi]弧度。Arg应在范围[-1,1]内。 |
Asin(arg) |
返回arg的弧正弦值,范围为[-pi/2,pi/2]弧度。Arg应在范围[-1,1]内。 |
阿坦(arg) |
返回arg的反正切值,在[-pi/2,pi/2]弧度范围内。 |
atan2(y,x) |
返回y/x的反正切值,在[-pi,pi]弧度范围内。x和y不能都是0。 |
CEIL(arg) |
返回不小于arg的最小整数值。 |
cos(arg) |
返回arg的余弦,以弧度度量。 |
cosh(arg) |
返回arg的双曲余弦值。如果结果将导致溢出,则返回错误。 |
EXP(ARG) |
返回arg的指数,定义为e ** arg。如果结果会导致溢出,则返回错误。 |
地板(arg) |
返回不大于arg的最大整数值。 |
fmod(x,y) |
返回x除以y的浮点余数。如果y为0,则返回错误。 |
if(c,x,y) |
如果c为0,则返回x,否则返回y。 |
索引() |
返回点索引。点云中的第一个点是索引0,第二个点是索引1,依此类推。 |
日志(arg) |
返回arg的自然对数。arg必须是正价值。 |
log10(arg) |
返回arg的以10为底的对数。Arg必须是正值。 |
功率(x,y) |
计算x的值,x的幂为y。如果x为负,y必须是整数值。 |
兰德() |
返回0到1之间的随机值。 |
sin(arg) |
返回在弧度中测量的arg的正弦。 |
sinh(arg) |
返回arg的双曲正弦。如果结果会导致溢出,则返回错误。 |
sqrt(arg) |
返回arg的平方根。arg必须是非负面的。 |
谭(arg) |
返回arg的切线,在弧度中测量。 |
tanh(arg) |
返回arg的双曲正切值。 |
类型和溢出
此转换器试图通过在计算表达式的过程中更改数据类型来避免溢出。例如,如果将两个UInt8值相加,则内部计算将使用UInt16类型执行;这确保不会发生溢出。
通常,对整数类型执行算术运算将生成整数类型。除此之外,除法:它将始终生成浮点结果。对浮点类型执行算术运算将始终生成浮点类型。
请注意,在不同数据类型之间转换时,使用界限。结果,当计算值不符合目标数据类型时,将相应的目标值设置为目标数据类型中可能的最小值或最大值。
编辑变换器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来分配变压器参数。一些变压器也可提供更高级的功能,例如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击除适用的参数旁边。有关更多信息,请参阅变压器参数菜单选项.
变压器类别
FME许可级别
FME专业版及以上
技术历史
关联的FME函数或工厂:PointCloudEvaluationFactory
搜索FME社区亚搏国际在线官网
搜索有关此变压器的样本和信息FME社亚搏国际在线官网区.