Reserved Names
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
- ;