====== Metric Signal Value At Event ====== ==== Legacy Command ==== **Metric_Signal_At_Event** replaced the command **Signal_Value_At_Event** ==== Description ==== The value of the specified signal at the specified frame of data is stored as a metric. * All components of the specified signal will be stored in the metric signal. * **Since version 5:** the user 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. {{:MetricSignalValueAtEvent.png}} |**Metric_Signal_Value_At_Event** | | |**/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 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 **;** **Note:** 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. ==== Example Time at 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 **;** ==== Component Workaround ==== 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 ; ==== P2D Signals ==== Consider a 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]] 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