From 692fb9cd33b46c4175a74e17474cef40dac54ce0 Mon Sep 17 00:00:00 2001
From: Laurent Mercadier <laurent.mercadier@xfel.eu>
Date: Wed, 26 Jun 2019 09:30:45 +0200
Subject: [PATCH] Adds runFolder as attribute

---
 Load.py | 7 +++++--
 xgm.py  | 6 ++++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/Load.py b/Load.py
index c91bd91..9a86856 100644
--- a/Load.py
+++ b/Load.py
@@ -328,8 +328,8 @@ def load(fields, runNB, proposalNB, semesterNB, topic='SCS', display=False,
                 or dictionnaries defining a custom mnemonic such as
                 {"extra": {'SCS_CDIFFT_MAG/SUPPLY/CURRENT', 'actual_current.value', None}}
             runNB: run number as integer
-            proposalNB: string of the proposal number
-            semesterNB: string of the semester number where the proposal data are saved
+            proposalNB: string or int of the proposal number e.g. 'p002252' or 2252
+            semesterNB: string or int of the semester number where the proposal data are saved
             topic: string of the topic
             display: boolean, whether to show the run.info or not
             validate: boolean, whether to run karabo-data-validate or not
@@ -346,6 +346,8 @@ def load(fields, runNB, proposalNB, semesterNB, topic='SCS', display=False,
             res: an xarray DataSet with aligned trainIds
     """
 
+    if type(proposalNB)==int:
+        proposalNB = 'p{:06d}'.format(proposalNB)
     runFolder = runpath.format(topic, semesterNB, proposalNB, runNB)
     run = RunDirectory(runFolder).select_trains(subset)
 
@@ -401,4 +403,5 @@ def load(fields, runNB, proposalNB, semesterNB, topic='SCS', display=False,
     result = dict(zip(keys, aligned_vals))
     result = xr.Dataset(result)
     result.attrs['run'] = run
+    result.attrs['runFolder'] = runFolder
     return result
diff --git a/xgm.py b/xgm.py
index 4602cc1..7a02764 100644
--- a/xgm.py
+++ b/xgm.py
@@ -177,7 +177,8 @@ def cleanXGMdata(data, npulses=None, sase3First=True):
         mergeList.append(res)
     mergeList.append(data.drop(dropList))
     subset = xr.merge(mergeList, join='inner')
-    subset.attrs['run'] = data.attrs['run']
+    for k in data.attrs.keys():
+        subset.attrs[k] = data.attrs[k]
     return subset
 
 
@@ -937,7 +938,8 @@ def matchXgmTimPulseId(data, use_apd=True, intstart=None, intstop=None,
                 dropList.append('MCP{}apd'.format(mcp))
     mergeList.append(ndata.drop(dropList))
     subset = xr.merge(mergeList, join='inner')
-    subset.attrs['run'] = ndata.attrs['run']
+    for k in ndata.attrs.keys():
+        subset.attrs[k] = ndata.attrs[k]
     return subset
 
 
-- 
GitLab