diff --git a/config/preferences.json b/config/preferences.json
index f8eda6f..74195d2 100644
--- a/config/preferences.json
+++ b/config/preferences.json
@@ -76,7 +76,7 @@
"plotsDetached" : false,
"plotLayout" : "Vertical",
"quality" : "High",
- "defaultPlotColormap" : "Grayscale",
+ "defaultPlotColormap" : "Viridis",
"markerSize" : 2,
"plotBackground" : null,
"gridColor" : null,
diff --git a/config/sessions.properties b/config/sessions.properties
index 00a81b1..f0c7cc7 100644
--- a/config/sessions.properties
+++ b/config/sessions.properties
@@ -1,2 +1,2 @@
-#Fri Oct 07 10:08:47 CEST 2022
-SessionCounter=78
+#Sun Nov 20 14:52:28 CET 2022
+SessionCounter=79
diff --git a/config/settings.properties b/config/settings.properties
index 3236948..17ef9ed 100644
--- a/config/settings.properties
+++ b/config/settings.properties
@@ -1,26 +1,33 @@
-#Wed Nov 09 08:38:27 CET 2022
+#Tue Nov 22 15:07:09 CET 2022
+HARMONIC_ID_1=1
RSYNC_USER=
-CFF=2.25
+CFF=2
OUTLIERS_THRESHOLD=1000000000
NORM_FILE=/sls/X11MA/data/e18927/Data1/2022_10/20221017/20221017_Take_Image/i221017_042/i221017_042\#001.tif
AUTO_SWITCH_VALVE=false
DRY_RUN=true
-POL_ID_2=Lin_Hor
-ID=ID2
+POL_ID_2=Lin
+OFFSET_ID_1=0.0
+ID=PGM_ID2
+OFFSET_ID_2=0.0
proposal=proposal
-ENERGY=800
+ENERGY=715.0
proposer=proposer
GRATING=G3_600
image_shift_angle=1.0963912950426833
+POL_ID_1=Circ_Plus
RSYNC_HOST=
sample=sample
RSYNC_PATH=
pgroup=pgroup
AUTO_SWITCH_BEAMLINE=false
AUTO_SWITCH_SHUTTER=true
+ALPHA_ID_2=90.0
+ALPHA_ID_1=0.0
RSYNC_DEL=true
DIFF_ORD=1
image_shift_scale=3.296579966879864
AVERAGING_DETECTOR=true
FdaBrowser=false
authors=author1|author2
+HARMONIC_ID_2=1
diff --git a/config/variables.properties b/config/variables.properties
index 2acbc84..75cd617 100644
--- a/config/variables.properties
+++ b/config/variables.properties
@@ -1,4 +1,4 @@
-#Wed Nov 09 14:48:58 CET 2022
-LastRunDate=221109
-FileSequentialNumber=17887
-DaySequentialNumber=13
+#Tue Nov 22 16:33:39 CET 2022
+LastRunDate=221122
+FileSequentialNumber=18002
+DaySequentialNumber=88
diff --git a/devices/ci221110_001.tif.properties b/devices/ci221110_001.tif.properties
new file mode 100644
index 0000000..da0cdff
--- /dev/null
+++ b/devices/ci221110_001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 09:31:17 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221110_003.tif.properties b/devices/ci221110_003.tif.properties
new file mode 100644
index 0000000..c611915
--- /dev/null
+++ b/devices/ci221110_003.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 09:32:48 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221115_002#002.tif.properties b/devices/ci221115_002#002.tif.properties
new file mode 100644
index 0000000..ac09f36
--- /dev/null
+++ b/devices/ci221115_002#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 15:16:57 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221122_012#001.tif.properties b/devices/ci221122_012#001.tif.properties
new file mode 100644
index 0000000..baab2bd
--- /dev/null
+++ b/devices/ci221122_012#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:17:31 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221122_012#002.tif.properties b/devices/ci221122_012#002.tif.properties
new file mode 100644
index 0000000..baab2bd
--- /dev/null
+++ b/devices/ci221122_012#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:17:31 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221122_017#001.tif.properties b/devices/ci221122_017#001.tif.properties
new file mode 100644
index 0000000..c857431
--- /dev/null
+++ b/devices/ci221122_017#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:37:12 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221122_017#002.tif.properties b/devices/ci221122_017#002.tif.properties
new file mode 100644
index 0000000..7109f80
--- /dev/null
+++ b/devices/ci221122_017#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:37:13 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/ci221122_026#001.tif.properties b/devices/ci221122_026#001.tif.properties
new file mode 100644
index 0000000..fbe0ad0
--- /dev/null
+++ b/devices/ci221122_026#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:51:51 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17906_001.tif.properties b/devices/cs17906_001.tif.properties
new file mode 100644
index 0000000..ba58ed0
--- /dev/null
+++ b/devices/cs17906_001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:09:28 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17907_001.tif.properties b/devices/cs17907_001.tif.properties
new file mode 100644
index 0000000..7ec5184
--- /dev/null
+++ b/devices/cs17907_001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:10:24 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17907_002.tif.properties b/devices/cs17907_002.tif.properties
new file mode 100644
index 0000000..77f5524
--- /dev/null
+++ b/devices/cs17907_002.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:10:26 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17907_003.tif.properties b/devices/cs17907_003.tif.properties
new file mode 100644
index 0000000..77f5524
--- /dev/null
+++ b/devices/cs17907_003.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:10:26 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17909_001.tif.properties b/devices/cs17909_001.tif.properties
new file mode 100644
index 0000000..e275b2e
--- /dev/null
+++ b/devices/cs17909_001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:29:57 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17909_002.tif.properties b/devices/cs17909_002.tif.properties
new file mode 100644
index 0000000..2144a98
--- /dev/null
+++ b/devices/cs17909_002.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:30:00 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17909_003.tif.properties b/devices/cs17909_003.tif.properties
new file mode 100644
index 0000000..f519445
--- /dev/null
+++ b/devices/cs17909_003.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 11:30:03 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17966_001.tif.properties b/devices/cs17966_001.tif.properties
new file mode 100644
index 0000000..8d8a762
--- /dev/null
+++ b/devices/cs17966_001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:02:41 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17971_001.tif.properties b/devices/cs17971_001.tif.properties
new file mode 100644
index 0000000..adc6fb7
--- /dev/null
+++ b/devices/cs17971_001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:10:51 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17971_002.tif.properties b/devices/cs17971_002.tif.properties
new file mode 100644
index 0000000..3e9ac23
--- /dev/null
+++ b/devices/cs17971_002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:10:52 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17971_003.tif.properties b/devices/cs17971_003.tif.properties
new file mode 100644
index 0000000..60d7ae2
--- /dev/null
+++ b/devices/cs17971_003.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:10:53 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17971_005.tif.properties b/devices/cs17971_005.tif.properties
new file mode 100644
index 0000000..3c282b3
--- /dev/null
+++ b/devices/cs17971_005.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:10:58 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/cs17971_006.tif.properties b/devices/cs17971_006.tif.properties
new file mode 100644
index 0000000..4ee6052
--- /dev/null
+++ b/devices/cs17971_006.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:45 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221110_003#001.tif.properties b/devices/i221110_003#001.tif.properties
new file mode 100644
index 0000000..041e163
--- /dev/null
+++ b/devices/i221110_003#001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 10:19:21 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221110_003#003.tif.properties b/devices/i221110_003#003.tif.properties
new file mode 100644
index 0000000..ee42a08
--- /dev/null
+++ b/devices/i221110_003#003.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 10:24:18 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221110_003.tif.properties b/devices/i221110_003.tif.properties
new file mode 100644
index 0000000..24e5080
--- /dev/null
+++ b/devices/i221110_003.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 09:32:47 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221110_005#001.tif.properties b/devices/i221110_005#001.tif.properties
new file mode 100644
index 0000000..31a8ea8
--- /dev/null
+++ b/devices/i221110_005#001.tif.properties
@@ -0,0 +1,20 @@
+#Thu Nov 10 10:19:17 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221111_005.tif.properties b/devices/i221111_005.tif.properties
new file mode 100644
index 0000000..5819576
--- /dev/null
+++ b/devices/i221111_005.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 14:06:16 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221111_006#001.tif.properties b/devices/i221111_006#001.tif.properties
new file mode 100644
index 0000000..96af841
--- /dev/null
+++ b/devices/i221111_006#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 13:34:23 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221111_006.tif.properties b/devices/i221111_006.tif.properties
new file mode 100644
index 0000000..9767c77
--- /dev/null
+++ b/devices/i221111_006.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 14:06:25 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221115_005.tif.properties b/devices/i221115_005.tif.properties
new file mode 100644
index 0000000..a532c8c
--- /dev/null
+++ b/devices/i221115_005.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 15:25:56 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221115_006.tif.properties b/devices/i221115_006.tif.properties
new file mode 100644
index 0000000..ba6a222
--- /dev/null
+++ b/devices/i221115_006.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 15 15:37:08 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#001.tif.properties b/devices/i221116_006#001.tif.properties
new file mode 100644
index 0000000..ee1231f
--- /dev/null
+++ b/devices/i221116_006#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:17 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#002.tif.properties b/devices/i221116_006#002.tif.properties
new file mode 100644
index 0000000..4ddffb5
--- /dev/null
+++ b/devices/i221116_006#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:19 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#003.tif.properties b/devices/i221116_006#003.tif.properties
new file mode 100644
index 0000000..960e297
--- /dev/null
+++ b/devices/i221116_006#003.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:21 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#004.tif.properties b/devices/i221116_006#004.tif.properties
new file mode 100644
index 0000000..88ddbfc
--- /dev/null
+++ b/devices/i221116_006#004.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:23 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#005.tif.properties b/devices/i221116_006#005.tif.properties
new file mode 100644
index 0000000..88ddbfc
--- /dev/null
+++ b/devices/i221116_006#005.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:23 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221116_006#006.tif.properties b/devices/i221116_006#006.tif.properties
new file mode 100644
index 0000000..34a4012
--- /dev/null
+++ b/devices/i221116_006#006.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:24 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_002#001.tif.properties b/devices/i221122_002#001.tif.properties
new file mode 100644
index 0000000..81a47b1
--- /dev/null
+++ b/devices/i221122_002#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:50 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_002#002.tif.properties b/devices/i221122_002#002.tif.properties
new file mode 100644
index 0000000..20185a6
--- /dev/null
+++ b/devices/i221122_002#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:20:48 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_012#001.tif.properties b/devices/i221122_012#001.tif.properties
new file mode 100644
index 0000000..29b6038
--- /dev/null
+++ b/devices/i221122_012#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:17:36 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_012#002.tif.properties b/devices/i221122_012#002.tif.properties
new file mode 100644
index 0000000..5c4b50d
--- /dev/null
+++ b/devices/i221122_012#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:17:37 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_017#001.tif.properties b/devices/i221122_017#001.tif.properties
new file mode 100644
index 0000000..3119325
--- /dev/null
+++ b/devices/i221122_017#001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:37:10 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/i221122_017#002.tif.properties b/devices/i221122_017#002.tif.properties
new file mode 100644
index 0000000..5defe6e
--- /dev/null
+++ b/devices/i221122_017#002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:37:11 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/image.properties b/devices/image.properties
old mode 100755
new mode 100644
index ee95549..aa39c76
--- a/devices/image.properties
+++ b/devices/image.properties
@@ -1,4 +1,4 @@
-#Mon Oct 25 14:11:15 CEST 2021
+#Thu Nov 10 20:50:06 CET 2022
spatialCalOffsetY=NaN
spatialCalOffsetX=NaN
colormapLogarithmic=false
@@ -6,10 +6,10 @@ scale=1.0
grayscale=false
spatialCalScaleX=NaN
spatialCalScaleY=NaN
-colormapMax=2000.0
+colormapMax=140.171
rescaleOffset=0.0
roiWidth=-1
-colormap=Grayscale
+colormap=Flame
invert=false
colormapMin=0.0
rotationCrop=false
@@ -19,7 +19,7 @@ spatialCalUnits=null
flipVertically=false
roiHeight=-1
flipHorizontally=false
-colormapAutomatic=true
+colormapAutomatic=false
roiY=0
roiX=0
transpose=false
diff --git a/devices/raw.properties b/devices/raw.properties
index 222ccf7..149b518 100644
--- a/devices/raw.properties
+++ b/devices/raw.properties
@@ -1,4 +1,4 @@
-#Wed Nov 09 14:28:01 CET 2022
+#Wed Nov 16 10:21:29 CET 2022
spatialCalOffsetY=NaN
spatialCalOffsetX=NaN
colormapLogarithmic=false
@@ -19,7 +19,7 @@ spatialCalUnits=mm
flipVertically=false
roiHeight=-1
flipHorizontally=false
-colormapAutomatic=false
+colormapAutomatic=true
roiY=0
roiX=0
transpose=false
diff --git a/devices/s17971_001.tif.properties b/devices/s17971_001.tif.properties
new file mode 100644
index 0000000..17a4bed
--- /dev/null
+++ b/devices/s17971_001.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:04 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/s17971_002.tif.properties b/devices/s17971_002.tif.properties
new file mode 100644
index 0000000..17a4bed
--- /dev/null
+++ b/devices/s17971_002.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:04 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/s17971_003.tif.properties b/devices/s17971_003.tif.properties
new file mode 100644
index 0000000..80dee1a
--- /dev/null
+++ b/devices/s17971_003.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:05 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/s17971_004.tif.properties b/devices/s17971_004.tif.properties
new file mode 100644
index 0000000..2e06500
--- /dev/null
+++ b/devices/s17971_004.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:06 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/s17971_005.tif.properties b/devices/s17971_005.tif.properties
new file mode 100644
index 0000000..96f0f4c
--- /dev/null
+++ b/devices/s17971_005.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:07 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/devices/s17971_006.tif.properties b/devices/s17971_006.tif.properties
new file mode 100644
index 0000000..7484993
--- /dev/null
+++ b/devices/s17971_006.tif.properties
@@ -0,0 +1,20 @@
+#Tue Nov 22 14:11:36 CET 2022
+spatialCalOffsetY=NaN
+invert=false
+spatialCalOffsetX=NaN
+rotation=0.0
+rotationCrop=false
+scale=1.0
+rescaleFactor=1.0
+grayscale=false
+spatialCalUnits=mm
+flipVertically=false
+roiHeight=-1
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
+flipHorizontally=false
+roiY=0
+roiX=0
+rescaleOffset=0.0
+transpose=false
+roiWidth=-1
diff --git a/plugins/DataAcquisition.form b/plugins/DataAcquisition.form
index 2cfdf2b..a938f00 100755
--- a/plugins/DataAcquisition.form
+++ b/plugins/DataAcquisition.form
@@ -901,12 +901,12 @@
-
+
-
+
@@ -958,6 +958,7 @@
+
@@ -977,6 +978,8 @@
+
+
@@ -1202,6 +1205,11 @@
+
+
+
+
+
diff --git a/plugins/DataAcquisition.java b/plugins/DataAcquisition.java
index eba9063..e5b374a 100755
--- a/plugins/DataAcquisition.java
+++ b/plugins/DataAcquisition.java
@@ -391,6 +391,7 @@ public class DataAcquisition extends Panel {
HashMap args = new HashMap();
args.put("SAVE_SPECTRUM", checkSpecSaveSpectrum.isSelected());
args.put("SAVE_IMAGES", checkSpecSaveImages.isSelected());
+ args.put("DRIFT_CORRECTION", checkDriftCorrectionSpec.isSelected());
args.put("WITH_I0", checkSpecWithI0.isSelected());
args.put("SWITCH_POL", checkSpecSwitchPol.isSelected());
args.put("EXPOSURE", spinnerSpecExp.getValue());
@@ -563,6 +564,7 @@ public class DataAcquisition extends Panel {
buttonClear = new javax.swing.JButton();
buttonSpecStart = new javax.swing.JButton();
buttonSpecAbort = new javax.swing.JButton();
+ checkDriftCorrectionSpec = new javax.swing.JCheckBox();
jPanel6 = new javax.swing.JPanel();
panelParameters1 = new javax.swing.JPanel();
jLabel6 = new javax.swing.JLabel();
@@ -1256,6 +1258,8 @@ public class DataAcquisition extends Panel {
}
});
+ checkDriftCorrectionSpec.setText("Drift correction");
+
javax.swing.GroupLayout panelSpectrumLayout = new javax.swing.GroupLayout(panelSpectrum);
panelSpectrum.setLayout(panelSpectrumLayout);
panelSpectrumLayout.setHorizontalGroup(
@@ -1287,7 +1291,8 @@ public class DataAcquisition extends Panel {
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(checkSpecSaveSpectrum)
.addComponent(checkSpecSaveImages)
- .addComponent(checkSpecWithI0))
+ .addComponent(checkSpecWithI0)
+ .addComponent(checkDriftCorrectionSpec))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
@@ -1308,6 +1313,8 @@ public class DataAcquisition extends Panel {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecSaveImages)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(checkDriftCorrectionSpec)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecWithI0)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
@@ -1473,11 +1480,11 @@ public class DataAcquisition extends Panel {
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelSpectrum, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(57, 57, 57)
+ .addGap(18, 18, 18)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelParameters1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(0, 40, Short.MAX_VALUE))
+ .addGap(0, 55, Short.MAX_VALUE))
);
jTabbedPane1.addTab("Absorption Spectrum", jPanel3);
@@ -1789,6 +1796,7 @@ public class DataAcquisition extends Panel {
private javax.swing.JButton buttonSpecAbort;
private javax.swing.JButton buttonSpecStart;
private javax.swing.JCheckBox checkDriftCorrection;
+ private javax.swing.JCheckBox checkDriftCorrectionSpec;
private javax.swing.JCheckBox checkImgAutosave;
private javax.swing.JCheckBox checkImgOTFSaveImages;
private javax.swing.JCheckBox checkSpecSaveImages;
diff --git a/script/Users/PEEM/Armin/heating.py b/script/Users/PEEM/Armin/heating.py
new file mode 100644
index 0000000..51a3331
--- /dev/null
+++ b/script/Users/PEEM/Armin/heating.py
@@ -0,0 +1,6 @@
+i = 1
+while i < 12:
+ fil.write(i*200)
+ time.sleep(300.0)
+ i += 1
+fil.write(0)
diff --git a/script/devices/eiger.py b/script/devices/eiger.py
index 059cf1a..1a7d00b 100644
--- a/script/devices/eiger.py
+++ b/script/devices/eiger.py
@@ -201,13 +201,38 @@ def _save_as_tiff(data, filename, check=False, show = False, metadata={}):
read = get_ip_array(ip)
#print (" ------> Error reading array: " + str(filename))
#TODO: Original checkcode was deleted!
-
+
+
+calculated_shifts={}
def save_as_tiff(data, filename, check=False, show = False, parallel=True, metadata={}):
if parallel:
return fork((_save_as_tiff,(data, filename, check, show, metadata)),)
else:
_save_as_tiff(data, filename, check, show, metadata)
+def _shift_and_save_as_tiff(data, filename, reference=None, roi=None, image_drift =None, check=False, show = False, metadata={}):
+ global calculated_shifts
+ try:
+ if image_drift is None:
+ xoff, yoff, error, diffphase, image_drift = calculate_shift(reference,data, roi)
+ print xoff, yoff, error, diffphase, image_drift
+ if (abs(xoff) > MAX_SHIFT) or (abs(yoff) > MAX_SHIFT):
+ raise Exception("Shift too big:" + str(xoff, yoff))
+ print "-> Calculated shift: ", xoff, yoff, error, diffphase
+ shifted_frame = apply_shift(data, image_drift)
+ calculated_shifts[filename]=image_drift
+ except:
+ print "-> Error shifting image: " + str(sys.exc_info()[1])
+ return
+ save_as_tiff(shifted_frame, filename, check, show, parallel=False, metadata=metadata)
+
+def shift_and_save_as_tiff(data, filename, reference=None, roi=None, shift=None, check=False, show = False, parallel=True, metadata={}):
+ if parallel:
+ return fork((_shift_and_save_as_tiff,(data, filename, reference, roi, shift, check, show, metadata)),)
+ else:
+ _shift_and_save_as_tiff(data, filename, reference, roi, shift, check, show, metadata)
+
+
def trigger_eiger(wait=True):
eiger.waitReady(5000)
eiger.start()
@@ -395,7 +420,7 @@ def get_outliers_mask(data_type='f'):
class ProcImage(Filter):
def __init__(self):
- Filter.__init__(self, "image")
+ Filter.__init__(self, "image_filter")
self.roi=None
self.outliers_threshold=None
self.outliers_mask =None
@@ -419,12 +444,12 @@ class ProcImage(Filter):
return None #Does not generate BufferedImage here
#image.removeAllListeners()
-proc_image=ProcImage()
-raw.addListener(proc_image)
-
+proc_image_filter=ProcImage()
+raw.addListener(proc_image_filter)
+proc_image=ColormapAdapter("image", proc_image_filter)
add_device(proc_image, True)
-image.refresh()
+raw.refresh()
eiger.setDataType(DataType.Float32)
eiger.getDataArray().monitored=True
diff --git a/script/imaging/shifts.py b/script/imaging/shifts.py
index 4ace5f1..87c2eba 100644
--- a/script/imaging/shifts.py
+++ b/script/imaging/shifts.py
@@ -620,8 +620,9 @@ def to_ip(obj):
obj = load_image(obj)
else:
if type(obj) == Data:
- obj = obj.toBufferedImage(False)
- if type(obj) == BufferedImage:
+ #obj = obj.toBufferedImage(False)
+ obj = load_array(obj.matrix)
+ elif type(obj) == BufferedImage:
obj = load_image(obj)
return obj
@@ -630,7 +631,7 @@ def calculate_shift(ref,img, roi, g_sigma=3.0, upscale_factor=100, max_error=2.0
ref = to_ip(ref)
img = to_ip(img)
stack = create_stack([ref,img])
- ipr, ipi = complex_edge_filtering(stack, g_sigma=g_sigma, show=False)
+ ipr, ipi = complex_edge_filtering(stack, g_sigma=g_sigma, show=False, java_code=True)
shifts = calculate_shifts(ipr, ipi, roi, upscale_factor=upscale_factor, java_code=True)
xoff, yoff = shifts[1][3], shifts[1][2]
error, diffphase = shifts[1][4], shifts[1][5]
diff --git a/script/local.py b/script/local.py
index b4a3b02..fd22b73 100644
--- a/script/local.py
+++ b/script/local.py
@@ -8,10 +8,12 @@ from mathutils import estimate_peak_indexes, fit_gaussians, create_fit_point_lis
from mathutils import fit_polynomial,fit_gaussian, fit_harmonic, calculate_peaks
from mathutils import PolynomialFunction, Gaussian, HarmonicOscillator
from collections import OrderedDict
-run ("imaging/shifts")
ProviderCSV.setDefaultItemSeparator(", ")
get_context().dataManager.createLogs=False
+
+IMAGING_ROI = None
+
"""
OTF_START = "X11MA-OTF:GO"
OTF_E1 = "X11MA-OTF:E1"
@@ -749,7 +751,7 @@ def apply_beamline_setup(id,en=None,pol1=None,alp1=None,har1=None,off1=None,pol2
if off2 is not None:
put_id_offset(2, float(off2)) #offset on ID2
-# Monochromator part
+ # Monochromator part
if grat is not None:
if grat=='G1_300':
Grating.write("0")
@@ -925,8 +927,11 @@ def fit(ydata, xdata = None, limit_to_range=False):
###################################################################################################
#Additional initialization
###################################################################################################
-
+DEFAULT_ROI = Rectangle(128,128,256,256)
+#DEFAULT_ROI = Rectangle(0,0,512,512)
+
run("templates/FocusScan")
+run ("imaging/shifts")
def auto_focus(scan_type="all", range_obj=4.0, step_obj=0.2, range_stig=20.0, step_stig=2.0, average=1, runs=2, renderer = None, roi=None, exposure=None):
"""
diff --git a/script/templates/Eiger2Img.py b/script/templates/Eiger2Img.py
index 54115bc..3eff0ab 100644
--- a/script/templates/Eiger2Img.py
+++ b/script/templates/Eiger2Img.py
@@ -18,11 +18,7 @@ print "Starting 2Img: ", METHOD, SWITCHING, SEQUENCE , MEASUREMENTS, AUTO_SAVE,
#SEQUENCE = "B": C+,C-,C+,C-,C+,-;C+,C-.
SHOW_IMAGES = True
-SAVE_DIAGS = True
-DEFAULT_ROI = Rectangle(128,128,256,256)
-
-#DEFAULT_ROI = Rectangle(0,0,512,512)
-
+SAVE_DIAGS = True
ID = get_setting("ID")
@@ -37,7 +33,7 @@ if METHOD == "Two_Energies":
start = time.time()
threads = []
image_drift=None
-
+calculated_shifts={}
#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)
@@ -58,17 +54,15 @@ def get_image_file_name(cycle=-1, frame_index=0, short_name=False, shifted=False
max_index= max(max_index, frame_index)
#prefix = get_context().setup.expandPath("i{date}%02d_{seq}%03d")
prefix = get_context().setup.expandPath("i{date}%02d_" + ("%03d" % (abs_index,)))
-
- if (shifted):
- prefix = prefix + "_shifted"
if cycle < 0:
+ if (shifted):
+ prefix = "c" + prefix
ret = root + prefix + ".tif"
else:
- ret= root + prefix + "/i{date}%02d"+ ("_%03d#%03d" % (abs_index,cycle)) + ".tif"
- return get_context().setup.expandPath(ret)
-
-
+ prefix = prefix + ("_corr/c" if shifted else "/")
+ ret= root + prefix + "i{date}%02d"+ ("_%03d#%03d" % (abs_index,cycle)) + ".tif"
+ return get_context().setup.expandPath(ret)
"""
@@ -93,8 +87,8 @@ if METHOD == "Two_Pol" or (SWITCH_POL and (METHOD == "Take_Image")):
def imageinfo(info):
pass
-
-def save_image_file(frame, cycle=-1, frame_index=0):
+ref_images = {}
+def save_image_file(frame, cycle=-1, frame_index=0, processed_shift=False):
if frame is None:
raise Exception("Cannot save frame - None: cycle: " + str(cycle) + " index: " + str(frame_index))
if SHOW_IMAGES:
@@ -110,23 +104,39 @@ def save_image_file(frame, cycle=-1, frame_index=0):
else:
p=plots[0]
p.getAxis(p.AxisId.Y).setInverted(True)
- if AUTO_SAVE and (frame is not None):
+ if AUTO_SAVE and (frame is not None):
filename = get_image_file_name(cycle, frame_index)
+ if processed_shift:
+ filename = get_image_file_name(cycle, frame_index, shifted=True)
metadata = get_diags() if SAVE_DIAGS else {}
- threads.append(save_as_tiff(frame, filename, check=False, parallel=True, metadata=metadata))
+
+ threads.append(save_as_tiff(frame, filename, metadata=metadata))
log(filename)
print filename
- if DRIFT_CORRECTION:
+ if DRIFT_CORRECTION and (not processed_shift):
filename = get_image_file_name(cycle, frame_index, shifted=True)
- if image_drift is not None:
- print "->", filename
- shifted_frame = apply_shift(frame, image_drift)
- threads.append(save_as_tiff(shifted_frame, filename, check=False, parallel=True, metadata=metadata))
- elif frame_index==0:
- print "->", filename
- threads.append(save_as_tiff(frame, filename, check=False, parallel=True, metadata=metadata))
+ #print " *** ", cycle, frame_index
+ if cycle>0:
+ if cycle==1:
+ ref_images[frame_index] = frame
+ threads.append(save_as_tiff(frame, filename, metadata=metadata))
+ else:
+ """
+ if image_drift is not None:
+ print "-> Shifting ", filename
+ #shifted_frame = apply_shift(frame, image_drift)
+ #threads.append(save_as_tiff(shifted_frame, filename, metadata=metadata))
+ threads.append(shift_and_save_as_tiff(frame, shift=image_drift, metadata=metadata))
+ """
+ if frame_index==2:
+ #shift = calculated_shifts[get_image_file_name(cycle, 0, shifted=True)]
+ #threads.append(shift_and_save_as_tiff(frame, filename, shift=shift, metadata=metadata))
+ pass
+ else:
+ threads.append(shift_and_save_as_tiff(frame, filename, ref_images[0], calc_roi, metadata=metadata))
+
# log("SV:"+Format(startvoltage,"0.000")+" OB:"+Format(objective,"0.00")+" ST:"+Format(LEEMtemp,"0.0"))
@@ -137,7 +147,7 @@ print " ---- Run index : %d" %(run_index,)
max_index=0
if DRIFT_CORRECTION:
- roi = get_focus_scan_roi()
+ roi = IMAGING_ROI
if roi is None:
roi = DEFAULT_ROI
calc_roi = Roi(roi.x,roi.y,roi.width, roi.height)
@@ -164,7 +174,7 @@ try:
#print "--- Time: " + str(time.time() - s)
#time.sleep(1) #added by Armin
frames.append(av)
-
+ """
if (i==0) and DRIFT_CORRECTION and (calc_roi is not None):
if ref_image is None:
ref_image = frames[0]
@@ -181,7 +191,7 @@ try:
except:
print "-> Error calculating shift: " + str(sys.exc_info()[1])
image_drift = None
-
+ """
imageinfo("I")
save_image_file(frames[i], cycle, i)
if METHOD == "Take_Image":
@@ -211,7 +221,24 @@ try:
print "Waiting file writing threads to finish..."
for t in threads:
join(t)
+
if (MEASUREMENTS > 1) and (AUTO_SAVE == 1):
+ if DRIFT_CORRECTION and len(frames)==3:
+ print "Dividing drifted images..."
+ for cycle in range(1, MEASUREMENTS + 1):
+ if (METHOD == "Two_Energies") or (SEQUENCE == "B") or ((cycle%2)==1):
+ file1 = get_image_file_name(cycle, 0, shifted=True)
+ file2 = get_image_file_name(cycle, 1, shifted=True)
+ else:
+ file1 = get_image_file_name(cycle, 1, shifted=True)
+ file2 = get_image_file_name(cycle, 0, shifted=True)
+ print file1
+ print file2
+ ip1 = open_image(file1)
+ ip2 = open_image(file2)
+ op_image(ip1, ip2, "divide", float_result=True, in_place=True)
+ save_image_file(ip1,cycle, 2, processed_shift=True)
+
print "--- Averaging..."
for i in range(len(frames)):
"""
@@ -236,6 +263,24 @@ try:
av=op_const(integration, "divide", float(MEASUREMENTS), in_place=True)
save_image_file(av, -1, i)
+ if DRIFT_CORRECTION:
+ integration = None
+ measurements = 0
+ for cycle in range(1, MEASUREMENTS + 1):
+ filename = get_image_file_name(cycle, i, shifted=True)
+ print "Open " , filename
+ try:
+ ip = open_image(filename)
+ if integration is None:
+ integration = ip
+ else:
+ integration =integrate_ips ([integration, ip], as_float=True)
+ measurements=measurements+1
+ except:
+ print "Error integrating frame: ", filename
+ if measurements>0:
+ av=op_const(integration, "divide", float(measurements), in_place=True)
+ save_image_file(av, -1, i, processed_shift=True)
if SWITCH_POL and (METHOD == "Take_Image"):
switch_pol()
diff --git a/script/templates/EigerAbsSpec.py b/script/templates/EigerAbsSpec.py
index 0e27342..f3980da 100644
--- a/script/templates/EigerAbsSpec.py
+++ b/script/templates/EigerAbsSpec.py
@@ -9,10 +9,12 @@ if (get_exec_pars().source == CommandSource.ui) and (get_exec_pars().script == "
AVERAGE = 2
NUMBER_SCANS =1
RANGES = [[500.0, 1000.0, 100.0]]
+ DRIFT_CORRECTION = True
print "Starting AbsSpec: ",SAVE_SPECTRUM, SAVE_IMAGES, WITH_I0, SWITCH_POL, EXPOSURE, AVERAGE, NUMBER_SCANS, RANGES
SAVE_DIAGS = True
+calculated_shifts={}
if SWITCH_POL:
init_pol_switch("Normal")
@@ -69,7 +71,18 @@ def grab_image(position, scan):
filename = get_exec_pars().path + "/" + str(scan.currentPass) + "/s" + "{seq}%03d" + "_" + ("%03d.tif" % scan.recordIndex)
filename = get_context().setup.expandPath(filename)
print filename
- save_as_tiff(av, filename, metadata=(get_diags() if SAVE_DIAGS else {}))
+ metadata = get_diags() if SAVE_DIAGS else {}
+ save_as_tiff(av, filename, metadata=metadata)
+ if DRIFT_CORRECTION and (calc_roi is not None):
+ global ref_image
+ filename = get_exec_pars().path + "/" + str(scan.currentPass) + "_corr/cs" + "{seq}%03d" + "_" + ("%03d.tif" % scan.recordIndex)
+ filename = get_context().setup.expandPath(filename)
+ if ref_image is None:
+ ref_image = av
+ save_as_tiff(av, filename, metadata=metadata)
+ else:
+ shift_and_save_as_tiff(av, filename, ref_image, calc_roi, metadata=metadata)
+
class Average(ReadableMatrix):
def read(self):
@@ -111,6 +124,12 @@ wait_channel("X11PHS:alldone", 1)
"""
+if DRIFT_CORRECTION:
+ roi = IMAGING_ROI
+ if roi is None:
+ roi = DEFAULT_ROI
+ calc_roi = Roi(roi.x,roi.y,roi.width, roi.height)
+ ref_image = None # grab_frame(image, None, True)
def after_pass(pass_number, scan):
if SWITCH_POL:
diff --git a/script/test/TestShiftData.py b/script/test/TestShiftData.py
new file mode 100644
index 0000000..5979d23
--- /dev/null
+++ b/script/test/TestShiftData.py
@@ -0,0 +1,56 @@
+f1=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221111/20221111_Two_Pol/i221111_006/i221111_006#002.tif")
+f2=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221111/20221111_Two_Pol/i221111_006_corr/ci221111_006#002.tif")
+"""
+f1=load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221109/20221109_Take_Image/i221109_019/i221109_019#002.tif")
+f2=load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221109/20221109_Take_Image/i221109_019_shifted/i221109_019#002.tif")
+
+f1 = load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221109/20221109_Two_Energies/i221109_034/i221109_034#002.tif")
+f2 = load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221109/20221109_Two_Energies/i221109_034_shifted/i221109_034#002.tif")
+
+f1 = load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221110/20221110_17909_AbsortionSpectrum/1/s17909_001.tif")
+f2 = load_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221110/20221110_17909_AbsortionSpectrum/1_corr/cs17909_001.tif")
+"""
+
+
+"""
+s1=[]
+s2=[]
+j=4
+for i in range(1, 10, 1):
+ f1=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221111/20221111_Two_Pol/i221111_00" + str(j) + "/i221111_00" + str(j) + "#00" + str(i) + ".tif")
+ f2=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/2022_11/20221111/20221111_Two_Pol/i221111_00" + str(j) + "_corr/ci221111_00" + str(j) + "#00" + str(i) + ".tif")
+ a1 = get_ip_array(f1)
+ a2 = get_ip_array(f2)
+ s1.append(a1)
+ s2.append(a2)
+plot([s1, s2], name=["a1", "a2"])
+"""
+
+#plot([a1[150], a2[150]], name=["a1", "a2"])
+#p1 = [sum(x) for x in a1]
+#p2 = [sum(x) for x in a2]
+#plot([p1, p2], name=["P1", "P2"])
+
+
+s1=[]
+s2=[]
+month = "2022_11"
+date = "20221115"
+index="024"
+method = "Two_Pol"
+method = "Take_Image"
+method = "Two_Energies"
+try:
+ for i in range(1, 10, 1):
+ f1=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/" + month + "/" + date + "/" + date + "_" + method + "/i221115_" + index + "/i221115_" + index + "#00" + str(i) + ".tif")
+ f2=open_image("/sls/X11MA/data/X11MA/Data1/public/PEEM/" + month + "/" + date + "/" + date + "_" + method + "/i221115_" + index + "_corr/ci221115_" + index + "#00" + str(i) + ".tif")
+ a1 = get_ip_array(f1)
+ a2 = get_ip_array(f2)
+ s1.append(a1)
+ s2.append(a2)
+except:
+ pass
+plot([s1, s2], name=["a1", "a2"])
+
+
+
\ No newline at end of file