DIC GUI Workflow¶
Overview¶
This document describes the workflow for the DIC GUI. The GUI is a graphical user interface for the DIC algorithm. It is written in Python using the tk GUI toolkit.
There are two separate windows for the gui:
DIC analysis GUI: responsible for running the DIC analysis and obtaining strain map results. This code only uses data from the camera and the camera log file and exports a strain curve vs the time.
Merge dic and UT: responsible for taking the output from the dic analysis (see above) and then merging it with the UT data.
the graphical procedure is outlined in the following diagram.
flowchart TD
userDICparams["User Parameters"]
analysis_json("Analysis setup<br><b>.json</b>")
gui_analysis["DIC analysis GUI"]
gui_merge["Merge DIC & UT <br> GUI"]
DisplProc["Displacement<br>Processor class"]
DisplacementToStrainclass["Diplacement to Strain<br> class"]
result_dic("Marker Displacement<br> result.dic")
outOptStrainMap("Strain Map<br>(not implemented)")
excel_image["Strain Data<br> for each image<br>(<b>.csv</b>)"]
excel_dic("Strain vs time<br><b>.csv</b>")
foutExcel("<b> Final output</b><br>|time|displacement|force|strain| stress|<br><b>.xlsx</b>")
subgraph tensile_test["Test results"]
camera["Camera"]
utmachine["UT Machine"]
camera--> inImages & inImagesLog
utmachine --> inTensileMachine
inImages("Images<br><b>.png</b>")
inImagesLog("Images time Log<br><b>.csv or .txt</b>")
inTensileMachine("Force Displacement<br>Tensile Machine Data<br><b>.csv")
end
subgraph sOptionalDisplOutput["Optional DIC output"]
direction LR
outOptMarker("Markers (<b>.png</b>)")
outOptDisp("Displacement (<b>.png</b>)")
outOptGrid("Grid (<b>.png</b>)")
end
subgraph sDICAnalysis["DIC analysis process"]
direction LR
gui_analysis
DisplProc
DisplacementToStrainclass
end
userDICparams --> gui_analysis
userDICparams --> analysis_json
sDICAnalysis =====> analysis_json
inImages --> gui_analysis
inImagesLog --> gui_analysis
DisplProc --> result_dic
DisplProc -..-> sOptionalDisplOutput
DisplProc ==> DisplacementToStrainclass
DisplacementToStrainclass --> excel_image
result_dic -.-> DisplacementToStrainclass
DisplacementToStrainclass --> outOptStrainMap
gui_analysis --> DisplProc
DisplacementToStrainclass --> excel_dic
excel_dic --> gui_merge
inTensileMachine --> gui_merge
gui_merge --> foutExcel
classDef clInput fill:lightgreen,stroke:#333,stroke-width:4px;
class inImages,inImagesLog,inTensileMachine,userDICparams clInput;
classDef outputs fill:#f9f,stroke:#333,stroke-width:4px;
class result_dic,excel_dic,analysis_json,excel_image,foutExcel outputs;
classDef clNotImplemented fill:red,stroke:#333,stroke-width:4px;
class outOptStrainMap clNotImplemented;
classDef clSoftwareClass fill:lightblue,stroke:#333,stroke-width:4px;
class DisplProc,DisplacementToStrainclass clSoftwareClass;
classDef subgraph_padding fill:none,stroke-dasharray: 0 1
class sRigidBodypadding,sRBKinematicspadding subgraph_padding
Currently :
the DIC analysis GUI is implemented in the
examples/dic_gui/tkapp_dic.pyfile.the Merge dic and UT GUI is implemented in the
examples/imada_dic_merge_gui/tkapp_dic_ut_merge.pyfile.