User Tools

Site Tools


visual3d:documentation:pipeline:metric_commands:metric_signal_value_at_event

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
visual3d:documentation:pipeline:metric_commands:metric_signal_value_at_event [2024/06/19 14:01] – created sgrangervisual3d:documentation:pipeline:metric_commands:metric_signal_value_at_event [2025/09/18 19:32] (current) wikisysop
Line 1: Line 1:
-===== Legacy Command =====+====== Metric Signal Value At Event ======
  
-**Metric_Signal_At_Event** replaced the command **Signal_Value_At_Event**+====Overview====
  
-===== Description =====+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. It can be found in the **Pipeline Workshop** under **Metric**. This command is useful for recording the value of a signal at a specific moment in a sequence, like at the deepest point in a squat or foot on in a stride. 
  
-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
-  * 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.   * 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.   * 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**
 +
 +====Pipeline Command====
 +The syntax for the function is as follows:
 +
 +<code>
 +Metric_Signal_Value_At_Event
 +/SIGNAL_TYPES=
 +! /SIGNAL_FOLDER=ORIGINAL
 +! /SIGNAL_NAMES=
 +! /RESULT_METRIC_FOLDER=PROCESSED
 +/RESULT_METRIC_NAME=
 +! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
 +! /SIGNAL_COMPONENTS=
 +! /COMPONENT_SEQUENCE=
 +/EVENT_NAME=
 +! /EVENT_INSTANCE=0
 +! /SCALE_FACTORS=1
 +! /GENERATE_GLOBAL_MEAN_AND_STDDEV=TRUE
 +! /GENERATE_LOCAL_MEAN_AND_STDDEV=TRUE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
 +! /RETAIN_NO_DATA_VALUES=FALSE
 +;
 +</code>
 +
 +=====Command Parameters =====
  
-{{MetricSignalValueAtEvent.png}}+The pipeline command parameters shown above are described in the table below:
  
-|**Metric_Signal_Value_At_Event**                                                                                                                                                                                                                                 | 
 |**/Result_Metric_Name=**                                                                 |The name of the resulting signal.                                                                                                                                        | |**/Result_Metric_Name=**                                                                 |The name of the resulting signal.                                                                                                                                        |
 |**/Result_Metric_Folder=**                                                               |The folder that will contain the resulting signal                                                                                                                        | |**/Result_Metric_Folder=**                                                               |The folder that will contain the resulting signal                                                                                                                        |
Line 24: Line 49:
 |**/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.                                               | |**/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.                                                         | |**/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.                                                                                                              |+|**/Retain_No_Data_Values=**                                                              |(True or False) If the result is no_data, retain the value.                                                                                                                                 
  
-===== Example Value of a Target =====+====Dialog==== 
 + 
 +The command can be edited in a text editor or in a dialog form. To edit in the dialog pop up form either click on the **Edit** button in the pipeline workshop or double-click on the pipeline command. The dialog is shown below. 
 + 
 +{{:MetricSignalValueAtEvent.png}} 
 + 
 +The dialog box allows you to assign values to the command parameters outlined above. 
 + 
 +===== Example: Find Value of a Target =====
  
 This example calculates the value of the TARGET **RFT1** at the Event_Label **RON** This example calculates the value of the TARGET **RFT1** at the Event_Label **RON**
  
-**Metric_Signal_Value_At_Event**+<code> 
 +Metric_Signal_Value_At_Event
 /Result_Metric_Name=RFT1_ON /Result_Metric_Name=RFT1_ON
 /Result_Metric_Folder=PROCESSED /Result_Metric_Folder=PROCESSED
Line 41: Line 75:
 /Generate_Metric_Length_Metric=FALSE /Generate_Metric_Length_Metric=FALSE
 /Retain_No_Data_Values=TRUE /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.+</code>
  
-===== Example Time at an Event ===== +==== For a single Component ====
- +
-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**. 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**.
Line 84: Line 102:
 /Generate_Metric_Length_Metric=FALSE /Generate_Metric_Length_Metric=FALSE
 /Retain_No_Data_Values=TRUE /Retain_No_Data_Values=TRUE
 +;
 +</code>
 +
 +===== Example: Calculate the Time of an Event =====
 +
 +This example calculates the time of the Event_Label **RON**
 +
 +<code>
 +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
 ; ;
 </code> </code>
Line 89: Line 126:
 ===== P2D Signals ===== ===== P2D Signals =====
  
-Consider a P2D signal created using [[Visual3D:Documentation:Pipeline:Signal_Commands:Global_Normalized_Signal_Mean|Global_Normalized_Signal_Mean]]. +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 signalIt 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. 
-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]] +Without having an event you cannot get the value of a signal at that event using Metric_Signal_Value_At_EventOne 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). 
-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 +<code> 
-One solution, albeit a non-intuitive solution is to [[Visual3D:Documentation:Pipeline:Expressions:Overview#Signal_Functions|SORT]] (descending) the p2D signal by the second component (eg. the MEAN). +Evaluate_Expression
-**Evaluate_Expression**+
 /EXPRESSION=SORT(P2D::TEST::LHIP_ANGLE, -1.0, 2) /EXPRESSION=SORT(P2D::TEST::LHIP_ANGLE, -1.0, 2)
 ! /SIGNAL_TYPES= ! /SIGNAL_TYPES=
Line 104: Line 140:
 /RESULT_NAME=LHIP_ANGLE_SORTED /RESULT_NAME=LHIP_ANGLE_SORTED
 !/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE !/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+</code>
  
 +For the resulting signal, the maximum value and the associated standard deviation will be in the first frame.
  
visual3d/documentation/pipeline/metric_commands/metric_signal_value_at_event.1718805687.txt.gz · Last modified: 2024/06/19 14:01 by sgranger