User Tools

Site Tools


visual3d:documentation:pipeline:expressions:reserved_names

This is an old revision of the document!


Table of Contents

visual3d reserved names

contents

current_signal

used to refer to a specific signal with a simple syntax compute the length of one signal.

the legacy syntax is:

evaluate_expression /expression=length(target::original::rft1) /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ; the legacy syntax can get complicated if pipeline_parameters are used in the signal name because of the order in which equations are parsed.

! create a pipeline parameter containing the marker name set_pipeline_parameter /parameter_name=marker /parameter_value=rft1 ; evaluate_expression /expression=length(target::original&:&:&::marker&) /result_types=derived /result_folders=processed /result_name=_length ; this gets even more complicate if the folder is also a pipeline parameter.

an alternative is the following

evaluate_expression /expression=length(current_signal) /signal_types=target /signal_folder=original /signal_names=::marker /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ;

used to allow multiple signals to be specified in an expression

compute the length of targets rft1, rft2, and rft3 in the original folder

the legacy implementation requires a for_each statement

for_each /iteration_parameter_name= markers /items= rft1+rft2+rft3 ; evaluate_expression /expression=length(target::original&:&:&::markers&) /signal_types=target /signal_folder=original /signal_names= /result_types=derived /result_folders=processed /result_name=::markers /apply_as_suffix_to_signal_name=true ; end_for_each /iteration_parameter_name=markers ; using current_signal

evaluate_expression /expression=length(current_signal) /signal_types=target /signal_folder=original /signal_names=rft1+rft2+rft3 /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ;

used to specifying all signals of a given type

compute the length of all targets in the original folder

the legacy implementation requires a for_each command and a command to get the names of all of the targets

set_pipeline_parameter_to_list_of_signal_names /parameter_name=all_targets /signal_type=target /signal_folder=original ; for_each /iteration_parameter_name= markers /items= ::all_targets ; evaluate_expression /expression=length(target::original&:&:&::markers&) /signal_types=target /signal_folder=original /signal_names= /result_types=derived /result_folders=processed /result_name=::markers /apply_as_suffix_to_signal_name=true ; end_for_each /iteration_parameter_name=markers ; using current_signal

evaluate_expression /expression=length(current_signal) /signal_types=target /signal_folder=original /signal_names= /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ;

apply_as_suffix_to_signal_name

if apply_as_suffix_to_signal_name is true, or result_names.size() == signal_names.size()

compute the length of all targets in the original folder

evaluate_expression /expression=length(current_signal) /signal_types=target /signal_folder=original /signal_names= /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ; compute the length of two targets (rft1 and rft2) in the original folder

evaluate_expression /expression=length(current_signal) /signal_types=target /signal_folder=original /signal_names=rft1+rft2 /result_types=derived /result_folders=processed /result_name=_length /apply_as_suffix_to_signal_name=true ; compute a best_plane_fit for multiple signals at each frame of data

evaluate_expression /expression=best_fit_plane(current_signal) /signal_types=target /signal_folder=original /signal_names=lsk_1+lsk_2+lsk_3 /result_types=derived /result_folders=processed /result_name=lsk_plane /apply_as_suffix_to_signal_name=true ;
if apply_as_suffix_to_signal_name is false, and result_names.size() == 1

compute the length of one target (target::original::rft1)

evaluate_expression /expression=length(target::original::rft1) /result_types=derived /result_folders=processed /result_name=rft1_length ;

nan

nan is a reserved string used to designate “not a number”.

visual3d commands refer to no_data or data_not_found as nan

for example, the expression 1/0 results in nan

isnan

isnan(expression) tests values against nan - if the number is nan the result is 1, otherwise the result is 0

[set_pipeline_parameter_from_expression] /parameter_name= nan_test /expression=isnan(1/0) /as_integer=true ; ::nan_test = 1 [set_pipeline_parameter_from_expression] /parameter_name= nan_test /expression=isnan(-999999.000000) /as_integer=true ; ::nan_test = 1 returns “1” because -999999 is equal to data not found in visual3d.

[set_pipeline_parameter_from_expression] /parameter_name= nan_test /expression=isnan(15) /as_integer=true ; ::nan_test = 0 example: set negative values to no_data

if the z-component of the lelb signal is below 0 set the frame to no_data

evaluate_expression /expression=(target::original::lelb::z>0)/(target::original::lelb::z>0)*target::original::lelb /result_name=lelb /result_type=target /result_folder=processed ;

visual3d/documentation/pipeline/expressions/reserved_names.1718804216.txt.gz · Last modified: 2024/06/19 13:36 by sgranger