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/14 15:39] – [Examples] 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_Between.jpg?350}} 
   * **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 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.   * **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.   * **Range Instance Selection**: This section determines how the command handles multiple occurences of the event sequence.
-\\ 
  
- +---- 
-==== Examples ====+===== Examples =====
 The following examples will go through the use of the **Event_Between** command in the Visual3D application. The following examples will go through the use of the **Event_Between** command in the Visual3D application.
  
-=== Example 1 ===+==== 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]]. 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]].
  
 As a reminder, force assignments must exist in a dynamic trial in order for gait events to be detected. In the force signal graph below, we are able to see the **LHS and LTO** gait events are highlighted. As a reminder, force assignments must exist in a dynamic trial in order for gait events to be detected. In the force signal graph below, we are able to see the **LHS and LTO** gait events are highlighted.
-\\+
  
 {{:visual3d:documentation:pipeline:event_commands:graph_before_example1.png?500|}} {{:visual3d:documentation:pipeline:event_commands:graph_before_example1.png?500|}}
-\\+
 The following pipeline can be used to generate the "BTWN" event. Parameter values used are listed below: The following pipeline can be used to generate the "BTWN" event. Parameter values used are listed below:
   * **RANGE_INSTANCE = 0** -> all instances of the Event_Sequence will be used.   * **RANGE_INSTANCE = 0** -> all instances of the Event_Sequence will be used.
Line 80: Line 77:
  
 After running this pipeline, we can highlight this event to show the updated graph with the new event label. 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|}} {{:visual3d:documentation:pipeline:event_commands:graph_afterexample1.png?500|}}
  
  
-=== Example 2 ===+==== Example 2: Identify a MidSwing Gait Event ====
  
 +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":
  
 +<code>
 +Automatic_Gait_Events
 +! /FRAME_WINDOW=8
 +! /USE_TPR=TRUE
 +! /TPR_EVENT_INSTANCE=1
 +;
 +
 +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.1739547580.txt.gz · Last modified: 2025/02/14 15:39 by wikisysop