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/12 14:06] – created sgrangervisual3d:documentation:pipeline:pipeline_commands:set_pipeline_parameter_to_data_value [2026/06/19 18:04] (current) wikisysop
Line 1: Line 1:
-Under Construction...+===== 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 userThis value can be any type of signal in that given workspaceThis 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.1720793180.txt.gz · Last modified: by sgranger