====== Metric Signal Value At Event ======
The Metric_Signal_Value_At_Event command provides the value of the specified signal at the specified frame of data is stored as a metric.
Notes:
* All components of the specified signal will be stored in the metric signal. The user also has the option to select an individual component
* If there are multiple occurrences of an EVENT, there will be multiple entries in the metric that is created.
* There is an option to calculate the mean and standard deviation for metrics that have multiple values.
* In cases where there is **NO_DATA** at an event, you need to specify the parameter **/Retain_No_Data_Values=TRUE** should you want this included in the resulting signal.
* **Metric_Signal_At_Event** replaced the legacy command **Signal_Value_At_Event**
{{:MetricSignalValueAtEvent.png}}
===== Parameters =====
^ Parameter ^ Description ^
|**/Result_Metric_Name=** |The name of the resulting signal. |
|**/Result_Metric_Folder=** |The folder that will contain the resulting signal |
|**/[[Visual3D:Documentation:Pipeline:General_Information:Signal_Types|Signal_Types]]=** |The type of signal to be evaluated |
|**/[[Visual3D:Documentation:Pipeline:General_Information:Signal_Names|Signal_Names]]=** |The names of the signals to be evaluated |
|**/[[Visual3D:Documentation:Pipeline:General_Information:Signal_Folder|Signal_Folder]]=**|The name of the signal folder |
|**/Event_Name=** |The name of the event Label. |
|**/Generate_Mean_And_Stddev=** |If there are multiple occurences of the Event, the metric will contain multiple values.If Selecte the mean and standard deviation for the metric values will be computed.|
|**/Append_To_Existing_Values=** |(True or False) If the metric exists, the new values will be appended to the metric, retaining all of the previous values. |
|**/Generate_Metric_Length_Metric=** |(True or False) If the metric is a vector quantity (e.g. has 3 components), compute the magnitude of the vector. |
|**/Retain_No_Data_Values=** |(True or False) If the result is no_data, retain the value. |
===== Example: Find Value of a Target =====
This example calculates the value of the TARGET **RFT1** at the Event_Label **RON**
Metric_Signal_Value_At_Event
/Result_Metric_Name=RFT1_ON
/Result_Metric_Folder=PROCESSED
/Signal_Types=TARGET
/Signal_Names=RFT1
/Signal_Folder=ORIGINAL
/Event_Name=RON
/Generate_Mean_And_Stddev=FALSE
/Append_To_Existing_Values=FALSE
/Generate_Metric_Length_Metric=FALSE
/Retain_No_Data_Values=TRUE
;
==== For a single Component ====
Since Metric_Signal_Value_At_Event outputs all three components, here is a workaround of the previous example that will output one component. Evaluate_Expression is used to create a signal with one component, the z component for **RFT1**. Then the Metric_Signal_Value_At_Event will calculate the value of the TARGET **RFT1** at the Event_Label **RON**.
! RFT1 Z component
Evaluate_Expression
/Expression=TARGET::ORIGINAL::RFT1::Z
/Result_Name=RFT1_Z
/Result_Type=DERIVED
/Result_Folder=ORIGINAL
;
Metric_Signal_Value_At_Event
/Result_Metric_Name=RFT1_ON
/Result_Metric_Folder=PROCESSED
/Signal_Types=DERIVED
/Signal_Names=RFT1_Z
/Signal_Folder=ORIGINAL
/Event_Name=RON
/Generate_Mean_And_Stddev=FALSE
/Append_To_Existing_Values=FALSE
/Generate_Metric_Length_Metric=FALSE
/Retain_No_Data_Values=TRUE
;
===== Example: Calculate the Time of an Event =====
This example calculates the time of the Event_Label **RON**
Metric_Signal_Value_At_Event
/Result_Metric_Name=RON_TIME
/Result_Metric_Folder=PROCESSED
/Signal_Types=FRAME_NUMBERS
/Signal_Names=TIME
/Signal_Folder=ORIGINAL
/Event_Name=RON
/Generate_Mean_And_Stddev=FALSE
/Append_To_Existing_Values=FALSE
/Generate_Metric_Length_Metric=FALSE
/Retain_No_Data_Values=FALSE
;
===== P2D Signals =====
Consider a [[visual3d:documentation:definitions:file_formats:p2d_format|P2D]] signal created using [[Visual3D:Documentation:Pipeline:Signal_Commands:Global_Normalized_Signal_Mean|Global_Normalized_Signal_Mean]]. The resulting signal has three components, an index, a mean signals, and a standard deviation signal. It is possible to compute the maximum value of the 3 components using [[Visual3D:Documentation:Pipeline:Metric_Commands:Metric_Maximum|Metric_Maximum]] but it isn't possible to directly identify the standard deviation at that index because it isn't possible to define an Event for a time normalized signal (e.g.it has no frame rate or time.
Without having an event you cannot get the value of a signal at that event using Metric_Signal_Value_At_Event. One solution, albeit a non-intuitive solution is to [[Visual3D:Documentation:Pipeline:Expressions:Expressions_Overview#Signal_Functions|SORT]] (descending) the P2D signal by the second component (eg. the MEAN).
Evaluate_Expression
/EXPRESSION=SORT(P2D::TEST::LHIP_ANGLE, -1.0, 2)
! /SIGNAL_TYPES=
! /SIGNAL_FOLDER=ORIGINAL
! /SIGNAL_NAMES=
/RESULT_TYPES=P2D
/RESULT_FOLDERS=TEST_SORTED
/RESULT_NAME=LHIP_ANGLE_SORTED
!/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
;
For the resulting signal, the maximum value and the associated standard deviation will be in the first frame.