Skip to content

Commit 3692303

Browse files
committed
Added a custom rename parameter for file converter, using the sample name and the ID or filename
1 parent 0ff4388 commit 3692303

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

pyNexafs/gui/widgets/converter.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,15 @@ def __init__(self, parsers: list[Type[parser_base | scan_base]] = [], parent=Non
204204
self._override_checkbox = override_checkbox = QtWidgets.QCheckBox(
205205
"Override Existing Files?"
206206
)
207+
self._rename_checkbox = rename_checkbox = QtWidgets.QCheckBox(
208+
"Rename? (`<sample>_<scan_id>.asc`)"
209+
)
207210
exec_layout.addWidget(conversion_text, 0, 0, 1, 2)
208211
exec_layout.addWidget(copy_button, 0, 2, 1, 2)
209212
exec_layout.addWidget(override_checkbox, 1, 0, 1, 2)
210-
exec_layout.addWidget(save_button, 1, 2, 1, 2)
211-
exec_layout.addWidget(progress, 3, 0, 1, 4)
213+
exec_layout.addWidget(rename_checkbox, 1, 2, 1, 2)
214+
exec_layout.addWidget(progress, 2, 0, 1, 4)
215+
exec_layout.addWidget(save_button, 3, 0, 1, 4)
212216

213217
## Difference viewer
214218
diff_widget = QtWidgets.QWidget()
@@ -434,7 +438,34 @@ def on_save_to_file(self):
434438
converter = AU_PARSERS.MEX2_to_QANT_AUMainAsc
435439
self.progress.setValue(self.progress.value() + 1)
436440
# Convert to ascii format.
437-
file = "".join(parser.filename.split(".")[:-1]) + ".asc"
441+
if self._rename_checkbox.isChecked() and (
442+
"SR14ID01NEXSCAN:saveData_comment1" in parser.params
443+
or "Comment 1" in parser.params
444+
or "Sample" in parser.params
445+
):
446+
# Get the sample name
447+
if "SR14ID01NEXSCAN:saveData_comment1" in parser.params:
448+
sample = parser.params["SR14ID01NEXSCAN:saveData_comment1"]
449+
elif "Comment 1" in parser.params:
450+
sample = parser.params["Comment 1"]
451+
elif "Sample" in parser.params:
452+
sample = parser.params["Sample"]
453+
else:
454+
print(f"Name error, skipping {parser}")
455+
continue
456+
457+
# Get the scan ID / number
458+
if "mda_scan_number" in parser.params:
459+
scan_id = parser.params["mda_scan_number"]
460+
elif "Scan Number" in parser.params:
461+
scan_id = parser.params["Scan Number"]
462+
else:
463+
# use the filename?
464+
scan_id = "".join(parser.filename.split(".")[:-1])
465+
# Create the new filename
466+
file = f"{sample}_{scan_id}.asc"
467+
else:
468+
file = "".join(parser.filename.split(".")[:-1]) + ".asc"
438469
path = os.path.join(base_dir, file)
439470
exists = os.path.exists(path)
440471
if self._override_checkbox.isChecked() or not exists:

pyNexafs/parsers/au/aus_sync/MEX2.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,12 @@ class MEX2_NEXAFS(parser_base, metaclass=MEX2_NEXAFS_META):
374374
"MEX2ES01DPP01:ch2:W:ArrayData": "Fluorescence Detector 2",
375375
"MEX2ES01DPP01:ch3:W:ArrayData": "Fluorescence Detector 3",
376376
"MEX2ES01DPP01:ch4:W:ArrayData": "Fluorescence Detector 4",
377-
# XDI File:
377+
#### ASC Files:
378+
"mda_version": "MDA File Version",
379+
"mda_scan_number": "Scan Number",
380+
"mda_rank": "Overall scan dimension",
381+
"mda_dimensions": "Total requested scan size",
382+
#### XDI File:
378383
# "energy": "Energy",
379384
# "bragg": "Bragg",
380385
# "count_time": "Count Time",

0 commit comments

Comments
 (0)