User Tools

Site Tools


visual3d:documentation:pipeline:event_commands:event_between

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:event_commands:event_between [2025/02/13 20:21] – [Command Parameters] wikisysopvisual3d:documentation:pipeline:event_commands:event_between [2025/04/16 15:46] (current) – Revised section header levels to reflect in the ToC. wikisysop
Line 1: Line 1:
 ====== Event Between ====== ====== Event Between ======
-==== Overview ====+===== Overview =====
  
 The **Event_Between** pipeline command __creates a new event label based on the time interval between two existing events in the C3D File (i.e. between the first and last events).__ This command is useful when analyzing motion data that requires identifying specific time points between known events. The **Event_Between** pipeline command __creates a new event label based on the time interval between two existing events in the C3D File (i.e. between the first and last events).__ This command is useful when analyzing motion data that requires identifying specific time points between known events.
Line 8: Line 8:
   * Specify whether the new event should be placed at the Start, End, or Midpoint of the interval.   * Specify whether the new event should be placed at the Start, End, or Midpoint of the interval.
  
- +===== Pipeline Command =====
- +
-==== Pipeline Command ====+
  
 <code> <code>
Line 23: Line 21:
 </code> </code>
  
-==== Command Parameters ====+===== Command Parameters =====
 The following table shows the command parameters: The following table shows the command parameters:
  
