Skip to content

Commit 55da2c1

Browse files
authored
Merge pull request #551 from OpenCOMPES/mpes_elab_metadata
Mpes elab metadata
2 parents 38c4f31 + bb5f7f9 commit 55da2c1

File tree

4 files changed

+64
-2
lines changed

4 files changed

+64
-2
lines changed

src/sed/core/config_model.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class CopyToolModel(BaseModel):
3333

3434
source: DirectoryPath
3535
dest: DirectoryPath
36+
use: Optional[bool] = None
3637
safety_margin: Optional[float] = None
3738
gid: Optional[int] = None
3839
scheduler: Optional[str] = None

src/sed/core/processor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,9 @@ def __init__(
162162
verbose=self._verbose,
163163
)
164164

165-
self.use_copy_tool = "copy_tool" in self._config["core"]
165+
self.use_copy_tool = "copy_tool" in self._config["core"] and self._config["core"][
166+
"copy_tool"
167+
].pop("use", True)
166168
if self.use_copy_tool:
167169
try:
168170
self.ct = CopyTool(

src/sed/loader/mpes/loader.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,14 @@ def get_files_from_run_id(
792792
recursive=True,
793793
),
794794
)
795+
# Compatibility for old scan format
796+
if not run_files:
797+
run_files = natsorted(
798+
glob.glob(
799+
folder + "/**/Scan" + str(run_id).zfill(3) + "_*." + extension,
800+
recursive=True,
801+
),
802+
)
795803
files.extend(run_files)
796804

797805
# Check if any files are found

src/sed/loader/mpes/metadata.py

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,13 @@ def fetch_elab_metadata(self, runs: list[str], metadata: dict) -> dict:
340340
metadata["elabFTW"]["scan"]["pump_polarization"] = 90
341341
elif metadata["elabFTW"]["scan"]["pump_polarization"] == "p":
342342
metadata["elabFTW"]["scan"]["pump_polarization"] = 0
343+
else:
344+
try:
345+
metadata["elabFTW"]["scan"]["pump_polarization"] = float(
346+
metadata["elabFTW"]["scan"]["pump_polarization"],
347+
)
348+
except ValueError:
349+
pass
343350

344351
if (
345352
"scan" in metadata["elabFTW"]
@@ -350,9 +357,49 @@ def fetch_elab_metadata(self, runs: list[str], metadata: dict) -> dict:
350357
metadata["elabFTW"]["scan"]["probe_polarization"] = 90
351358
elif metadata["elabFTW"]["scan"]["probe_polarization"] == "p":
352359
metadata["elabFTW"]["scan"]["probe_polarization"] = 0
360+
else:
361+
try:
362+
metadata["elabFTW"]["scan"]["probe_polarization"] = float(
363+
metadata["elabFTW"]["scan"]["probe_polarization"],
364+
)
365+
except ValueError:
366+
pass
367+
368+
if (
369+
"scan" in metadata["elabFTW"]
370+
and "pump2_polarization" in metadata["elabFTW"]["scan"]
371+
and isinstance(metadata["elabFTW"]["scan"]["pump2_polarization"], str)
372+
):
373+
if metadata["elabFTW"]["scan"]["pump2_polarization"] == "s":
374+
metadata["elabFTW"]["scan"]["pump2_polarization"] = 90
375+
elif metadata["elabFTW"]["scan"]["pump2_polarization"] == "p":
376+
metadata["elabFTW"]["scan"]["pump2_polarization"] = 0
377+
else:
378+
try:
379+
metadata["elabFTW"]["scan"]["pump2_polarization"] = float(
380+
metadata["elabFTW"]["scan"]["pump2_polarization"],
381+
)
382+
except ValueError:
383+
pass
384+
385+
# fix pump status
386+
if "scan" in metadata["elabFTW"] and "pump_status" in metadata["elabFTW"]["scan"]:
387+
try:
388+
metadata["elabFTW"]["scan"]["pump_status"] = (
389+
"open" if int(metadata["elabFTW"]["scan"]["pump_status"]) else "closed"
390+
)
391+
except ValueError:
392+
pass
393+
if "scan" in metadata["elabFTW"] and "pump2_status" in metadata["elabFTW"]["scan"]:
394+
try:
395+
metadata["elabFTW"]["scan"]["pump2_status"] = (
396+
"open" if int(metadata["elabFTW"]["scan"]["pump2_status"]) else "closed"
397+
)
398+
except ValueError:
399+
pass
353400

354401
# remove pump information if pump not applied:
355-
if not metadata["elabFTW"]["scan"].get("pump_status", 0):
402+
if metadata["elabFTW"]["scan"].get("pump_status", "closed") == "closed":
356403
if "pump_photon_energy" in metadata["elabFTW"].get("laser_status", {}):
357404
del metadata["elabFTW"]["laser_status"]["pump_photon_energy"]
358405
if "pump_repetition_rate" in metadata["elabFTW"].get("laser_status", {}):
@@ -367,6 +414,10 @@ def fetch_elab_metadata(self, runs: list[str], metadata: dict) -> dict:
367414
except KeyError:
368415
pass
369416

417+
if metadata["elabFTW"]["scan"].get("pump2_status", "closed") == "closed":
418+
if "pump2_photon_energy" in metadata["elabFTW"].get("laser_status", {}):
419+
del metadata["elabFTW"]["laser_status"]["pump2_photon_energy"]
420+
370421
return metadata
371422

372423

0 commit comments

Comments
 (0)