155 lines
5.0 KiB
Python
155 lines
5.0 KiB
Python
# Greateyes scan
|
|
|
|
#******** SCAN Settings ********
|
|
Note="DESY - "
|
|
|
|
Exp_Time= 1
|
|
|
|
X0=4200
|
|
Xstep=450
|
|
XNum_points=3
|
|
|
|
Y0=5960
|
|
Ystep=-40
|
|
YNum_points=10
|
|
|
|
GE_ROI_Line = 3
|
|
|
|
GE_AreaDet = det
|
|
|
|
GE_ROI_Image= det.getDataMatrix()
|
|
GE_Raw_Image= det.getDataMatrix()
|
|
GE_BG_Image = det.getDataMatrix()
|
|
GE_Spectrum_Conv = det.getDataArray()
|
|
GE_Spectrum = det.getDataArray()
|
|
GE_BG_Line = det.getArraySize2()
|
|
GE_BG_SizeX = det.getArraySize0()
|
|
GE_BG_SizeY = det.getArraySize1()
|
|
GE_ROI_Line = det.getArraySize2()
|
|
GE_ROI_SizeX = det.getArraySize0()
|
|
GE_ROI_SizeY = det.getArraySize1()
|
|
IZero_Profile = det.getDataArray()
|
|
TFY_Profile = det.getDataArray()
|
|
IZero=sin
|
|
TFY = sin
|
|
GE_Sensor_Temp = sin
|
|
GE_FrameID = sin
|
|
Press_Diag_PV= sin
|
|
Press_Spec_PV= sin
|
|
Press_Spec_HV =sin
|
|
Press_Sample_Ch=sin
|
|
Press_Diag_HV = sin
|
|
GE_Spectrum_Sum = det.getDataArray()
|
|
|
|
#******** Functions Definitions ********
|
|
def Save_Pre_Scan_Data():
|
|
save_dataset("RAW/GE_BG_Image", GE_BG_Image.read())
|
|
save_dataset("Processed/GE_Spectrum_Convertion", GE_Spectrum_Conv.read())
|
|
save_dataset("Detector/GE_ROI_Line", GE_ROI_Line.read())
|
|
save_dataset("Detector/GE_ROI_SizeX", GE_ROI_SizeX.read())
|
|
save_dataset("Detector/GE_ROI_SizeY", GE_ROI_SizeY.read())
|
|
save_dataset("Detector/Exposure_Time", GE_AreaDet.getExposure())
|
|
save_dataset("Detector/GE_Open_Delay", 1)
|
|
save_dataset("Detector/GE_Close_Delay", 1)
|
|
save_dataset("Detector/GE_Num_Images", GE_AreaDet.getNumImages())
|
|
save_dataset("Detector/Gain_Type", 1)
|
|
save_dataset("Scan/Scan_Start_Time", time.ctime())
|
|
save_dataset("Scan/Note", Note)
|
|
#save_dataset("Scan/Note", Note)
|
|
|
|
def Create_Scan_Dataset():
|
|
create_dataset("RAW/GE_Raw_Image", 'd', False, (Num_Images, int(GE_BG_SizeY.take()), int(GE_BG_SizeX.take())))
|
|
create_dataset("RAW/IZero_Profile", 'd', False, (Num_Images, 100))
|
|
create_dataset("RAW/TFY_Profile", 'd', False, (Num_Images, 100))
|
|
create_dataset("Processed/GE_ROI_Image", 'd', False, (Num_Images, int(GE_ROI_SizeY.take()), int(GE_ROI_SizeX.take())))
|
|
create_dataset("Processed/GE_Spectrum", 'd', False, (Num_Images, int(GE_BG_SizeX.take())))
|
|
create_dataset("Processed/Izero", 'd', False)
|
|
create_dataset("Processed/TFY", 'd', False)
|
|
create_dataset("Detector/GE_Sensor_Temp", 'd', False)
|
|
create_dataset("Scan/GE_FrameID", 'i', False)
|
|
create_dataset("Scan/Timestamps", 'l', False)
|
|
create_dataset("Pressure/Diagnostic_PV", 'd', False)
|
|
create_dataset("Pressure/Diagnostic_HV", 'd', False)
|
|
create_dataset("Pressure/Spectrometer_PV", 'd', False)
|
|
create_dataset("Pressure/Spectrometer_HV", 'd', False)
|
|
create_dataset("Pressure/Sample_Chamber", 'd', False)
|
|
create_dataset("RAW/Xposition", 'd', False)
|
|
create_dataset("RAW/Yposition", 'd', False)
|
|
|
|
|
|
|
|
def Save_Scan_Data():
|
|
#sleep(0.2)
|
|
append_dataset("RAW/GE_Raw_Image", GE_Raw_Image.read())
|
|
append_dataset("RAW/IZero_Profile", IZero_Profile.take())
|
|
append_dataset("RAW/TFY_Profile", TFY_Profile.take())
|
|
append_dataset("Processed/GE_ROI_Image", GE_ROI_Image.read())
|
|
append_dataset("Processed/GE_Spectrum", GE_Spectrum.take())
|
|
append_dataset("Processed/Izero", IZero.take())
|
|
append_dataset("Processed/TFY", TFY.take())
|
|
append_dataset("Detector/GE_Sensor_Temp", GE_Sensor_Temp.take())
|
|
append_dataset("Scan/GE_FrameID", GE_FrameID.take())
|
|
append_dataset("Scan/Timestamps", GE_FrameID.getTimestampNanos())
|
|
append_dataset("Pressure/Diagnostic_PV", Press_Diag_PV.take())
|
|
append_dataset("Pressure/Diagnostic_HV", Press_Diag_HV.take())
|
|
append_dataset("Pressure/Spectrometer_PV", Press_Spec_PV.take())
|
|
append_dataset("Pressure/Spectrometer_HV", Press_Spec_HV.take())
|
|
append_dataset("Pressure/Sample_Chamber", Press_Sample_Ch.take())
|
|
#Scan_Progress = (100*calcprog(GE_FrameID.take(),GE_start_frame,Num_Images))
|
|
|
|
def Save_Pos_Scan_Data():
|
|
sleep(1)
|
|
save_dataset("Processed/GE_Spectrum_Sum", GE_Spectrum_Sum.read())
|
|
save_dataset("Scan/Scan_Finish_Time", time.ctime())
|
|
|
|
#******** Test limits on sample vertical and horizontal motor ********
|
|
X0=float(X0)
|
|
Xstep=float(Xstep)
|
|
Y0=float(Y0)
|
|
Ystep=float(Ystep)
|
|
|
|
X1=X0+(XNum_points*Xstep)
|
|
Y1=Y0+(YNum_points*Ystep)
|
|
Num_Images= XNum_points*YNum_points
|
|
|
|
#******** Setting up Caenels ********
|
|
values_p_reading=1000*Exp_Time
|
|
Scan_Progress = 1
|
|
|
|
############### Scan ###############
|
|
|
|
|
|
#******** Scan Script Begins here ********
|
|
|
|
# Set Nr of images to NofImages
|
|
#******** Saving Pre Scan data ********
|
|
Save_Pre_Scan_Data()
|
|
|
|
#******** Pre Scan Setup ********
|
|
print("Scan starting: " + time.ctime())
|
|
GE_start_frame =1
|
|
Create_Scan_Dataset()
|
|
#Sample_Horiz.move(X0)
|
|
|
|
|
|
#******** Main Scan Function ********
|
|
|
|
for j in range(XNum_points):
|
|
#Sample_Horiz.move(X0+(j*Xstep))
|
|
for i in range(YNum_points):
|
|
#Sample_Vert.move(Y0+(i*Ystep))
|
|
print GE_start_frame , " / ", (XNum_points*YNum_points)
|
|
time.sleep(0.001)
|
|
Save_Scan_Data()
|
|
GE_start_frame = GE_start_frame+1
|
|
|
|
#Save_Scan_Data()
|
|
#Save_Scan_Data()
|
|
#******** Saving Pos Scan data ********
|
|
Save_Pos_Scan_Data()
|
|
|
|
#******** Post Scan ********
|
|
print("Scan Finished: " + time.ctime())
|
|
|
|
|