33
edits
(rev 0.47) |
|||
Line 62: | Line 62: | ||
# revision 0.45 . KD cope with blanks in filenames | # revision 0.45 . KD cope with blanks in filenames | ||
# revision 0.46 . Keitaro 6/2014 automatically set ROTATION_AXIS=-1 0 0 for Mar225 at SPring-8 BL26B2. | # revision 0.46 . Keitaro 6/2014 automatically set ROTATION_AXIS=-1 0 0 for Mar225 at SPring-8 BL26B2. | ||
REVISION="0. | # revision 0.47 . Keitaro 7/2014 more generic dTREK format support (Saturn and RAXIS) | ||
REVISION="0.47 (08-Jul-2014)" | |||
# | # | ||
# usage: e.g. generate_XDS.INP "/file/system/frms/mydata_1_???.img" | # usage: e.g. generate_XDS.INP "/file/system/frms/mydata_1_???.img" | ||
Line 138: | Line 139: | ||
head -n1 tmp2 | grep -q "^RAXIS" && DET=raxis | head -n1 tmp2 | grep -q "^RAXIS" && DET=raxis | ||
head -n1 tmp2 | grep -q "^R-AXIS" && DET=raxis | head -n1 tmp2 | grep -q "^R-AXIS" && DET=raxis | ||
grep -q "^ | grep -q "^SOURCE_WAVELENGTH=1" tmp2 && DET=dtrek | ||
grep -q mar345 tmp2 && DET=MAR345 | grep -q mar345 tmp2 && DET=MAR345 | ||
Line 348: | Line 349: | ||
X_RAY_WAVELENGTH=$(python -c 'import struct; f=open("'$FIRSTFRAME'","rb");f.seek(292);print "%.6f"%struct.unpack(">f",f.read(4))') | X_RAY_WAVELENGTH=$(python -c 'import struct; f=open("'$FIRSTFRAME'","rb");f.seek(292);print "%.6f"%struct.unpack(">f",f.read(4))') | ||
elif [ "$DET" == " | elif [ "$DET" == "dtrek" ]; then | ||
echo "Data from a RAXIS detector with | echo "Data from a RAXIS or Saturn detector with dTREK format" | ||
sed s/\;// tmp2 > tmp1 | sed s/\;// tmp2 > tmp1 | ||
mv tmp1 tmp2 | mv tmp1 tmp2 | ||
dname=`grep "DETECTOR_NAMES=" tmp2 | sed -e "s/.*=//"` | |||
if [ "$dname" == "CCD_" ]; then | |||
DETECTOR="SATURN MINIMUM_VALID_PIXEL_VALUE=1" | |||
dtrek_det="saturn" | |||
else # should be RX_ | |||
DETECTOR="RAXIS MINIMUM_VALID_PIXEL_VALUE=0" | |||
dtrek_det="raxis" | |||
fi | |||
# Saturn on SPring-8 BL26B1 | |||
if grep "CCD_DETECTOR_IDENTIFICATION=MSC_REIT_A200_SN09250183" tmp2 > /dev/null; then | |||
REVERSE_PHI="yes" | |||
fi | |||
# find OVERLOAD | # find OVERLOAD | ||
Line 365: | Line 379: | ||
# find NX,NY,QX,QY | # find NX,NY,QX,QY | ||
# NX,NY should be read from *_DETECTOR_DIMENSIONS? | |||
# NX,NY should be read from | |||
NX=`grep SIZE1 tmp2 | tail -1 | sed s/SIZE1=//` | NX=`grep SIZE1 tmp2 | tail -1 | sed s/SIZE1=//` | ||
NY=`grep SIZE2 tmp2 | tail -1 | sed s/SIZE2=//` | NY=`grep SIZE2 tmp2 | tail -1 | sed s/SIZE2=//` | ||
DET_SIZE=(`grep | DET_SIZE=(`grep ${dname}DETECTOR_SIZE tmp2 | tail -1 | sed s/.*_DETECTOR_SIZE=//`) | ||
QX=`echo "scale= | QX=`echo "scale=6; ${DET_SIZE[0]} / $NX" | bc -l` | ||
QY=`echo "scale= | QY=`echo "scale=6; ${DET_SIZE[1]} / $NY" | bc -l` | ||
# find ORGX, ORGY | # find ORGX, ORGY | ||
SPATIAL_DISTORTION_INFO=(`grep | SPATIAL_DISTORTION_INFO=(`grep ${dname}SPATIAL_DISTORTION_INFO tmp2 | tail -1 | sed s/.*_SPATIAL_DISTORTION_INFO=//`) | ||
ORGX=${SPATIAL_DISTORTION_INFO[0]} | ORGX=${SPATIAL_DISTORTION_INFO[0]} | ||
ORGY=${SPATIAL_DISTORTION_INFO[1]} | ORGY=${SPATIAL_DISTORTION_INFO[1]} | ||
# find DETECTOR_DISTANCE | # find DETECTOR_DISTANCE | ||
GONIO_NAMES=(`grep | GONIO_NAMES=(`grep ${dname}GONIO_NAMES tmp2 | tail -1 | sed s/.*_GONIO_NAMES=//`) | ||
GONIO_VALUES=(`grep | GONIO_VALUES=(`grep ${dname}GONIO_VALUES tmp2 | tail -1 | sed s/.*_GONIO_VALUES=//`) | ||
GONIO_UNITS=(`grep | GONIO_UNITS=(`grep ${dname}GONIO_UNITS tmp2 | tail -1 | sed s/.*_GONIO_UNITS=//`) | ||
for i in `seq 1 ${#GONIO_NAMES[*]}` | for i in `seq 1 ${#GONIO_NAMES[*]}` | ||
do | do | ||
Line 483: | Line 496: | ||
eof | eof | ||
if [ "$DET" == "raxis" -o "$ | if [ "$DET" == "raxis" -o "$dtrek_det" == "raxis" ]; then | ||
cat >> XDS.INP << eof | cat >> XDS.INP << eof | ||
DIRECTION_OF_DETECTOR_X-AXIS=1 0 0 | DIRECTION_OF_DETECTOR_X-AXIS=1 0 0 | ||
Line 498: | Line 511: | ||
echo 'ROTATION_AXIS=-1 0 0 ! if this is wrong, please contact author.' >> XDS.INP | echo 'ROTATION_AXIS=-1 0 0 ! if this is wrong, please contact author.' >> XDS.INP | ||
fi | fi | ||
if [ "$dtrek_det" == "saturn" ]; then | |||
cat >> XDS.INP << eof | |||
DIRECTION_OF_DETECTOR_X-AXIS=-1 0 0 | |||
DIRECTION_OF_DETECTOR_Y-AXIS= 0 1 0 | |||
eof | |||
else | |||
cat >> XDS.INP << eof | cat >> XDS.INP << eof | ||
DIRECTION_OF_DETECTOR_X-AXIS=1 0 0 | DIRECTION_OF_DETECTOR_X-AXIS=1 0 0 | ||
DIRECTION_OF_DETECTOR_Y-AXIS=0 1 0 | DIRECTION_OF_DETECTOR_Y-AXIS=0 1 0 | ||
eof | |||
fi | |||
cat >> XDS.INP << eof | |||
INCIDENT_BEAM_DIRECTION=0 0 1 | INCIDENT_BEAM_DIRECTION=0 0 1 | ||
FRACTION_OF_POLARIZATION=0.98 ! better value is provided by beamline staff! | FRACTION_OF_POLARIZATION=0.98 ! better value is provided by beamline staff! |
edits