From e96e61831748b3151f191a54adbb3ce136f43d45 Mon Sep 17 00:00:00 2001 From: Jun Aishima Date: Thu, 3 Sep 2026 09:56:47 -0400 Subject: [PATCH 1/3] add new baseline stream, write values to Nexus file if available * PGM_Focus_Const --- metadata_exporter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/metadata_exporter.py b/metadata_exporter.py index 2872751..0a33775 100644 --- a/metadata_exporter.py +++ b/metadata_exporter.py @@ -77,6 +77,7 @@ def export_metadata_task(run_client, dry_run=False): .tail(1) ) primary_full = run_client["primary"].read(variables=["xqem01_current2_mean_value"]) + baseline_full = run_client["baseline"].read(variables=["PGM_Focus_Const"]) config_data = run_client["primary"].metadata["configuration"]["mbs"]["data"] config_keys = [ "mbs_escale_min", @@ -104,6 +105,7 @@ def export_metadata_task(run_client, dry_run=False): {k: v.item() for k, v in primary.data_vars.items()} | {k: v for k, v in primary_full.data_vars.items()} | {k: v.item() for k, v in baseline.data_vars.items()} + | {k: v for k, v in baseline_full.data_vars.items()} | {k: config_data.get(k) for k in config_keys} ) @@ -224,6 +226,10 @@ def export_metadata_task(run_client, dry_run=False): nxfile.entry.instrument.monochromator.i0 = nx.NXfield( values["xqem01_current2_mean_value"], units="uA" ) # PV:XF:21IDA-BI{EM:BPM01}Current2:MeanValue_RBV + if "PGM_Focus_Const" in values: + nxfile.entry.instrument.monochromator.c_value = nx.NXfield( + values["PGM_Focus_Const"] + ) nxfile.entry.instrument.manipulator = nx.NXpositioner() nxfile.entry.instrument.manipulator.type = nx.NXfield("6dof-xyzRxRyRz") From 05972a0a387268d251734e7ea541341956840def Mon Sep 17 00:00:00 2001 From: Jun Aishima Date: Thu, 3 Sep 2026 14:59:58 -0400 Subject: [PATCH 2/3] only last value required, so do not read whole array --- metadata_exporter.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/metadata_exporter.py b/metadata_exporter.py index 0a33775..235c717 100644 --- a/metadata_exporter.py +++ b/metadata_exporter.py @@ -55,6 +55,7 @@ def export_metadata_task(run_client, dry_run=False): "EPU57_phase", "PGM_Grating_lines", "PGM_Energy", + "PGM_Focus_Const", "ExitSlitA_h_gap", "ExitSlitA_v_gap", "LT_X", @@ -77,7 +78,6 @@ def export_metadata_task(run_client, dry_run=False): .tail(1) ) primary_full = run_client["primary"].read(variables=["xqem01_current2_mean_value"]) - baseline_full = run_client["baseline"].read(variables=["PGM_Focus_Const"]) config_data = run_client["primary"].metadata["configuration"]["mbs"]["data"] config_keys = [ "mbs_escale_min", @@ -105,7 +105,6 @@ def export_metadata_task(run_client, dry_run=False): {k: v.item() for k, v in primary.data_vars.items()} | {k: v for k, v in primary_full.data_vars.items()} | {k: v.item() for k, v in baseline.data_vars.items()} - | {k: v for k, v in baseline_full.data_vars.items()} | {k: config_data.get(k) for k in config_keys} ) From 2dd5ae5535f8f088e6e85f428db8da2924983286 Mon Sep 17 00:00:00 2001 From: Jun Aishima Date: Thu, 3 Sep 2026 15:44:08 -0400 Subject: [PATCH 3/3] fix indentation * make more consistent --- metadata_exporter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/metadata_exporter.py b/metadata_exporter.py index 235c717..c6378ac 100644 --- a/metadata_exporter.py +++ b/metadata_exporter.py @@ -223,12 +223,12 @@ def export_metadata_task(run_client, dry_run=False): ) # PV:XF:21IDC-OP{Slt:1A-Ax:A1_VG}Mtr.RBV if "xqem01_current2_mean_value" in values: nxfile.entry.instrument.monochromator.i0 = nx.NXfield( - values["xqem01_current2_mean_value"], units="uA" + values["xqem01_current2_mean_value"], units="uA" ) # PV:XF:21IDA-BI{EM:BPM01}Current2:MeanValue_RBV if "PGM_Focus_Const" in values: nxfile.entry.instrument.monochromator.c_value = nx.NXfield( - values["PGM_Focus_Const"] - ) + values["PGM_Focus_Const"] + ) nxfile.entry.instrument.manipulator = nx.NXpositioner() nxfile.entry.instrument.manipulator.type = nx.NXfield("6dof-xyzRxRyRz")