From 0c158db48f36d053525fae7a8e7e0968fa00bdef Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Tue, 24 Nov 2020 11:01:55 +0100 Subject: [PATCH] Add hkl-precision select For #19 --- pyzebra/app/panel_ccl_integrate.py | 21 ++++++++++++++++++--- pyzebra/ccl_io.py | 4 ++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pyzebra/app/panel_ccl_integrate.py b/pyzebra/app/panel_ccl_integrate.py index fc775c2..188f453 100644 --- a/pyzebra/app/panel_ccl_integrate.py +++ b/pyzebra/app/panel_ccl_integrate.py @@ -502,7 +502,12 @@ def create(): for s, export in zip(scan_table_source.data["scan"], scan_table_source.data["export"]): if not export: del export_data["scan"][s] - pyzebra.export_comm(export_data, temp_file, lorentz=lorentz_toggle.active) + pyzebra.export_comm( + export_data, + temp_file, + lorentz=lorentz_toggle.active, + hkl_precision=int(hkl_precision_select.value), + ) with open(f"{temp_file}{ext}") as f: preview_output_textinput.value = f.read() @@ -510,6 +515,8 @@ def create(): preview_output_button = Button(label="Preview file", default_size=220) preview_output_button.on_click(preview_output_button_callback) + hkl_precision_select = Select(options=["2", "3", "4"], value="2", default_size=220) + def export_results(det_data): if det_data["meta"]["indices"] == "hkl": ext = ".comm" @@ -522,7 +529,12 @@ def create(): for s, export in zip(scan_table_source.data["scan"], scan_table_source.data["export"]): if not export: del export_data["scan"][s] - pyzebra.export_comm(export_data, temp_file, lorentz=lorentz_toggle.active) + pyzebra.export_comm( + export_data, + temp_file, + lorentz=lorentz_toggle.active, + hkl_precision=int(hkl_precision_select.value), + ) with open(f"{temp_file}{ext}") as f: output_content = f.read() @@ -556,7 +568,10 @@ def create(): ), ) - export_layout = column(preview_output_textinput, row(preview_output_button, save_button)) + export_layout = column( + preview_output_textinput, + row(column(preview_output_button, hkl_precision_select), save_button), + ) upload_div = Div(text="Or upload .ccl file:") append_upload_div = Div(text="append extra .ccl/.dat files:") diff --git a/pyzebra/ccl_io.py b/pyzebra/ccl_io.py index c09de0e..df2f36d 100644 --- a/pyzebra/ccl_io.py +++ b/pyzebra/ccl_io.py @@ -222,7 +222,7 @@ def parse_1D(fileobj, data_type): return {"meta": metadata, "scan": scan} -def export_comm(data, path, lorentz=False): +def export_comm(data, path, lorentz=False, hkl_precision=2): """exports data in the *.comm format :param lorentz: perform Lorentz correction :param path: path to file + name @@ -247,7 +247,7 @@ def export_comm(data, path, lorentz=False): if data["meta"]["indices"] == "hkl": hkl_str = f"{int(h):6}{int(k):6}{int(l):6}" else: # data["meta"]["indices"] == "real" - hkl_str = f"{h:8.4g}{k:8.4g}{l:8.4g}" + hkl_str = f"{h:8.{hkl_precision}f}{k:8.{hkl_precision}f}{l:8.{hkl_precision}f}" area_method = data["meta"]["area_method"] area_n = scan["fit"][area_method].n