User Tools

Site Tools


visual3d:documentation:pipeline:pipeline_commands:set_pipeline_parameter_to_data_value

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:pipeline_commands:set_pipeline_parameter_to_data_value [2024/07/16 16:59] – removed sgrangervisual3d:documentation:pipeline:pipeline_commands:set_pipeline_parameter_to_data_value [2026/06/19 18:04] (current) wikisysop
Line 1: Line 1:
 +===== Set Pipeline Parameter To Data Value =====
 +
 +====Overview==== 
 +This command can be used to set the value of a pipeline parameter to a specified value as defined by the user. This value can be any type of signal in that given workspace. This command can be found under **Pipeline Control** in the pipeline workshop. 
 +
 +====Pipeline Command====
 +
 +The command below is as seen on the Visual3D application.
 +<code>
 +Set_Pipeline_Parameter_To_Data_Value
 +/SIGNAL_TYPES=
 +! /SIGNAL_FOLDER=ORIGINAL
 +! /SIGNAL_NAMES=
 +! /SIGNAL_COMPONENTS=ALL_COMPONENTS
 +/PARAMETER_NAME=
 +;
 +
 +</code>
 +
 +
 +====Command Parameters====
 +
 +The following table shows the command parameters and descriptions:
 +
 +|SIGNAL_TYPES |The type of signal you wish to set as the parameter value, e.g. LINK_MODEL_BASED|
 +|SIGNAL_FOLDER| Corresponding Folder e.g. PROCESSED|
 +|SIGNAL_NAMES |Name of the Desired signal| 
 +|SIGNAL_COMPONENTS| Components of the desired Signal, default is all components|
 +|PARAMATER_NAME| Name for new parameter|
 +
 +
 +====Examples====
 +===Simple example===
 +
 +Create a parameter called SUBJECT_ID based on subject names stored in PARAMETERS:SUBJECT:NAMES.
 +
 +<code>
 +Set_Pipeline_Parameter_To_Data_Value
 +/SIGNAL_TYPES=PARAMETERS
 +/SIGNAL_FOLDER=SUBJECTS
 +/SIGNAL_NAMES=NAMES
 +! /SIGNAL_COMPONENTS=ALL_COMPONENTS
 +/PARAMETER_NAME=SUBJECT_ID
 +;
 +</code>
 +
 +===Complex example===
 +
 +Example of EMG data processing using **Set_Parameter_Pipeline_To_Data_Value** to get the analog sampling which was used to determine the number of frames of the moving RMS window. 
 +<code>
 +File_New
 +
 +;
 +
 +Set_Pipeline_Parameter_To_Folder_Path
 +/PARAMETER_NAME=ROOTFOLDER
 +/PARAMETER_VALUE=VISUAL3D_DEFAULT_DATA_FOLDER
 +! /FROM_MOTION_FILE_IN_WORKSPACE=
 +! /PARAMETER_VALUE_SEARCH_FOR=
 +! /PARAMETER_VALUE_REPLACE_WITH=
 +! /PARAMETER_VALUE_APPEND=
 +! /SET_PROMPT=Select a directory
 +! /ALPHABETIZE=TRUE
 +;
 +
 +File_Open
 +/FILE_NAME=*Q*
 +/FILE_PATH=::ROOTFOLDER
 +/SEARCH_SUBFOLDERS=TRUE
 +! /SUFFIX=
 +! /SET_PROMPT=File_Open
 +! /ON_FILE_NOT_FOUND=PROMPT
 +! /FILE_TYPES_ON_PROMPT=
 +;
 +
 +!Assign Tags to MVC_A file
 +Assign_Tags_To_File
 +/MOTION_FILE_NAMES=*QMVC_A.C3D
 +! /QUERY=
 +/TAGS=MVC_A
 +;
 +
 +!Assign Tags to MVC_B file
 +Assign_Tags_To_File
 +/MOTION_FILE_NAMES=*QMVC_B.C3D
 +! /QUERY=
 +/TAGS=MVC_B
 +;
 +
 +!Assign Tags to MVC_C file
 +Assign_Tags_To_File
 +/MOTION_FILE_NAMES=*QMVC_C.C3D
 +! /QUERY=
 +/TAGS=MVC_C
 +;
 +
 +!Assign Tags to walking files
 +Assign_Tags_To_File
 +/MOTION_FILE_NAMES=*Qtrial*.C3D
 +!/QUERY=
 +/TAGS=MOVEMENT
 +;
 +
 +Set_Pipeline_Parameter
 +/PARAMETER_NAME=EMG_SIGNALS
 +/PARAMETER_VALUE=EMG_A+EMG_B+EMG_C
 +;
 +
 +! Select active file ALL_FILES
 +Select_Active_File 
 +/FILE_NAME=ALL_FILES 
 +! /QUERY= 
 +;
 +
 +! Apply highpass filter with 50 Hz cutoff
 +Highpass_Filter 
 +/Signal_Types=ANALOG 
 +/SIgnal_Names=::EMG_SIGNALS 
 +/Signal_Folder=ORIGINAL 
 +! /Result_Suffix= 
 +! /Result_Folder=PROCESSED 
 +! /Filter_Class=BUTTERWORTH 
 +/Frequency_Cutoff=50 
 +/Num_Reflected= 0 
 +/Total_Buffer_Size=100 
 +/Num_Bidirectional_Passes=1 
 +;
 +
 +! Apply lowpass filter with 500 Hz cutoff
 +Lowpass_Filter 
 +/Signal_Types=ANALOG 
 +/SIgnal_Names=::EMG_SIGNALS 
 +/Signal_Folder=PROCESSED 
 +! /Result_Suffix= 
 +! /Result_Folder=PROCESSED 
 +! /Filter_Class=BUTTERWORTH 
 +/Frequency_Cutoff=500 
 +/Num_Reflected= 0 
 +/Total_Buffer_Size=100 
 +/Num_Bidirectional_Passes=1 
 +;
 +
 +Set_Pipeline_Parameter_To_Data_Value
 +/SIGNAL_TYPES=PARAMETERS
 +/SIGNAL_FOLDER=ANALOG
 +/SIGNAL_NAMES=RATE
 +! /SIGNAL_COMPONENTS=ALL_COMPONENTS
 +/PARAMETER_NAME=ANALOGRATE
 +;
 +
 +Moving_RMS 
 +/SIGNAL_TYPES=ANALOG 
 +/SIGNAL_NAMES=::EMG_SIGNALS 
 +/SIGNAL_FOLDER=PROCESSED 
 +! /RESULT_SUFFIX= 
 +/RESULT_FOLDER=RMS 
 +/NUM_WINDOW_FRAMES=1+0.1*&::ANALOGRATE&
 +;
 +
 +Event_Explicit
 +/EVENT_NAME=START
 +/FRAME=50
 +! /TIME=
 +;
 +
 +Event_Explicit
 +/EVENT_NAME=END
 +/FRAME=250
 +! /TIME=
 +;
 +
 +Set_Pipeline_Parameter 
 +/PARAMETER_NAME=START_AT_EVENT 
 +/PARAMETER_VALUE=START 
 +;
 +
 +Set_Pipeline_Parameter 
 +/PARAMETER_NAME=END_AT_EVENT  
 +/PARAMETER_VALUE=END 
 +;
 +
 +For_Each 
 +/ITERATION_PARAMETER_NAME=INDEX 
 +/ITEMS=::EMG_SIGNALS 
 +;
 +
 +! Create an event at the maximum value
 +Event_Global_Maximum 
 +/SIGNAL_TYPES=ANALOG 
 +/SIGNAL_NAMES=::INDEX 
 +/SIGNAL_FOLDER=RMS 
 +/EVENT_NAME=EMG_MAX 
 +/SELECT_X=TRUE 
 +! /SELECT_Y=FALSE 
 +! /SELECT_Z=FALSE 
 +/START_AT_EVENT=::START_AT_EVENT 
 +/END_AT_EVENT=::END_AT_EVENT 
 +;
 +
 +! Create an event MEAN_START 15 frames prior to the max event
 +Event_Copy 
 +/EVENT_NAME=EMG_MAX 
 +! /EVENT_INSTANCE=0 
 +! /START_AT_EVENT= 
 +! /END_AT_EVENT= 
 +/NEW_EVENT_NAME=MEAN_START 
 +/FRAME_OFFSET=-15 
 +;
 +
 +! Create an event MEAN_END 15 frames after the max event
 +Event_Copy 
 +/EVENT_NAME=EMG_MAX 
 +! /EVENT_INSTANCE=0 
 +! /START_AT_EVENT= 
 +! /END_AT_EVENT= 
 +/NEW_EVENT_NAME=MEAN_END 
 +/FRAME_OFFSET=15 
 +;
 +
 +! Calculate mean of EMG signal between MEAN_START and MEAN_END 
 +Metric_Mean 
 +/RESULT_METRIC_NAME=::INDEX&_SCALE 
 +! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE 
 +/RESULT_METRIC_FOLDER=EMG_SCALE 
 +/SIGNAL_TYPES=ANALOG 
 +/SIGNAL_NAMES=::INDEX 
 +/SIGNAL_FOLDER=RMS 
 +/SIGNAL_COMPONENTS=0 
 +/EVENT_SEQUENCE=MEAN_START+MEAN_END 
 +/EXCLUDE_EVENTS= 
 +/GENERATE_MEAN_AND_STDDEV=FALSE 
 +! /APPEND_TO_EXISTING_VALUES=FALSE 
 +;
 +
 +! calculate the global maximum of the mean signal
 +Metric_Maximum
 +! /RESULT_METRIC_FOLDER=PROCESSED
 +/RESULT_METRIC_NAME=
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +/SIGNAL_TYPES=METRIC
 +/SIGNAL_FOLDER=EMG_SCALE
 +/SIGNAL_NAMES=::INDEX&_SCALE
 +/COMPONENT_SEQUENCE=ALL
 +/EVENT_SEQUENCE=
 +/EXCLUDE_EVENTS=
 +/SEQUENCE_PERCENT_START=
 +/SEQUENCE_PERCENT_END=
 +! /GENERATE_MEAN_AND_STDDEV=TRUE
 +! /GENERATE_MEAN_AND_STDDEV_ACROSS_SUBJECTS=FALSE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +/CREATE_GLOBAL_MAXIMUM=TRUE
 +! /CREATE_TRIAL_MAXIMUM=FALSE
 +;
 +
 +! Clean up some temporary signals 
 +Event_Delete 
 +/EVENT_NAME=EMG_MAX+MEAN_START+MEAN_END 
 +! /EVENT_SEQUENCE= 
 +! /EXCLUDE_EVENTS= 
 +! /TIME= 
 +;
 +
 +Remove_Signals 
 +/SIGNAL_TYPES=METRIC 
 +/SIGNAL_NAMES=::INDEX&_SCALE_MAX 
 +/SIGNAL_FOLDER=PROCESSED 
 +;
 +
 +End_For_Each 
 +/ITERATION_PARAMETER_NAME=INDEX 
 +;
 +
 +For_Each
 +/Iteration_Parameter_Name=CURRENT_SIGNAL
 +/Items=EMG_A+EMG_B+EMG_C
 +;
 +
 +! Divide the EMG signal by it's maximum value, which was stored automatically in the GLOBAL workspace 
 +
 + Evaluate_Expression
 + /EXPRESSION= ANALOG::ORIGINAL::&::CURRENT_SIGNAL& / GLOBAL::METRIC::PROCESSED::&::CURRENT_SIGNAL&_SCALE_MAX
 + ! /SIGNAL_TYPES=
 + ! /SIGNAL_FOLDER=ORIGINAL
 + ! /SIGNAL_NAMES=
 + /RESULT_TYPES=ANALOG
 + /RESULT_FOLDERS=NORMALIZED
 + /RESULT_NAME=::CURRENT_SIGNAL
 + ! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
 + ;
 +
 +End_For_Each 
 +/Iteration_Parameter_Name= CURRENT_SIGNAL
 +;
 +
 +</code>
 +
 +
  
visual3d/documentation/pipeline/pipeline_commands/set_pipeline_parameter_to_data_value.1721149198.txt.gz · Last modified: by sgranger