visual3d:documentation:pipeline:event_commands:event_threshold
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
visual3d:documentation:pipeline:event_commands:event_threshold [2024/07/17 15:10] – sgranger | visual3d:documentation:pipeline:event_commands:event_threshold [2025/04/29 13:39] (current) – [Dialog] wikisysop | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | \\ | + | ===== Overview ===== |
- | **Place an event label at the frame where a signal crosses a specified value. | + | The **Event_Threshold** command is used to detect threshold crossings (when signal crosses a specified value) in a signals and label events accordingly. This command provides extensive control over event placement by allowing users to define |
- | **This is a complicated | + | This command |
- | \\ | + | **Note**: The threshold parameter specified can be a number, a PROCESSED METRIC, or an expression. |
+ | ===== Pipeline Command ===== | ||
+ | The command below is as seen on the Visual3D application, | ||
- | ==== Command Syntax | + | < |
+ | Event_Threshold | ||
+ | / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ; | ||
+ | </ | ||
- | |< | + | ===== Command Parameters |
+ | The following table shows the command | ||
- | === Version 4 === | + | |**Parameter** |
+ | |**/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
+ | |**!/ | ||
- | {{: | + | ===== 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. | ||
- | |**Event_Threshold** | + | {{:visual3d:documentation:pipeline:event_commands:event_thr_dialog.png?400|}} |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
- | |**/ | + | |
+ | * **New Event Label Name**: Name to assign event that reaches threshold value. | ||
+ | * **Signal Component**: | ||
+ | * **Frame Window**: Number of frames to check for threshold condition. | ||
+ | * **Frame Offset**: Shift event by a specified number of frames. | ||
+ | * **Time Offset**: Shift event by time (in seconds). | ||
+ | * **Threshold**: | ||
+ | * **Event Instance**: Specify which instance of the event to label. (0 = all) | ||
+ | * **Label on Ascent/ | ||
+ | * **Ensure Window Before/ | ||
+ | * **Event Sequence**: Specify range in which to search for threshold crossings. | ||
+ | * **Event Subsequence**: | ||
- | ---- | ||
- | ==== Ensure Range Parameter ==== | ||
- | For example, consider the following signal from which an Event should be created when the signal crosses above the threshold (e.g. Ascending): | ||
- | {{: | + | ===== Examples ===== |
+ | The following examples will go through the use of the Event_Threshold command in the Visual3D application. | ||
- | There are many options to this command | + | ==== Example 1: Detecting Peak Ground Reaction Force ==== |
+ | This example uses the **Event_Threshold** | ||
- | <HTML>< | + | <code> |
- | < | + | Event_Threshold |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**true** | + | /RESULT_EVENT_NAME= Max_GRF |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**false** | + | /SIGNAL_TYPES=FORCE |
- | OR | + | ! /SIGNAL_FOLDER=ORIGINAL |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**false** | + | /SIGNAL_NAMES=GRF_Z |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**false** | + | ! /SIGNAL_COMPONENTS= |
- | /Event_Instance=1< | + | ! /FRAME_OFFSET=0 |
- | < | + | ! /TIME_OFFSET= |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**false** | + | ! /EVENT_SEQUENCE= |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**true** | + | ! /EXCLUDE_EVENTS= |
- | OR | + | ! /EVENT_SEQUENCE_INSTANCE=0 |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**false** | + | ! /EVENT_SUBSEQUENCE= |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**false** | + | ! /SUBSEQUENCE_EXCLUDE_EVENTS= |
- | /Event_Instance=-1< | + | ! /EVENT_SUBSEQUENCE_INSTANCE=0 |
- | < | + | ! /EVENT_INSTANCE=0 |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**false** | + | /THRESHOLD= 1000 |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**false** | + | /ON_ASCENT= TRUE |
- | /Event_Instance=0< | + | ! /ON_DESCENT= |
- | < | + | ! /FRAME_WINDOW=8 |
- | /Ensure_Range_Frames_Before_Threshold_Crossing=**false** | + | ! /ENSURE_FRAMES_BEFORE=FALSE |
- | /Ensure_Range_Frames_After_Threshold_Crossing=**false** | + | ! /ENSURE_FRAMES_AFTER=FALSE |
- | /Event_Instance=-1< | + | ; |
+ | </code> | ||
- | ==== THRESHOLD Parameter | + | ==== Example 2: Maintaining Event Window after Threshold Closing |
+ | In this example, the events **FP3_Y** and **FP3_Y_ENSURE** are created using the command. The event **FP3_Y_ENSURE** will use the " | ||
- | The Threshold parameter can be: | + | To ensure correct functionality of the example, the following must be done: |
+ | - Import the SIGNAL_TYPE/ | ||
+ | - Specify only one signal component at a time. | ||
+ | - One of either **ON_ASCENT** or **ON_DESCENT** must be selected, if neither option is selected then no events will be created. In this example, we will chose to label on Ascent. | ||
- | **a number** | + | < |
- | **a PROCESSED METRIC** | + | Event_Threshold |
- | **an expression** | + | / |
- | \\ | + | / |
- | For example: | + | / |
+ | ! / | ||
+ | / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | ! /SELECT_X= | ||
+ | ! /SELECT_Y= | ||
+ | ! /SELECT_Z= | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | /THRESHOLD= 0.05 | ||
+ | /ON_ASCENT= TRUE | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
- | **a number** | + | Event_Threshold |
- | /Threshold= 1 | + | /RESULT_EVENT_NAME= FP3_Y_ENSURE |
- | **a PROCESSED METRIC** | + | / |
- | If a METRIC value is stored in the PROCESSED folder, the Event_Threshold command will recognize and use the signal based only on the signal nema. | + | / |
- | Given a METRIC signal named THRESH stored in the PROCESSED folder, you can specify the parameter as: | + | ! / |
- | /Threshold= THRESH | + | /SIGNAL_COMPONENTS= Y |
- | **an expression** | + | ! / |
- | It is also possible to use expressions, | + | ! / |
- | Given a METRIC signals THRESH that is stored in a folder labeled TEST | + | ! / |
- | /Threshold= METRIC:: | + | ! /EXCLUDE_EVENTS= |
- | But you can also elaborate this expression, such as | + | ! / |
- | /Threshold= 1.0 + 0.2 * METRIC:: | + | ! /EVENT_SUBSEQUENCE= |
- | \\ | + | ! / |
+ | ! / | ||
+ | ! / | ||
+ | ! /SELECT_X= | ||
+ | ! /SELECT_Y= | ||
+ | ! /SELECT_Z= | ||
+ | ! / | ||
+ | ! / | ||
+ | ! / | ||
+ | / | ||
+ | /ON_ASCENT= TRUE | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ; | ||
+ | </ | ||
+ | === Result === | ||
+ | After running this pipeline, you will notice 3 events have been created: | ||
+ | * 2 instances of **FP3_Y**, crosses the threshold (0.05) two times during the trial. | ||
+ | * 1 instance of **FP3_Y_ENSURE**, | ||
+ | {{: | ||
- | ---- | ||
- | ==== Example | + | ===== Notes ===== |
- | \\ | + | === Visual3D Versions supporting Subject Prefixes === |
- | **Create events using the Event_Threshold command**: **FP3_Y and FP3_Y_ENSURE**\\ | + | |
- | \\ | + | |
- | The event **FP3_Y_ENSURE** will use the Ensure Window After option on the dialog box.\\ | + | |
- | \\ | + | |
- | **Make sure to:**\\ | + | |
- | 1) Import the SIGNAL_TYPE/ | + | |
- | 2) Only one signal component may be specified at a time\\ | + | |
- | 3) Select label on Ascent/ | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | |< | + | |
- | + | ||
- | \\ | + | |
- | + | ||
- | + | ||
- | |< | + | |
- | + | ||
- | \\ | + | |
- | \\ | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | === Example - Result === | + | |
- | + | ||
- | \\ | + | |
- | + | ||
- | + | ||
- | |Three events should be created:\\ 2 Instances of **FP3_Y** -\\ \\ The FP3_Y signal crosses the threshold (0.05) two times during the trial\\ \\ 1 Instance of **FP3_Y_ENSURE** -\\ \\ The FP3_Y signal crosses the threshold (0.05) and stays above the threshold for the frame window (25) one time during the trial |{{: | + | |
- | + | ||
- | ==== Visual3D Versions supporting Subject Prefixes | + | |
When defining events for subjects that use a prefix to define the data belonging to that subject, event labels will also have the prefix of the subject the events belong to. | When defining events for subjects that use a prefix to define the data belonging to that subject, event labels will also have the prefix of the subject the events belong to. |
visual3d/documentation/pipeline/event_commands/event_threshold.1721229048.txt.gz · Last modified: 2024/07/17 15:10 by sgranger