Bing Yan commited on
Commit
1e4169d
·
1 Parent(s): 7fcacad

Add image examples to From Image tabs

Browse files

- Add demo_renders/ (LFS-tracked) with 96 pre-rendered example images
for all CV and TPD mechanisms
- Add example dropdown + gallery preview to CV and TPD "From Image" tabs
- Users can select a mechanism, preview expected outputs, and load
physical images as input with pre-filled scan rates / heating rates

Made-with: Cursor

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. app.py +156 -0
  3. demo_renders/ec_Ads_11mVs_physical.png +3 -0
  4. demo_renders/ec_Ads_244mVs_physical.png +3 -0
  5. demo_renders/ec_Ads_4025mVs_physical.png +3 -0
  6. demo_renders/ec_Ads_classification.png +3 -0
  7. demo_renders/ec_Ads_concentration.png +3 -0
  8. demo_renders/ec_Ads_posteriors.png +3 -0
  9. demo_renders/ec_Ads_reconstruction.png +3 -0
  10. demo_renders/ec_BV_11mVs_physical.png +3 -0
  11. demo_renders/ec_BV_244_conc_arrows.png +3 -0
  12. demo_renders/ec_BV_244_single_cls.png +3 -0
  13. demo_renders/ec_BV_244_single_conc.png +3 -0
  14. demo_renders/ec_BV_244_single_recon.png +3 -0
  15. demo_renders/ec_BV_244_single_table.png +3 -0
  16. demo_renders/ec_BV_244mVs_physical.png +3 -0
  17. demo_renders/ec_BV_3scan_cls.png +3 -0
  18. demo_renders/ec_BV_3scan_conc.png +3 -0
  19. demo_renders/ec_BV_3scan_conc_arrows.png +3 -0
  20. demo_renders/ec_BV_3scan_table.png +3 -0
  21. demo_renders/ec_BV_4025mVs_physical.png +3 -0
  22. demo_renders/ec_BV_as_MHC_posteriors.png +3 -0
  23. demo_renders/ec_BV_as_MHC_reconstruction.png +3 -0
  24. demo_renders/ec_BV_classification.png +3 -0
  25. demo_renders/ec_BV_concentration.png +3 -0
  26. demo_renders/ec_BV_phys_classification.png +3 -0
  27. demo_renders/ec_BV_phys_reconstruction.png +3 -0
  28. demo_renders/ec_BV_posteriors.png +3 -0
  29. demo_renders/ec_BV_reconstruction.png +3 -0
  30. demo_renders/ec_EC_10mVs_physical.png +3 -0
  31. demo_renders/ec_EC_127mVs_physical.png +3 -0
  32. demo_renders/ec_EC_7638mVs_physical.png +3 -0
  33. demo_renders/ec_EC_classification.png +3 -0
  34. demo_renders/ec_EC_concentration.png +3 -0
  35. demo_renders/ec_EC_posteriors.png +3 -0
  36. demo_renders/ec_EC_reconstruction.png +3 -0
  37. demo_renders/ec_LH_10000mVs_physical.png +3 -0
  38. demo_renders/ec_LH_10mVs_physical.png +3 -0
  39. demo_renders/ec_LH_668mVs_physical.png +3 -0
  40. demo_renders/ec_LH_classification.png +3 -0
  41. demo_renders/ec_LH_concentration.png +3 -0
  42. demo_renders/ec_LH_posteriors.png +3 -0
  43. demo_renders/ec_LH_reconstruction.png +3 -0
  44. demo_renders/ec_MHC_11mVs_physical.png +3 -0
  45. demo_renders/ec_MHC_244mVs_physical.png +3 -0
  46. demo_renders/ec_MHC_4025mVs_physical.png +3 -0
  47. demo_renders/ec_MHC_classification.png +3 -0
  48. demo_renders/ec_MHC_concentration.png +3 -0
  49. demo_renders/ec_MHC_posteriors.png +3 -0
  50. demo_renders/ec_MHC_reconstruction.png +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ demo_renders/*.png filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -36,6 +36,7 @@ from plotting import (
36
  # ---------------------------------------------------------------------------
37
  REPO_ROOT = Path(__file__).resolve().parent
38
  DEMO_DIR = REPO_ROOT / "demo_data"
 
39
 
40
  EC_CHECKPOINT = REPO_ROOT / "checkpoints" / "ec_best.pt"
41
  TPD_CHECKPOINT = REPO_ROOT / "checkpoints" / "tpd_best.pt"
@@ -86,6 +87,75 @@ def _discover_examples():
86
  CV_EXAMPLES, TPD_EXAMPLES = _discover_examples()
87
 
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  def _load_cv_example(example_name):
90
  """Return (files, scan_rates, E0, T, A, C, D, n) for the chosen CV example."""
91
  if not example_name or example_name not in CV_EXAMPLES:
@@ -790,6 +860,24 @@ def build_app():
790
  "Axis bounds are **auto-detected** via OCR — "
791
  "override in Advanced if needed."
792
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
  cv_img_files = gr.File(
794
  label="Plot images (one per scan rate)",
795
  file_count="multiple",
@@ -860,6 +948,31 @@ def build_app():
860
  inputs=[cv_img_mech_dd, cv_img_state],
861
  outputs=[cv_img_posteriors, cv_img_param_table, cv_img_recon, cv_img_conc],
862
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
863
 
864
  # =================================================================
865
  # Tab 2: TPD Analysis
@@ -940,6 +1053,24 @@ def build_app():
940
  "Axis bounds are **auto-detected** via OCR — "
941
  "override in Advanced if needed."
942
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
943
  tpd_img_files = gr.File(
944
  label="Plot images (one per heating rate)",
945
  file_count="multiple",
@@ -997,6 +1128,31 @@ def build_app():
997
  inputs=[tpd_img_mech_dd, tpd_img_state],
998
  outputs=[tpd_img_posteriors, tpd_img_param_table, tpd_img_recon],
999
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1000
 
1001
  # =================================================================
1002
  # Tab 3: About
 
36
  # ---------------------------------------------------------------------------
37
  REPO_ROOT = Path(__file__).resolve().parent
38
  DEMO_DIR = REPO_ROOT / "demo_data"
39
+ DEMO_RENDERS = REPO_ROOT / "demo_renders"
40
 
41
  EC_CHECKPOINT = REPO_ROOT / "checkpoints" / "ec_best.pt"
42
  TPD_CHECKPOINT = REPO_ROOT / "checkpoints" / "tpd_best.pt"
 
87
  CV_EXAMPLES, TPD_EXAMPLES = _discover_examples()
88
 
89
 
90
+ def _discover_image_examples():
91
+ """Build image example catalogs from demo_renders/ directory."""
92
+ import re
93
+ cv_img_examples = {}
94
+ tpd_img_examples = {}
95
+ cv_output_renders = {}
96
+ tpd_output_renders = {}
97
+
98
+ if not DEMO_RENDERS.is_dir():
99
+ return cv_img_examples, tpd_img_examples, cv_output_renders, tpd_output_renders
100
+
101
+ for p in sorted(DEMO_RENDERS.glob("ec_*_physical.png")):
102
+ m = re.match(r"ec_(\w+?)_(\d+)mVs_physical\.png", p.name)
103
+ if not m:
104
+ continue
105
+ mech, rate_mVs = m.group(1), int(m.group(2))
106
+ rate_Vs = rate_mVs / 1000.0
107
+ cv_img_examples.setdefault(mech, []).append((str(p), rate_Vs))
108
+
109
+ for p in sorted(DEMO_RENDERS.glob("tpd_*_physical.png")):
110
+ m = re.match(r"tpd_(\w+?)_(\d+)_physical\.png", p.name)
111
+ if not m:
112
+ continue
113
+ mech, idx = m.group(1), m.group(2)
114
+ tpd_img_examples.setdefault(mech, []).append((str(p), idx))
115
+
116
+ for mech in cv_img_examples:
117
+ renders = {}
118
+ for suffix in ["classification", "posteriors", "reconstruction", "concentration"]:
119
+ rp = DEMO_RENDERS / f"ec_{mech}_{suffix}.png"
120
+ if rp.exists():
121
+ renders[suffix] = str(rp)
122
+ if renders:
123
+ cv_output_renders[mech] = renders
124
+
125
+ for mech in tpd_img_examples:
126
+ renders = {}
127
+ for suffix in ["classification", "posteriors", "reconstruction"]:
128
+ rp = DEMO_RENDERS / f"tpd_{mech}_{suffix}.png"
129
+ if rp.exists():
130
+ renders[suffix] = str(rp)
131
+ if renders:
132
+ tpd_output_renders[mech] = renders
133
+
134
+ return cv_img_examples, tpd_img_examples, cv_output_renders, tpd_output_renders
135
+
136
+
137
+ (CV_IMG_EXAMPLES, TPD_IMG_EXAMPLES,
138
+ CV_OUTPUT_RENDERS, TPD_OUTPUT_RENDERS) = _discover_image_examples()
139
+
140
+
141
+ def _load_cv_image_example(mech_name):
142
+ """Return (files, scan_rates_str) for a CV image example."""
143
+ if not mech_name or mech_name not in CV_IMG_EXAMPLES:
144
+ return [gr.update()] * 2
145
+ entries = CV_IMG_EXAMPLES[mech_name]
146
+ files = [e[0] for e in entries]
147
+ rates_str = ", ".join(f"{e[1]}" for e in entries)
148
+ return files, rates_str
149
+
150
+
151
+ def _load_tpd_image_example(mech_name):
152
+ """Return (image_path, heating_rate_str) for a TPD image example."""
153
+ if not mech_name or mech_name not in TPD_IMG_EXAMPLES:
154
+ return [gr.update()] * 2
155
+ entries = TPD_IMG_EXAMPLES[mech_name]
156
+ return entries[0][0], entries[0][1]
157
+
158
+
159
  def _load_cv_example(example_name):
160
  """Return (files, scan_rates, E0, T, A, C, D, n) for the chosen CV example."""
161
  if not example_name or example_name not in CV_EXAMPLES:
 
860
  "Axis bounds are **auto-detected** via OCR — "
861
  "override in Advanced if needed."
862
  )
863
+ if CV_IMG_EXAMPLES:
864
+ with gr.Accordion("Try an example (click to load)", open=True):
865
+ with gr.Row():
866
+ cv_img_example_dd = gr.Dropdown(
867
+ label="Select mechanism",
868
+ choices=list(CV_IMG_EXAMPLES.keys()),
869
+ value=None,
870
+ interactive=True,
871
+ scale=3,
872
+ )
873
+ cv_img_example_btn = gr.Button(
874
+ "Load Example", variant="secondary", scale=1,
875
+ )
876
+ cv_img_example_gallery = gr.Gallery(
877
+ label="Example output (classification → posteriors → reconstruction)",
878
+ columns=3, height=220, object_fit="contain",
879
+ interactive=False,
880
+ )
881
  cv_img_files = gr.File(
882
  label="Plot images (one per scan rate)",
883
  file_count="multiple",
 
948
  inputs=[cv_img_mech_dd, cv_img_state],
949
  outputs=[cv_img_posteriors, cv_img_param_table, cv_img_recon, cv_img_conc],
950
  )
951
+ if CV_IMG_EXAMPLES:
952
+ def _on_cv_img_example_select(mech_name):
953
+ files, rates = _load_cv_image_example(mech_name)
954
+ renders = CV_OUTPUT_RENDERS.get(mech_name, {})
955
+ gallery_imgs = [
956
+ renders[k] for k in
957
+ ["classification", "posteriors", "reconstruction"]
958
+ if k in renders
959
+ ]
960
+ return files, rates, gallery_imgs
961
+
962
+ cv_img_example_btn.click(
963
+ _on_cv_img_example_select,
964
+ inputs=[cv_img_example_dd],
965
+ outputs=[cv_img_files, cv_img_scan_rate, cv_img_example_gallery],
966
+ )
967
+ cv_img_example_dd.change(
968
+ lambda m: [
969
+ CV_OUTPUT_RENDERS.get(m, {}).get(k)
970
+ for k in ["classification", "posteriors", "reconstruction"]
971
+ if CV_OUTPUT_RENDERS.get(m, {}).get(k)
972
+ ],
973
+ inputs=[cv_img_example_dd],
974
+ outputs=[cv_img_example_gallery],
975
+ )
976
 
977
  # =================================================================
978
  # Tab 2: TPD Analysis
 
1053
  "Axis bounds are **auto-detected** via OCR — "
1054
  "override in Advanced if needed."
1055
  )
1056
+ if TPD_IMG_EXAMPLES:
1057
+ with gr.Accordion("Try an example (click to load)", open=True):
1058
+ with gr.Row():
1059
+ tpd_img_example_dd = gr.Dropdown(
1060
+ label="Select mechanism",
1061
+ choices=list(TPD_IMG_EXAMPLES.keys()),
1062
+ value=None,
1063
+ interactive=True,
1064
+ scale=3,
1065
+ )
1066
+ tpd_img_example_btn = gr.Button(
1067
+ "Load Example", variant="secondary", scale=1,
1068
+ )
1069
+ tpd_img_example_gallery = gr.Gallery(
1070
+ label="Example output (classification → posteriors → reconstruction)",
1071
+ columns=3, height=220, object_fit="contain",
1072
+ interactive=False,
1073
+ )
1074
  tpd_img_files = gr.File(
1075
  label="Plot images (one per heating rate)",
1076
  file_count="multiple",
 
1128
  inputs=[tpd_img_mech_dd, tpd_img_state],
1129
  outputs=[tpd_img_posteriors, tpd_img_param_table, tpd_img_recon],
1130
  )
1131
+ if TPD_IMG_EXAMPLES:
1132
+ def _on_tpd_img_example_select(mech_name):
1133
+ files, betas = _load_tpd_image_example(mech_name)
1134
+ renders = TPD_OUTPUT_RENDERS.get(mech_name, {})
1135
+ gallery_imgs = [
1136
+ renders[k] for k in
1137
+ ["classification", "posteriors", "reconstruction"]
1138
+ if k in renders
1139
+ ]
1140
+ return files, betas, gallery_imgs
1141
+
1142
+ tpd_img_example_btn.click(
1143
+ _on_tpd_img_example_select,
1144
+ inputs=[tpd_img_example_dd],
1145
+ outputs=[tpd_img_files, tpd_img_betas, tpd_img_example_gallery],
1146
+ )
1147
+ tpd_img_example_dd.change(
1148
+ lambda m: [
1149
+ TPD_OUTPUT_RENDERS.get(m, {}).get(k)
1150
+ for k in ["classification", "posteriors", "reconstruction"]
1151
+ if TPD_OUTPUT_RENDERS.get(m, {}).get(k)
1152
+ ],
1153
+ inputs=[tpd_img_example_dd],
1154
+ outputs=[tpd_img_example_gallery],
1155
+ )
1156
 
1157
  # =================================================================
1158
  # Tab 3: About
demo_renders/ec_Ads_11mVs_physical.png ADDED

Git LFS Details

  • SHA256: 2b89bf71860c499d765a93da8fd6fb254a5672b8464a41702f3aca0d13219751
  • Pointer size: 130 Bytes
  • Size of remote file: 50.5 kB
demo_renders/ec_Ads_244mVs_physical.png ADDED

Git LFS Details

  • SHA256: b58aae2a9e4bccd3e41a8949ea123e5ce8814737518161810ea26209c0df3148
  • Pointer size: 130 Bytes
  • Size of remote file: 56.2 kB
demo_renders/ec_Ads_4025mVs_physical.png ADDED

Git LFS Details

  • SHA256: 674ece0dfcf0eb68852307c75b8ff73d19fd2c834b7fe6eaf65bb3e39427857d
  • Pointer size: 130 Bytes
  • Size of remote file: 40.3 kB
demo_renders/ec_Ads_classification.png ADDED

Git LFS Details

  • SHA256: 8e7406f0019f13c5c37022fff36bfc5f2838f9f710f6ed5cdb0474a04f7d23d5
  • Pointer size: 130 Bytes
  • Size of remote file: 28.8 kB
demo_renders/ec_Ads_concentration.png ADDED

Git LFS Details

  • SHA256: f2174382f8e38cb2f05ef18e51b537d7faf91c1b6469bd849bad8f79051d3fe3
  • Pointer size: 130 Bytes
  • Size of remote file: 98.3 kB
demo_renders/ec_Ads_posteriors.png ADDED

Git LFS Details

  • SHA256: 2f2c99ab94fd5962978f825d533272042a0a8771690a82fde8e93296fd72a1bb
  • Pointer size: 130 Bytes
  • Size of remote file: 80.4 kB
demo_renders/ec_Ads_reconstruction.png ADDED

Git LFS Details

  • SHA256: 18d5841f4cd489b44988621955c4d1e7b50f85164890d25c4adffbd034bd1926
  • Pointer size: 131 Bytes
  • Size of remote file: 147 kB
demo_renders/ec_BV_11mVs_physical.png ADDED

Git LFS Details

  • SHA256: a241773e00a9a88a2b767250484cd5066631957acf9fe79de5ea950846d29356
  • Pointer size: 130 Bytes
  • Size of remote file: 54.9 kB
demo_renders/ec_BV_244_conc_arrows.png ADDED

Git LFS Details

  • SHA256: dc5b612a4c32e57f45e8b8d18b6c5ec6302a3ff9f673ea6cc3f3e53a98f6f2c3
  • Pointer size: 130 Bytes
  • Size of remote file: 72.3 kB
demo_renders/ec_BV_244_single_cls.png ADDED

Git LFS Details

  • SHA256: 2fa6514919f2a389a78adb8e82b3760f7a46c2777dadd27be284e65f5d506bfe
  • Pointer size: 130 Bytes
  • Size of remote file: 33.7 kB
demo_renders/ec_BV_244_single_conc.png ADDED

Git LFS Details

  • SHA256: af2a673fdbbee863c9601a411d9bd51766134c8220d17a44ef9cbb037d6bdba1
  • Pointer size: 130 Bytes
  • Size of remote file: 73.5 kB
demo_renders/ec_BV_244_single_recon.png ADDED

Git LFS Details

  • SHA256: fe804f543ba4c062594bde20c45b2f6deb644371a358f3f8aa615c52f13eb241
  • Pointer size: 130 Bytes
  • Size of remote file: 75.8 kB
demo_renders/ec_BV_244_single_table.png ADDED

Git LFS Details

  • SHA256: 41a3b2a85bcab254f66d6ece759925ae64cc5ecce129affc812cf50f0ff12b9f
  • Pointer size: 130 Bytes
  • Size of remote file: 74.7 kB
demo_renders/ec_BV_244mVs_physical.png ADDED

Git LFS Details

  • SHA256: 80506cf275d1faef3371a7efb643e477417722d0da9d9108d926576f5fe40daf
  • Pointer size: 130 Bytes
  • Size of remote file: 57 kB
demo_renders/ec_BV_3scan_cls.png ADDED

Git LFS Details

  • SHA256: 834cec95a3d0ed45dcebef88733cc3ecaf44c020b9d8b57946a3d978629360f4
  • Pointer size: 130 Bytes
  • Size of remote file: 32.7 kB
demo_renders/ec_BV_3scan_conc.png ADDED

Git LFS Details

  • SHA256: df27274f7b6e401cb876591ad33b10d856a2e3d0ba9f32f20a833466925d6d72
  • Pointer size: 131 Bytes
  • Size of remote file: 148 kB
demo_renders/ec_BV_3scan_conc_arrows.png ADDED

Git LFS Details

  • SHA256: dbeedd35cab98122de1bd229e43e6e5d5ca157889460bb26603d9a0b389ec315
  • Pointer size: 131 Bytes
  • Size of remote file: 142 kB
demo_renders/ec_BV_3scan_table.png ADDED

Git LFS Details

  • SHA256: 21737dc7243f555df3f1c1deb3823805ebf97c87b1415555185d80ad21134d90
  • Pointer size: 130 Bytes
  • Size of remote file: 75.4 kB
demo_renders/ec_BV_4025mVs_physical.png ADDED

Git LFS Details

  • SHA256: 7d643787952808bc2ec2b948ef6bb7da7df87c0edb8cf1b4439f4ae7ab530825
  • Pointer size: 130 Bytes
  • Size of remote file: 46.7 kB
demo_renders/ec_BV_as_MHC_posteriors.png ADDED

Git LFS Details

  • SHA256: 741da7fb60e6880a3b3e4beb4b052de3e48c69baf3a0f44e90958b8ac8818d9e
  • Pointer size: 130 Bytes
  • Size of remote file: 64.2 kB
demo_renders/ec_BV_as_MHC_reconstruction.png ADDED

Git LFS Details

  • SHA256: 4dbf3b1ec16d1ba7b9ba0eafacbc4af3aff362e5d1b02daadc490ac414e14903
  • Pointer size: 131 Bytes
  • Size of remote file: 159 kB
demo_renders/ec_BV_classification.png ADDED

Git LFS Details

  • SHA256: 834cec95a3d0ed45dcebef88733cc3ecaf44c020b9d8b57946a3d978629360f4
  • Pointer size: 130 Bytes
  • Size of remote file: 32.7 kB
demo_renders/ec_BV_concentration.png ADDED

Git LFS Details

  • SHA256: c52903a2b3456dcda7d77b734674467e6bf9a0d6b188581c9b5e73430fd09e81
  • Pointer size: 131 Bytes
  • Size of remote file: 121 kB
demo_renders/ec_BV_phys_classification.png ADDED

Git LFS Details

  • SHA256: 834cec95a3d0ed45dcebef88733cc3ecaf44c020b9d8b57946a3d978629360f4
  • Pointer size: 130 Bytes
  • Size of remote file: 32.7 kB
demo_renders/ec_BV_phys_reconstruction.png ADDED

Git LFS Details

  • SHA256: 4e64d27205ec1325b15e6485226e20ab1a51548ec62f6747cfda181d00d24779
  • Pointer size: 131 Bytes
  • Size of remote file: 139 kB
demo_renders/ec_BV_posteriors.png ADDED

Git LFS Details

  • SHA256: 37c277c8cfafb51e966008c632f15e3dfdddb461a3a9cc3c535a7994bb366e29
  • Pointer size: 130 Bytes
  • Size of remote file: 77.5 kB
demo_renders/ec_BV_reconstruction.png ADDED

Git LFS Details

  • SHA256: 640364fbc62cf18bb90ad0d6d44545f8778e2ba059ae07f187cd3aeff56921cc
  • Pointer size: 131 Bytes
  • Size of remote file: 139 kB
demo_renders/ec_EC_10mVs_physical.png ADDED

Git LFS Details

  • SHA256: d41feda89fa39d2f0d9310a522a78f4f562b0b1aac52b77076c042f6e7c56d40
  • Pointer size: 130 Bytes
  • Size of remote file: 58.8 kB
demo_renders/ec_EC_127mVs_physical.png ADDED

Git LFS Details

  • SHA256: 9a21e276d12677dd33c56430b64894372d928cda04abb2a6d62630bdc47cc2e6
  • Pointer size: 130 Bytes
  • Size of remote file: 66.7 kB
demo_renders/ec_EC_7638mVs_physical.png ADDED

Git LFS Details

  • SHA256: 3b0e8859294c9a1a3920cd90c340e081929269a410bd4f3f168032a4166422fe
  • Pointer size: 130 Bytes
  • Size of remote file: 52.8 kB
demo_renders/ec_EC_classification.png ADDED

Git LFS Details

  • SHA256: 447d566d5847f5a3301b95c735c942de0a8078eb497ab8653e86fbec23dd7c7f
  • Pointer size: 130 Bytes
  • Size of remote file: 28.9 kB
demo_renders/ec_EC_concentration.png ADDED

Git LFS Details

  • SHA256: 002da7625a79f0d1c0aea0b13f85937f6beb77d8815c3e1530593245f48d3249
  • Pointer size: 131 Bytes
  • Size of remote file: 104 kB
demo_renders/ec_EC_posteriors.png ADDED

Git LFS Details

  • SHA256: 1eba61371a2f46d68f74086625556fa50329f652f8b694af03bbd1f8be8b3f71
  • Pointer size: 130 Bytes
  • Size of remote file: 81.6 kB
demo_renders/ec_EC_reconstruction.png ADDED

Git LFS Details

  • SHA256: 058ecab86b19414fa2d098a0de99bd86505548fc9b785326f2ae9395779f3e9a
  • Pointer size: 131 Bytes
  • Size of remote file: 159 kB
demo_renders/ec_LH_10000mVs_physical.png ADDED

Git LFS Details

  • SHA256: b5026c090f5f8d84e2fe780d166437040a659a06338e659c4d8b05460129c09b
  • Pointer size: 130 Bytes
  • Size of remote file: 43.2 kB
demo_renders/ec_LH_10mVs_physical.png ADDED

Git LFS Details

  • SHA256: e445f0b7334aaff4601bbdb78f479ec6a077b72118983e213052804009cbcfd1
  • Pointer size: 130 Bytes
  • Size of remote file: 44.9 kB
demo_renders/ec_LH_668mVs_physical.png ADDED

Git LFS Details

  • SHA256: 1f9f2519d51b9a14d0c2f5b5ca26bf9a31ed2a7fe04a06d37c13525dfdf73f20
  • Pointer size: 130 Bytes
  • Size of remote file: 41.1 kB
demo_renders/ec_LH_classification.png ADDED

Git LFS Details

  • SHA256: ff6f82614600218a8dee402d3e74990b85b2bdec1af424c3a54b3bd12dfa1bec
  • Pointer size: 130 Bytes
  • Size of remote file: 29 kB
demo_renders/ec_LH_concentration.png ADDED

Git LFS Details

  • SHA256: b734570a432b73ebed46521283523bfaa84094d59f5cfdad116ff980d6f3131a
  • Pointer size: 131 Bytes
  • Size of remote file: 119 kB
demo_renders/ec_LH_posteriors.png ADDED

Git LFS Details

  • SHA256: 1909c6b62fbe06c3bd0f053707221577cd9ca45c032c98e53e4dce770aa94469
  • Pointer size: 130 Bytes
  • Size of remote file: 97.3 kB
demo_renders/ec_LH_reconstruction.png ADDED

Git LFS Details

  • SHA256: 220f24ccf0ba8c966afc01745be15d179be491a083757aa5df2d9b8c4c6813c4
  • Pointer size: 131 Bytes
  • Size of remote file: 151 kB
demo_renders/ec_MHC_11mVs_physical.png ADDED

Git LFS Details

  • SHA256: 7abfee17d148deab4ede6d8d1419ebfefe234b206518c8f6fb32b80be83784ab
  • Pointer size: 130 Bytes
  • Size of remote file: 54.6 kB
demo_renders/ec_MHC_244mVs_physical.png ADDED

Git LFS Details

  • SHA256: e4c20dde61a5f48bd729520d1756a551767e8a992d55e1477c9f0d9297c49dcc
  • Pointer size: 130 Bytes
  • Size of remote file: 57.4 kB
demo_renders/ec_MHC_4025mVs_physical.png ADDED

Git LFS Details

  • SHA256: 9688726a0fd5f9635f4402df5a55659fab80d39b92c15aa5342928cf1771fdae
  • Pointer size: 130 Bytes
  • Size of remote file: 46 kB
demo_renders/ec_MHC_classification.png ADDED

Git LFS Details

  • SHA256: d2c9a87fbbeb59cdfe9bca0aa182d31fdb7ab22bc1c12989474eab347f6b61d1
  • Pointer size: 130 Bytes
  • Size of remote file: 29.2 kB
demo_renders/ec_MHC_concentration.png ADDED

Git LFS Details

  • SHA256: ecd8415fd8d5f4905fb5916a5ad96b9b678cebebb2d06b3de7cdf2702ee6f8d7
  • Pointer size: 131 Bytes
  • Size of remote file: 126 kB
demo_renders/ec_MHC_posteriors.png ADDED

Git LFS Details

  • SHA256: 785d98fa6e320cb965fb2efa4b4ce4c2c650ffdc726984c40b5422b09ef31eb0
  • Pointer size: 130 Bytes
  • Size of remote file: 71.5 kB
demo_renders/ec_MHC_reconstruction.png ADDED

Git LFS Details

  • SHA256: b16c114c9afa9b31d858bd109b0abbfc9a07fe0d98404c31de39d2fe591a8c2b
  • Pointer size: 131 Bytes
  • Size of remote file: 139 kB