135 lines
3.8 KiB
Python
135 lines
3.8 KiB
Python
def tt_off_acq(shots):
|
|
import numpy as np
|
|
from epics import caget, caput, cainfo
|
|
import time
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
x_size = int(caget('SATES31-CAMS187-RIXS1:CAMROI_X_END')-caget('SATES31-CAMS187-RIXS1:CAMROI_X_START')+1)
|
|
y_size = int(len(data)/x_size)
|
|
ave = []
|
|
|
|
for i in range(shots):
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
ROI = [data[j:j+x_size] for j in range(0,int(len(data)),x_size)]
|
|
ROI = np.transpose(ROI)
|
|
x_prof = []
|
|
for j in range(len(ROI)):
|
|
x_prof.append(np.sum(ROI[j]))
|
|
ave.append(x_prof)
|
|
ave = np.nanmean(ave,axis=0)
|
|
return (ave)
|
|
|
|
def tt_live(off,sleep=0.1):
|
|
import numpy as np
|
|
from epics import caget, caput, cainfo
|
|
from matplotlib import pyplot as plt
|
|
import time
|
|
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
x_size = int(caget('SATES31-CAMS187-RIXS1:CAMROI_X_END')-caget('SATES31-CAMS187-RIXS1:CAMROI_X_START')+1)
|
|
y_size = int(len(data)/x_size)
|
|
|
|
xx = np.arange(1,x_size+1,1)
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
ROI = np.transpose(ROI)
|
|
x_prof = []
|
|
for i in range(len(ROI)):
|
|
x_prof.append(np.sum(ROI[i]))
|
|
pp = (np.array(x_prof)/np.array(off)-1)*100
|
|
|
|
plt.ion()
|
|
fig = plt.figure()
|
|
ax = fig.subplots(nrows=1,ncols=1)
|
|
tt, = ax.plot(xx,pp)
|
|
|
|
plt.title('timing-tool live x profile in ROI',fontsize=20)
|
|
plt.xlabel('pixel',fontsize=16)
|
|
plt.ylabel('(on-off)/off [%]',fontsize=16)
|
|
plt.grid()
|
|
|
|
for _ in iter(int,1):
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
ROI = np.transpose(ROI)
|
|
x_prof = []
|
|
for i in range(len(ROI)):
|
|
x_prof.append(np.sum(ROI[i]))
|
|
pp = (np.array(x_prof)/np.array(off)-1)*100
|
|
tt.set_ydata(np.array(pp))
|
|
fig.canvas.draw()
|
|
fig.canvas.flush_events()
|
|
# plt.ylim(np.min(pp),np.max(pp))
|
|
plt.ylim(-30,5)
|
|
time.sleep(sleep)
|
|
|
|
def PCO_live_x(sleep=0.1):
|
|
import numpy as np
|
|
from epics import caget, caput, cainfo
|
|
from matplotlib import pyplot as plt
|
|
import time
|
|
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
x_size = int(caget('SATES31-CAMS187-RIXS1:CAMROI_X_END')-caget('SATES31-CAMS187-RIXS1:CAMROI_X_START')+1)
|
|
y_size = int(len(data)/x_size)
|
|
|
|
xx = np.arange(1,x_size+1,1)
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
ROI = np.transpose(ROI)
|
|
x_prof = []
|
|
for i in range(len(ROI)):
|
|
x_prof.append(np.sum(ROI[i]))
|
|
|
|
plt.ion()
|
|
fig = plt.figure()
|
|
ax = fig.subplots(nrows=1,ncols=1)
|
|
tt, = ax.plot(xx,x_prof)
|
|
|
|
plt.title('live x profile in ROI',fontsize=20)
|
|
plt.xlabel('pixel',fontsize=16)
|
|
plt.ylabel('intensity [arb. units]',fontsize=16)
|
|
|
|
for _ in iter(int,1):
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
ROI = np.transpose(ROI)
|
|
x_prof = []
|
|
for i in range(len(ROI)):
|
|
x_prof.append(np.sum(ROI[i]))
|
|
tt.set_ydata(np.array(x_prof))
|
|
fig.canvas.draw()
|
|
fig.canvas.flush_events()
|
|
plt.ylim(np.min(x_prof),np.max(x_prof))
|
|
time.sleep(sleep)
|
|
|
|
def PCO_live(sleep=0.1):
|
|
import numpy as np
|
|
from epics import caget, caput, cainfo
|
|
from matplotlib import pyplot as plt
|
|
import time
|
|
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
x_size = int(caget('SATES31-CAMS187-RIXS1:CAMROI_X_END')-caget('SATES31-CAMS187-RIXS1:CAMROI_X_START')+1)
|
|
y_size = int(len(data)/x_size)
|
|
|
|
xx = np.arange(1,x_size+1,1)
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
|
|
plt.ion()
|
|
fig = plt.figure()
|
|
image = plt.imshow(ROI)
|
|
plt.colorbar()
|
|
plt.clim(0,np.max(data))
|
|
|
|
plt.title('live PCO image',fontsize=20)
|
|
plt.xlabel('x [px]',fontsize=16)
|
|
plt.ylabel('y [px]',fontsize=16)
|
|
|
|
for _ in iter(int,1):
|
|
data = caget('SATES31-CAMS187-RIXS1:FPICTURE')
|
|
ROI = [data[i:i+x_size] for i in range(0,int(len(data)),x_size)]
|
|
image.set_data(ROI)
|
|
fig.canvas.draw()
|
|
fig.canvas.flush_events()
|
|
plt.clim(0,np.max(data))
|
|
time.sleep(sleep)
|
|
|