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.
.. mermaid ::
flowchart TD
userDICparams["User Parameters"]
analysis_json("Analysis setup
.json")
gui_analysis["DIC analysis GUI"]
gui_merge["Merge DIC & UT
GUI"]
DisplProc["Displacement
Processor class"]
DisplacementToStrainclass["Diplacement to Strain
class"]
result_dic("Marker Displacement
result.dic")
outOptStrainMap("Strain Map
(not implemented)")
excel_image["Strain Data
for each image
(.csv)"]
excel_dic("Strain vs time
.csv")
foutExcel(" Final output
|time|displacement|force|strain| stress|
.xlsx")
subgraph tensile_test["Test results"]
camera["Camera"]
utmachine["UT Machine"]
camera--> inImages & inImagesLog
utmachine --> inTensileMachine
inImages("Images
.png")
inImagesLog("Images time Log
.csv or .txt")
inTensileMachine("Force Displacement
Tensile Machine Data
.csv")
end
subgraph sOptionalDisplOutput["Optional DIC output"]
direction LR
outOptMarker("Markers (.png)")
outOptDisp("Displacement (.png)")
outOptGrid("Grid (.png)")
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.py`` file.
- the Merge dic and UT GUI is implemented in the ``examples/imada_dic_merge_gui/tkapp_dic_ut_merge.py`` file.