Reserved Names

From Software Product Documentation
Jump to navigation Jump to search

Visual3D Reserved Names

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
;
Retrieved from ""