-|**Event_Between**| Description|+|**Parameter**|**Parameter Description** |
 |**/NEW_EVENT_NAME=**|Specifies the name of the new event to be created.| |**/NEW_EVENT_NAME=**|Specifies the name of the new event to be created.|
 |! /[[Visual3D:Documentation:C3D_Signal_Types:EVENT_LABEL_Data_Type#Range_Instance|RANGE_INSTANCE]]= 0|The number of instances to label. \\ **0**: Uses all instances found in the dataset, \\ **1,2, etc**: Uses a specific numbered instance.| |! /[[Visual3D:Documentation:C3D_Signal_Types:EVENT_LABEL_Data_Type#Range_Instance|RANGE_INSTANCE]]= 0|The number of instances to label. \\ **0**: Uses all instances found in the dataset, \\ **1,2, etc**: Uses a specific numbered instance.|
Line 37: Line 35:
 Offsets (**FRAME_OFFSET**, **TIME_OFFSET**, and **PERCENT_OFFSET**) allow fine control over the event placement, only one may be active and specified when the command is executed. By default, value is 0. Offsets (**FRAME_OFFSET**, **TIME_OFFSET**, and **PERCENT_OFFSET**) allow fine control over the event placement, only one may be active and specified when the command is executed. By default, value is 0.
  
-==== Dialog ====+===== Dialog ====
 +{{ :Event_Between.jpg?500}}
 After adding the **Event_Between** command into the pipeline on the Visual3D application, the user can double-click with the Left Mouse Button in order to to open the following dialog:\\ After adding the **Event_Between** command into the pipeline on the Visual3D application, the user can double-click with the Left Mouse Button in order to to open the following dialog:\\
 +  * **Event Parameters**: This section defines the new event being created. Users specify the event name and can adjust its position using frame, time, or percentage offsets. These offsets allow for fine-tuning where the event is placed relative to the reference events.
 +  * **Event Selection and Filtering**: Users choose which events to use as reference points for defining the new event. A list of predefined events is available for selection, and users can specify the event sequence between which the new event should be placed. Additionally, certain sequences containing specific events can be excluded to refine event placement.
 +  * **Range Instance Selection**: This section determines how the command handles multiple occurences of the event sequence.
  
-{{:Event_Between.jpg?350}} +---- 
-\\+===== Examples ===== 
 +The following examples will go through the use of the **Event_Between** command in the Visual3D application.
  
-==== Event_Between Examples ====+==== Example 1: Event Between Gait Events ==== 
 +This pipeline will be showcasing the use of the **Event_Between** command when we want to place an event between the LHS and LTO in our trial, determined by the starting command, [[visual3d:documentation:pipeline:event_commands:automatic_gait_events|Automatic_Gait_Events]].
  
-dynamic trial has two pre-existing events, **LHS (Left Heel Strike)** and **LTO (Left Toe Off)**. \\ +As a reminder, force assignments must exist in a dynamic trial in order for gait events to be detected. In the force signal graph belowwe are able to see the **LHS and LTO** gait events are highlighted.
-{{:Event_Between_Graph.jpg}} +
-\\+
  
-=== EXAMPLE 1 - Range_Instance = 0 === 
  
-  * RANGE_INSTANCE = 0 -> all instances of the Event_Sequence will be used +{{:visual3d:documentation:pipeline:event_commands:graph_before_example1.png?500|}}
-  * FRAME_OFFSET = 10 -> the new event will be created 10 frames after the first event+
  
-   +The following pipeline can be used to generate the "BTWN" event. Parameter values used are listed below: 
-  Event_Between +  * **RANGE_INSTANCE = 0** -> all instances of the Event_Sequence will be used. 
-  /NEW_EVENT_NAME=BTWN +  * **FRAME_OFFSET = 10** -> the new event will be created 10 frames after the first event.
-  !/RANGE_INSTANCE=0 +
-  /EVENT_SEQUENCE=LHS+LTO +
-  !/EXCLUDE_EVENT= +
-  /FRAME_OFFSET=10 +
-  !/TIME_OFFSET= +
-  !/PERCENT_OFFSET= +
-  ;+
  
-\\ +<code> 
 +Automatic_Gait_Events 
 +! /FRAME_WINDOW=8 
 +! /USE_TPR=TRUE 
 +! /TPR_EVENT_INSTANCE=1 
 +;
  
-=== EXAMPLE 2 - Range_Instance ===+Event_Between 
 +/NEW_EVENT_NAMEBTWN 
 +! /RANGE_INSTANCE=
 +/EVENT_SEQUENCE=LHS+LTO 
 +! /EXCLUDE_EVENTS= 
 +/FRAME_OFFSET=10 
 +! /TIME_OFFSET= 
 +! /PERCENT_OFFSET= 
 +
 +</code>
  
-  * RANGE_INSTANCE = 2 -> the 2nd instance of the Range will be used+After running this pipeline, we can highlight this event to show the updated graph with the new event label.
  
-   +{{:visual3d:documentation:pipeline:event_commands:graph_afterexample1.png?500|}}
-  Event_Between +
-  /NEW_EVENT_NAME= BTWN +
-  !/RANGE_INSTANCE=2 +
-  /EVENT_SEQUENCE=LHS+LTO +
-  !/EXCLUDE_EVENT= +
-  /FRAME_OFFSET=10 +
-  !/TIME_OFFSET= +
-  !/PERCENT_OFFSET= +
-  ; +
-\\+
  
  
-=== EXAMPLE 3 - Range_Instance -1 ===+==== Example 2: Identify a MidSwing Gait Event ====
  
-  * RANGE_INSTANCE = -1 -> the last instance of the Range will be used+This next example provides a more in-depth use of the command in a larger pipeline. Here, the objective is to use **Event_Between** to identify the **MidSwing** event between Left Toe Off (LTO) and Left Heel Strike (LHS), then use additional commands to: 
 +  - Calculate hip and knee angles at the MidSwing event. 
 +  - Create a new event when knee flexion surpasses a threshold.
  
-   +First, we will use the same step from the previous example to generate gait events for the data, and then use the command to create an event named "MidSwing":
-  Event_Between +
-  /NEW_EVENT_NAME= BTWN +
-  !/RANGE_INSTANCE=2 +
-  /EVENT_SEQUENCE=LHS+LTO +
-  !/EXCLUDE_EVENT= +
-  /FRAME_OFFSET=10 +
-  !/TIME_OFFSET= +
-  !/PERCENT_OFFSET= +
-  ;+
  
-\\+<code> 
 +Automatic_Gait_Events 
 +! /FRAME_WINDOW=8 
 +! /USE_TPR=TRUE 
 +! /TPR_EVENT_INSTANCE=1 
 +;
  
-**Note:** this is exactly the same result as the example above because for this example signal the last instance the second instance.+Event_Between 
 +/NEW_EVENT_NAME=MidSwing 
 +/RANGE_INSTANCE=1 
 +/EVENT_SEQUENCE=LTO+LHS 
 +! /EXCLUDE_EVENTS= 
 +! /FRAME_OFFSET=0 
 +! /TIME_OFFSET= 
 +/PERCENT_OFFSET= 50 
 +
 +</code>
  
 +Next, we must output signals Left_Hip_Angle and Left_Knee_Angle can be used for further analysis.
  
 +<code>
 +Compute_Model_Based_Data
 +/RESULT_NAME= Left_Hip_Angle
 +! /SUBJECT_TAG= 
 +/FUNCTION=JOINT_ANGLE
 +/SEGMENT=Left_Hip
 +! /REFERENCE_SEGMENT=LAB
 +! /RESOLUTION_COORDINATE_SYSTEM=LAB
 +! /USE_CARDAN_SEQUENCE=FALSE
 +! /NORMALIZATION=FALSE
 +! /NORMALIZATION_METHOD=
 +! /NORMALIZATION_METRIC=
 +! /NEGATEX=FALSE
 +! /NEGATEY=FALSE
 +! /NEGATEZ=FALSE
 +! /AXIS1=X
 +! /AXIS2=Y
 +! /AXIS3=Z
 +! /TREADMILL_DATA=FALSE
 +! /TREADMILL_DIRECTION=UNIT_VECTOR(0,1,0)
 +! /TREADMILL_SPEED=0.0
 +;
  
 +Compute_Model_Based_Data
 +/RESULT_NAME= Left_Knee_Angle
 +! /SUBJECT_TAG= 
 +/FUNCTION=JOINT_ANGLE
 +/SEGMENT=Left_Knee
 +! /REFERENCE_SEGMENT=LAB
 +! /RESOLUTION_COORDINATE_SYSTEM=LAB
 +! /USE_CARDAN_SEQUENCE=FALSE
 +! /NORMALIZATION=FALSE
 +! /NORMALIZATION_METHOD=
 +! /NORMALIZATION_METRIC=
 +! /NEGATEX=FALSE
 +! /NEGATEY=FALSE
 +! /NEGATEZ=FALSE
 +! /AXIS1=X
 +! /AXIS2=Y
 +! /AXIS3=Z
 +! /TREADMILL_DATA=FALSE
 +! /TREADMILL_DIRECTION=UNIT_VECTOR(0,1,0)
 +! /TREADMILL_SPEED=0.0
 +;
 +</code>
 +
 +Following the creation of the hip and knee angle signals for the left leg during the gait cycle, the **Metric_Signal_Value_At_Event** command is used to extract the values specifically at the MidSwing event
 +
 +<code>
 +Metric_Signal_Value_At_Event
 +/SIGNAL_TYPES= LINK_MODEL_BASED
 +! /SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES= Left_Hip_Angle
 +! /RESULT_METRIC_FOLDER=PROCESSED
 +/RESULT_METRIC_NAME= Left_Hip_Angle_at_MidSwing
 +! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
 +! /SIGNAL_COMPONENTS=
 +! /COMPONENT_SEQUENCE=
 +/EVENT_NAME= MidSwing
 +! /EVENT_INSTANCE=0
 +! /SCALE_FACTORS=1
 +! /GENERATE_MEAN_AND_STDDEV=TRUE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
 +! /RETAIN_NO_DATA_VALUES=FALSE
 +;
 +
 +Metric_Signal_Value_At_Event
 +/SIGNAL_TYPES= LINK_MODEL_BASED
 +! /SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES= Left_Knee_Angle
 +! /RESULT_METRIC_FOLDER=PROCESSED
 +/RESULT_METRIC_NAME= Left_Knee_Angle_at_MidSwing
 +! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
 +! /SIGNAL_COMPONENTS=
 +! /COMPONENT_SEQUENCE=
 +/EVENT_NAME= MidSwing
 +! /EVENT_INSTANCE=0
 +! /SCALE_FACTORS=1
 +! /GENERATE_MEAN_AND_STDDEV=TRUE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +! /GENERATE_VECTOR_LENGTH_METRIC=FALSE
 +! /RETAIN_NO_DATA_VALUES=FALSE
 +;
 +</code>
 +
 +Following this, the [[visual3d:documentation:pipeline:event_commands:event_threshold|Event_Threshold]] command is used to create an event named **Max_Knee_Flexion** when the **Left_Knee_Angle** exceeds 45 degrees, identifying the point of maximum knee flexion during the swing phase.
 +<code>
 +Event_Threshold
 +/RESULT_EVENT_NAME= Max_Knee_Flexion
 +/SIGNAL_TYPES= LINK_MODEL_BASED
 +! /SIGNAL_FOLDER=ORIGINAL
 +/SIGNAL_NAMES= Left_Knee_Angle
 +! /SIGNAL_COMPONENTS=
 +! /FRAME_OFFSET=0
 +! /TIME_OFFSET=
 +! /EVENT_SEQUENCE=
 +! /EXCLUDE_EVENTS=
 +! /EVENT_SEQUENCE_INSTANCE=0
 +! /EVENT_SUBSEQUENCE=
 +! /SUBSEQUENCE_EXCLUDE_EVENTS=
 +! /EVENT_SUBSEQUENCE_INSTANCE=0
 +! /EVENT_INSTANCE=0
 +/THRESHOLD= 45
 +! /ON_ASCENT=
 +! /ON_DESCENT=
 +! /FRAME_WINDOW=8
 +! /ENSURE_FRAMES_BEFORE=FALSE
 +! /ENSURE_FRAMES_AFTER=FALSE
 +;
 +</code>
visual3d/documentation/pipeline/event_commands/event_between.1739478100.txt.gz · Last modified: 2025/02/13 20:21 by wikisysop