diff --git a/config/settings.properties b/config/settings.properties index d7dcd54..4de8f8c 100644 --- a/config/settings.properties +++ b/config/settings.properties @@ -1,12 +1,12 @@ -#Tue Feb 11 17:02:23 CET 2020 +#Wed Feb 12 00:37:11 CET 2020 HARMONIC_ID_1=1 ALPHA_ID_2=0.0 -ENERGY=708.5 +ENERGY=710.8 ALPHA_ID_1=0.0 -POL_ID_2=Circ_Minus -POL_ID_1=Circ_Plus +POL_ID_2=Lin_Hor +POL_ID_1=Lin_Hor OFFSET_ID_1=-2.5 NORM_FILE=/sls/X11MA/data/X11MA/Data1/public/PEEM/2020_02/20200206/Take_Image_402/0/i402_1_0.tif -ID=ID1_ID2 +ID=ID2 OFFSET_ID_2=-2.5 HARMONIC_ID_2=1 diff --git a/config/variables.properties b/config/variables.properties index fb6539f..1425fae 100644 --- a/config/variables.properties +++ b/config/variables.properties @@ -1,2 +1,2 @@ -#Tue Feb 11 17:26:16 CET 2020 -FileSequentialNumber=577 +#Wed Feb 12 15:36:01 CET 2020 +FileSequentialNumber=628 diff --git a/devices/norm.properties b/devices/norm.properties index 3d39da4..0554abf 100644 --- a/devices/norm.properties +++ b/devices/norm.properties @@ -1,4 +1,4 @@ -#Mon Feb 10 22:27:33 CET 2020 +#Wed Feb 12 11:25:27 CET 2020 spatialCalOffsetY=NaN spatialCalOffsetX=NaN colormapLogarithmic=false @@ -6,7 +6,7 @@ scale=1.0 grayscale=false spatialCalScaleX=NaN spatialCalScaleY=NaN -colormapMax=1.5 +colormapMax=0.5 rescaleOffset=0.0 roiWidth=-1 colormap=Grayscale diff --git a/script/devices/eiger.py b/script/devices/eiger.py index 8fea2a1..4e3dc62 100644 --- a/script/devices/eiger.py +++ b/script/devices/eiger.py @@ -141,12 +141,16 @@ def remove_outliers(imgdata, threshold = 1e9, replace_value=None): return data """ -def _save_as_tiff(data, filename, check=False, show = False): +def _save_as_tiff(data, filename, check=False, show = False, metadata={}): if type(data) == Data: ip = load_array(data.matrix) else: ip = data + info = "Timestamp: " + time.strftime("%y/%m/%d %H:%M:%S",time.localtime()) + for key,val in metadata.items(): + info = info + "\n" + str(key) + ": " + str(val) + ip.setProperty("Info", info) data = get_ip_array(ip) if not os.path.exists(os.path.dirname(filename)): os.makedirs(os.path.dirname(filename)) @@ -159,12 +163,11 @@ def _save_as_tiff(data, filename, check=False, show = False): print (" ------> Error reading array: " + str(filename)) -def save_as_tiff(data, filename, check=False, show = False, parallel=True): +def save_as_tiff(data, filename, check=False, show = False, parallel=True, metadata={}): if parallel: - return fork((_save_as_tiff,(data, filename, check, show)),) + return fork((_save_as_tiff,(data, filename, check, show, metadata)),) else: - _save_as_tiff(data, filename, check, show) - + _save_as_tiff(data, filename, check, show, metadata) def trigger_eiger(wait=False): eiger.start() @@ -172,6 +175,18 @@ def trigger_eiger(wait=False): eiger.waitNewImage(20000) +def set_exposure_time(exposure): + if exposure == eiger.getExposure(): + return + started = eiger.isStarted() + if started: + eiger.stop() + time.sleep(0.2) + eiger.setExposure(exposure) + if started: + if eiger.grabMode==eiger.GrabMode.Continuous: + eiger.start() + if False: integrate_roi(image, 10, 5, 20, 10) diff --git a/script/templates/Eiger2Img.py b/script/templates/Eiger2Img.py index 64ff1e5..67ff15d 100644 --- a/script/templates/Eiger2Img.py +++ b/script/templates/Eiger2Img.py @@ -33,7 +33,7 @@ if METHOD == "Two_Energies": start = time.time() threads = [] -path = "{data}/{year}_{month}/{date}" + "/" + METHOD + "_{seq}%03d" +path = "{data}/{year}_{month}/{date}" + "/" + "{seq}%03d_" + METHOD set_exec_pars(path= path, format="txt", layout="table", open=True) data_path = get_context().setup.expandPath(path) #get_context().incrementFileSequentialNumber() @@ -165,6 +165,8 @@ def save_image_file(frame, cycle=-1, frame_index=0): eiger.stop() eiger.grabMode=eiger.GrabMode.Single +time.sleep(0.3) + try: #Do the measurement loop for cycle in range(1, MEASUREMENTS + 1): @@ -182,7 +184,7 @@ try: for i in range(2): if (cycle == 1) or (METHOD != "Take_Image"): assert_status_ok() - eiger.setExposure(EXPOSURE[i]) + set_exposure_time(EXPOSURE[i]) print "--- Grabing " + str(AVERAGE[i])+ " frames - cycle: " + str(cycle) + " step: " + str(i) ret = grab_frames(image, AVERAGE[i], roi=None, wait_next=True) frames.append(average_frames(ret) if AVERAGE[i] > 1 else ret[0]) diff --git a/script/templates/EigerAbsSpec.py b/script/templates/EigerAbsSpec.py index 24e01ad..e70867d 100644 --- a/script/templates/EigerAbsSpec.py +++ b/script/templates/EigerAbsSpec.py @@ -19,9 +19,10 @@ start = time.time() eiger.stop() eiger.grabMode=eiger.GrabMode.Single -eiger.setExposure(EXPOSURE) +time.sleep(0.3) +set_exposure_time(EXPOSURE) -set_exec_pars(path="{data}/{year}_{month}/{date}/AbsortionSpectrum_{seq}%03d", format="csv", layout="table") +set_exec_pars(path="{data}/{year}_{month}/{date}/{seq}%03d_AbsortionSpectrum", format="csv", layout="table") tag= "AbsortionSpectrum_{seq}%03d" rois = create_roi_devices(ROI) diff --git a/script/test/TestChangeExpTime.py b/script/test/TestChangeExpTime.py new file mode 100644 index 0000000..f8e1279 --- /dev/null +++ b/script/test/TestChangeExpTime.py @@ -0,0 +1,52 @@ +EXPOSURE=1.0 +""" +while True: + eiger.stop() + eiger.grabMode=eiger.GrabMode.Single + time.sleep(1.2) + print "-------------" + for i in range(10): + eiger.stop() + time.sleep(0.2) + eiger.setExposure(EXPOSURE) + + eiger.start() + image.waitNext(20000) + rb=caget("X11MA-ES1-SD1:cam1:AcquireTime_RBV",'d') + if abs(rb - EXPOSURE) >0.0001: + raise Exception("Error: " + str(EXPOSURE) + " - " + str(rb)) + print EXPOSURE + EXPOSURE=EXPOSURE+0.1 + #time.sleep(2.0) + + + eiger.grabMode=eiger.GrabMode.Continuous + eiger.start() + + time.sleep(0.25) +""" + +while True: + eiger.stop() + eiger.grabMode=eiger.GrabMode.Single + #time.sleep(0.2) + print "-------------" + for i in range(10): + set_exposure_time(EXPOSURE) + eiger.start() + image.waitNext(20000) + rb=caget("X11MA-ES1-SD1:cam1:AcquireTime_RBV",'d') + if abs(rb - EXPOSURE) >0.0001: + raise Exception("Error: " + str(EXPOSURE) + " - " + str(rb)) + print EXPOSURE + EXPOSURE=EXPOSURE+0.1 + #time.sleep(2.0) + + + eiger.grabMode=eiger.GrabMode.Continuous + eiger.start() + + time.sleep(0.25) + + + \ No newline at end of file