Time optimizations
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
#Wed Feb 05 13:59:28 CET 2020
|
||||
#Sun Feb 09 15:51:55 CET 2020
|
||||
HARMONIC_ID_1=1
|
||||
ALPHA_ID_2=0.0
|
||||
ENERGY=800.0
|
||||
ENERGY=708.5
|
||||
ALPHA_ID_1=0.0
|
||||
POL_ID_2=Lin_Hor
|
||||
POL_ID_1=Lin_Hor
|
||||
OFFSET_ID_1=0.0
|
||||
NORM_FILE=/sls/X11MA/data/X11MA/Data1/public/PEEM/2020_02/20200205/Take_Image_350/0/i350_1_0.tif
|
||||
ID=ID2
|
||||
OFFSET_ID_2=0.0
|
||||
POL_ID_2=Circ_Minus
|
||||
POL_ID_1=Circ_Plus
|
||||
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
|
||||
OFFSET_ID_2=-2.5
|
||||
HARMONIC_ID_2=1
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
#Wed Feb 05 14:20:03 CET 2020
|
||||
FileSequentialNumber=381
|
||||
#Tue Feb 11 15:43:01 CET 2020
|
||||
FileSequentialNumber=568
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Wed Feb 05 10:26:08 CET 2020
|
||||
#Sat Feb 08 23:55:14 CET 2020
|
||||
spatialCalOffsetY=NaN
|
||||
spatialCalOffsetX=NaN
|
||||
colormapLogarithmic=false
|
||||
@@ -6,10 +6,10 @@ scale=1.0
|
||||
grayscale=false
|
||||
spatialCalScaleX=NaN
|
||||
spatialCalScaleY=NaN
|
||||
colormapMax=1000.0
|
||||
colormapMax=200.0
|
||||
rescaleOffset=0.0
|
||||
roiWidth=-1
|
||||
colormap=Flame
|
||||
colormap=Grayscale
|
||||
invert=false
|
||||
colormapMin=0.0
|
||||
rotationCrop=false
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Wed Feb 05 13:41:09 CET 2020
|
||||
#Mon Feb 10 22:27:33 CET 2020
|
||||
spatialCalOffsetY=NaN
|
||||
spatialCalOffsetX=NaN
|
||||
colormapLogarithmic=false
|
||||
@@ -6,7 +6,7 @@ scale=1.0
|
||||
grayscale=false
|
||||
spatialCalScaleX=NaN
|
||||
spatialCalScaleY=NaN
|
||||
colormapMax=2.0
|
||||
colormapMax=1.5
|
||||
rescaleOffset=0.0
|
||||
roiWidth=-1
|
||||
colormap=Grayscale
|
||||
@@ -19,7 +19,7 @@ spatialCalUnits=null
|
||||
flipVertically=false
|
||||
roiHeight=-1
|
||||
flipHorizontally=false
|
||||
colormapAutomatic=true
|
||||
colormapAutomatic=false
|
||||
roiY=0
|
||||
roiX=0
|
||||
transpose=false
|
||||
|
||||
@@ -90,10 +90,10 @@ def grab_frame(source, roi=None, wait_next=False, rmv_outliers=True):
|
||||
if wait_next:
|
||||
if str(eiger.grabMode)=="Single":
|
||||
eiger.start()
|
||||
#eigar.waitCacheChange(20000)
|
||||
#eiger.getDataArray().waitCacheChange(2000)
|
||||
source.waitNext(20000)
|
||||
#ret = load_image(Utils.grayscale(source.output, Rectangle(roi[0], roi[1], roi[2], roi[3]) if (roi is not None) else None))
|
||||
time.sleep(1.0)
|
||||
time.sleep(0.01)
|
||||
data=source.data
|
||||
if roi is not None:
|
||||
data = data.getRoi(Rectangle(roi[0], roi[1], roi[2], roi[3]))
|
||||
@@ -141,15 +141,13 @@ 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):
|
||||
if type(data) == Data:
|
||||
ip = load_array(data.matrix)
|
||||
else:
|
||||
ip = data
|
||||
|
||||
data = get_ip_array(ip)
|
||||
#ip.show()
|
||||
#plot(data)
|
||||
if not os.path.exists(os.path.dirname(filename)):
|
||||
os.makedirs(os.path.dirname(filename))
|
||||
save_image(ip, filename,"tiff")
|
||||
@@ -157,10 +155,16 @@ def save_as_tiff(data, filename, check=False, show = False):
|
||||
if check:
|
||||
import java.util.Arrays as Arrays
|
||||
ip=open_image(filename)
|
||||
read = get_ip_array(ip)
|
||||
if not Arrays.deepEquals(read, data):
|
||||
raise Exception("Error reading array")
|
||||
#plot(read)
|
||||
read = get_ip_array(ip)
|
||||
print (" ------> Error reading array: " + str(filename))
|
||||
|
||||
|
||||
def save_as_tiff(data, filename, check=False, show = False, parallel=True):
|
||||
if parallel:
|
||||
fork((_save_as_tiff,(filename, check, show)),)
|
||||
else:
|
||||
_save_as_tiff(data, filename, check, show)
|
||||
|
||||
|
||||
def trigger_eiger(wait=False):
|
||||
eiger.start()
|
||||
|
||||
@@ -288,6 +288,7 @@ def assert_machine_ok(wait = True):
|
||||
ID1status=get_id_control(1)
|
||||
ID2status=get_id_control(2)
|
||||
Ringstatus=get_ring_status()
|
||||
|
||||
oldRingstatus=Ringstatus
|
||||
checkRing=0
|
||||
|
||||
|
||||
@@ -25,12 +25,13 @@ AVERAGE = [int(AVERAGE_1), int(AVERAGE_2)]
|
||||
AVERAGE = [int(AVERAGE_1), int(AVERAGE_2)]
|
||||
ENERGY = [ENERGY_1, ENERGY_2]
|
||||
POLARIZATION = [POLARIZATION_1, POLARIZATION_2]
|
||||
|
||||
|
||||
if METHOD == "Two_Energies":
|
||||
for en in [ENERGY_1, ENERGY_2]:
|
||||
if en < 89.9 or en > 2000:
|
||||
raise Exception("Bad energy argument")
|
||||
|
||||
start = time.time()
|
||||
|
||||
path = "{data}/{year}_{month}/{date}" + "/" + METHOD + "_{seq}%03d"
|
||||
set_exec_pars(path= path, format="txt", layout="table", open=True)
|
||||
@@ -155,14 +156,13 @@ def save_image_file(frame, cycle=-1, frame_index=0):
|
||||
if SHOW_IMAGES:
|
||||
plot(frame.matrix if (type(frame) == Data) else get_ip_array(frame), name = get_image_file_name(cycle, frame_index, True))
|
||||
if AUTO_SAVE and (frame is not None):
|
||||
filename = get_image_file_name(cycle, frame_index)
|
||||
filename = get_image_file_name(cycle, frame_index)
|
||||
save_as_tiff(frame, filename, check=False)
|
||||
log(filename)
|
||||
print filename
|
||||
# log("SV:"+Format(startvoltage,"0.000")+" OB:"+Format(objective,"0.00")+" ST:"+Format(LEEMtemp,"0.0"))
|
||||
|
||||
eiger.stop()
|
||||
eiger.grabMode=eiger.GrabMode.Single
|
||||
eiger.grabMode=eiger.GrabMode.Single
|
||||
try:
|
||||
#Do the measurement loop
|
||||
@@ -175,12 +175,13 @@ try:
|
||||
if METHOD == "Two_Energies":
|
||||
change_energy(ENERGY_1)
|
||||
|
||||
###??? SETAR POLARIZATION?
|
||||
###??? SETAR POLARIZATION?
|
||||
#time.sleep(1)
|
||||
|
||||
for i in range(2):
|
||||
assert_status_ok()
|
||||
eiger.setExposure(EXPOSURE[i])
|
||||
for i in range(2):
|
||||
if (cycle == 1) or (METHOD != "Take_Image"):
|
||||
assert_status_ok()
|
||||
eiger.setExposure(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])
|
||||
@@ -196,7 +197,7 @@ try:
|
||||
switch_pol()
|
||||
if METHOD == "Two_Energies":
|
||||
print "--- Switching energy..."
|
||||
change_energy(ENERGY_2)
|
||||
change_energy(ENERGY_2)
|
||||
#time.sleep(1)
|
||||
|
||||
if (METHOD == "Two_Pol") or (METHOD == "Two_Energies"):
|
||||
@@ -213,7 +214,7 @@ try:
|
||||
# temp = getLEEMtemp()
|
||||
# log(0 , "Temp : " + Format(temp,"0.00") + " OB : " + Format(objective,"0.00") + " StigmaA : " + " StigmaB : " )
|
||||
# Auto average and save
|
||||
|
||||
|
||||
if (METHOD != "Take_Image") and (MEASUREMENTS > 1) and (AUTO_SAVE == 1):
|
||||
print "--- Averaging..."
|
||||
for i in range(len(frames)):
|
||||
@@ -225,8 +226,9 @@ try:
|
||||
measures.append(ip)
|
||||
#av = average_frames(measures) #Result is transposed???
|
||||
av=average_ips (measures, roi=None, as_float=True)
|
||||
save_image_file(av, -1, i)
|
||||
save_image_file(av, -1, i)
|
||||
finally:
|
||||
if not DRY_RUN:
|
||||
close_vg10()
|
||||
eiger.grabMode=eiger.GrabMode.Continuous
|
||||
eiger.grabMode=eiger.GrabMode.Continuous
|
||||
eiger.start()
|
||||
@@ -10,11 +10,13 @@ if get_exec_pars().source == CommandSource.ui:
|
||||
NUMBER_SCANS =1
|
||||
RANGES = [[500.0, 1000.0, 100.0]]
|
||||
|
||||
DRY_RUN=False
|
||||
DRY_RUN=True
|
||||
|
||||
if len(RANGES) == 0:
|
||||
raise Exception("No scan range defined")
|
||||
|
||||
start = time.time()
|
||||
|
||||
eiger.stop()
|
||||
eiger.grabMode=eiger.GrabMode.Single
|
||||
eiger.setExposure(EXPOSURE)
|
||||
@@ -110,4 +112,5 @@ finally:
|
||||
if not DRY_RUN:
|
||||
close_vg10()
|
||||
eiger.grabMode=eiger.GrabMode.Continuous
|
||||
eiger.start()
|
||||
eiger.start()
|
||||
print "Running time: " + str(time.time() - start)
|
||||
21
script/test/BenchGrab.py
Normal file
21
script/test/BenchGrab.py
Normal file
@@ -0,0 +1,21 @@
|
||||
eiger.stop()
|
||||
eiger.grabMode=eiger.GrabMode.Single
|
||||
eiger.setExposure(0.1)
|
||||
AVERAGE=1
|
||||
|
||||
def grab_image(position, scan):
|
||||
eiger.start()
|
||||
#eiger.getDataArray().waitCacheChange(2000)
|
||||
image.waitNext(2000)
|
||||
|
||||
def grab_image(position, scan):
|
||||
#av = grab_frame(image, roi=None, wait_next=True, rmv_outliers=False)
|
||||
frames = grab_frames(image, AVERAGE, roi=None, wait_next=True)
|
||||
av = average_frames(frames)
|
||||
if True:
|
||||
filename = get_exec_pars().path + "/" + ("%03d.tif" % scan.recordIndex)
|
||||
filename = get_context().setup.expandPath(filename)
|
||||
print filename
|
||||
save_as_tiff(av, filename, parallel=True)
|
||||
|
||||
tscan(eiger.dataMatrix, 10, 0.01, before_read=grab_image, save=False, plot_disabled=True)
|
||||
Reference in New Issue
Block a user