@@ -340,6 +340,13 @@ def fetch_elab_metadata(self, runs: list[str], metadata: dict) -> dict:
340
340
metadata ["elabFTW" ]["scan" ]["pump_polarization" ] = 90
341
341
elif metadata ["elabFTW" ]["scan" ]["pump_polarization" ] == "p" :
342
342
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
343
350
344
351
if (
345
352
"scan" in metadata ["elabFTW" ]
@@ -350,9 +357,49 @@ def fetch_elab_metadata(self, runs: list[str], metadata: dict) -> dict:
350
357
metadata ["elabFTW" ]["scan" ]["probe_polarization" ] = 90
351
358
elif metadata ["elabFTW" ]["scan" ]["probe_polarization" ] == "p" :
352
359
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
353
400
354
401
# 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" :
356
403
if "pump_photon_energy" in metadata ["elabFTW" ].get ("laser_status" , {}):
357
404
del metadata ["elabFTW" ]["laser_status" ]["pump_photon_energy" ]
358
405
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:
367
414
except KeyError :
368
415
pass
369
416
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
+
370
421
return metadata
371
422
372
423
0 commit comments