Table of Contents

Reserved Names

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 ;