Generate XDS.INP: Difference between revisions
m →Copying generate_XDS.INP from XDSwiki webserver: fix links |
m →The script: Pilatus3 1M |
||
(39 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
This script generates XDS.INP based on a list of frame names supplied on the commandline. It currently works for MarCCD, ADSC, Pilatus, Eiger, some Rigaku and one Bruker detector(s); | This script generates XDS.INP based on a list of frame names supplied on the commandline. It currently works for MarCCD, ADSC, Pilatus, Eiger, some Rigaku and one Bruker detector(s); there is also some support for microED with SMV files which have a wavelength given as 0 (look for "experimental-ED" in the script). Since this is just a bash script, extension to other detectors should be very easy. | ||
== Usage == | == Usage == | ||
Line 5: | Line 5: | ||
Usage is just (don't forget the quotation marks!): | Usage is just (don't forget the quotation marks!): | ||
generate_XDS.INP "/home/myname/frms/mydata_1_???.img" | generate_XDS.INP "/home/myname/frms/mydata_1_???.img" | ||
XDS [ | XDS [https://xds.mr.mpg.de/html_doc/xds_parameters.html#NAME_TEMPLATE_OF_DATA_FRAMES= supports] bzip2-ed frames. Thus, when specifying the frame name parameter of the script, you should leave out any .bz2 extension. | ||
For improved interaction with [[XDSGUI]], it is advantageous to provide an ''absolute'' filename for the data files - one that starts with a slash ("/"). | For improved interaction with [[XDSGUI]], it is advantageous to provide an ''absolute'' filename for the data files - one that starts with a slash ("/"). | ||
== The script == | == The script == | ||
<!-- leave a blank line after <pre>! KD 10/2023 --> | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
Expand code section below (i.e. click on blue <code>[Expand]</code> at the end of this line if there is no code visible) | |||
<div class="mw-collapsible-content"> | |||
<pre> | <pre> | ||
Line 141: | Line 145: | ||
# Cleaned up section for creating XDS.INP | # Cleaned up section for creating XDS.INP | ||
# revision 1.15 . KD 22/05/2023 fix bug with second argument leading to usage message. Updating links. | # revision 1.15 . KD 22/05/2023 fix bug with second argument leading to usage message. Updating links. | ||
REVISION="1. | # revision 1.16 . KD 26/05/2023 fix bug on Mac for Pilatus CBF missing two lines | ||
# revision 1.17 . JMK 31/05/2023 fix sed error for Mac, where \| is not supported | |||
# revision 1.18 . JMK 19/08/2023 Pilatus 12M support, give help msg if $5 defined (i.e. unquoted frame pattern) | |||
# revision 1.19 . KD 14/10/2023 Pilatus 12M at DLS I23 has reverse phi. Fix download commands. | |||
# revision 1.20 . KD 13/7/2024 Comment out line STRONG_PIXEL=4 in preparation for mid-2024 version of XDS. | |||
# revision 1.21 . Thomas Hauß 12/03/2025 define for Bruker sfrm format DET= Bruker-sfrm and corresponding section | |||
# revision 1.22 . KD 28/5/2025 UNTRUSTED_RECTANGLEs for Pilatus3 1M, S/N 10-0159 | |||
REVISION="1.22 (28-May-2025)" | |||
# | # | ||
Line 158: | Line 169: | ||
# | # | ||
# ====== Start of script ====== | # ====== Start of script ====== | ||
echo generate_XDS.INP version $REVISION . Obtain the latest version from | echo generate_XDS.INP version $REVISION. Obtain the latest version from | ||
echo http://wiki.uni-konstanz.de/xds/index.php/generate_XDS.INP | echo http://wiki.uni-konstanz.de/xds/index.php/generate_XDS.INP | ||
if [ "$1" == "help" ] || [ "$1" == "-help" ] || [ "$1" == "-h" ] || [ "$1" == "" ] || ! [[ "$1" =~ \?\?|_master\.h5 ]]; then | if [ "$1" == "help" ] || [ "$1" == "-help" ] || [ "$1" == "-h" ] || [ "$1" == "" ] || [ "$5" != "" ] || ! [[ "$1" =~ \?\?|_master\.h5 ]]; then | ||
echo usage: generate_XDS.INP \"/file/system/frms/mydata_1_???.img\" \(_with_ the quotation marks!\) | echo usage: generate_XDS.INP \"/file/system/frms/mydata_1_???.img\" \(_with_ the quotation marks!\) | ||
echo If the frames are compressed leave out the extension .bz2, .gz, or .xz! | echo If the frames are compressed leave out the extension .bz2, .gz, or .xz! | ||
Line 257: | Line 268: | ||
if [ "$is_h5" == 0 ]; then | if [ "$is_h5" == 0 ]; then | ||
# extract strings from binary file header, removing leading '#' (Pilatus) and trailing ';' (CBF) | # extract strings from binary file header, removing leading '#' (Pilatus) and trailing ';' (CBF) | ||
strings $FIRSTFRAME | head -400 | sed 's/^ *# | strings $FIRSTFRAME | head -400 | sed 's/^ *#//;s/; *$//;' >tmp2 | ||
# TODO: whenever FIRSTFRAME is used below, it should be copied to tmp2 (using IFS as above), and tmp2 should be used instead | # TODO: whenever FIRSTFRAME is used below, it should be copied to tmp2 (using IFS as above), and tmp2 should be used instead | ||
# this was done for "mccd", but still has to be done for the "raxis" detector types | # this was done for "mccd", but still has to be done for the "raxis" detector types | ||
Line 275: | Line 286: | ||
grep -q MARCONTROL tmp2 && DET=OLDMAR | grep -q MARCONTROL tmp2 && DET=OLDMAR | ||
grep -q "WAVELENGTH=0.0" tmp2 && DET=experimental-ED | grep -q "WAVELENGTH=0.0" tmp2 && DET=experimental-ED | ||
if head -c 240 tmp2 | grep -q "FORMAT" && \ | |||
head -c 240 tmp2 | grep -q "VERSION" && \ | |||
head -c 240 tmp2 | grep -q "HDRBLKS"; then | |||
DET="Bruker-sfrm" | |||
fi | |||
else | else | ||
h5dump -d "/entry/instrument/detector/description" $FIRSTFRAME | grep -i Eiger > /dev/null && DET=eiger | h5dump -d "/entry/instrument/detector/description" $FIRSTFRAME | grep -i Eiger > /dev/null && DET=eiger | ||
Line 557: | Line 573: | ||
# Known detectors for reversed-phi at SSRF BL18U1 (S/N 60-0123) and BL19U1 (S/N XX-XXX) (!; 2019-10-19: staff will fix this) | # Known detectors for reversed-phi at SSRF BL18U1 (S/N 60-0123) and BL19U1 (S/N XX-XXX) (!; 2019-10-19: staff will fix this) | ||
DET_SN=`grep "Detector:" tmp2 | sed "s/^.*Detector: *//"` | DET_SN=`grep "Detector:" tmp2 | sed "s/^.*Detector: *//"` | ||
echo detector serial number is $DET_SN | |||
REVERSEPHI_SNs=" | REVERSEPHI_SNs=" | ||
PILATUS3 6M, S/N 60-0125 | PILATUS3 6M, S/N 60-0125 | ||
Line 563: | Line 580: | ||
PILATUS3 6M, S/N 60-0127 | PILATUS3 6M, S/N 60-0127 | ||
PILATUS3 6M, S/N 60-0123 | PILATUS3 6M, S/N 60-0123 | ||
PILATUS 12M, S/N 120-0100 | |||
" | " | ||
if echo "${DET_SN}${REVERSEPHI_SNs}" | sort | uniq -d | grep [0-9] > /dev/null; then | if echo "${DET_SN}${REVERSEPHI_SNs}" | sort | uniq -d | grep [0-9] > /dev/null; then | ||
Line 734: | Line 752: | ||
elif [ "$DET" == "raxis" ]; then | elif [ "$DET" == "raxis" ]; then | ||
echo Data from | echo Data from an RAXIS detector | ||
DETECTOR="RAXIS MINIMUM_VALID_PIXEL_VALUE=0 OVERLOAD=2000000" | DETECTOR="RAXIS MINIMUM_VALID_PIXEL_VALUE=0 OVERLOAD=2000000" | ||
Line 944: | Line 962: | ||
DIRECTION_OF_DETECTOR_X_AXIS="$R1 0 $R3" | DIRECTION_OF_DETECTOR_X_AXIS="$R1 0 $R3" | ||
# end of Bruker-cbf section | # end of Bruker-cbf section | ||
elif [ "$DET" == "Bruker-sfrm" ]; then | |||
# echo "Detector from Bruker in sfrm format." | |||
# MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT: | |||
MNOPIAS=6 | |||
# use complete detector including corners: | |||
TRUSTED_REGION="0 1.42" | |||
SEPMIN=4 # 4 for Pixel Array Detectors | |||
CLUSTER_RADIUS=2 # 2 for Pixel Array Detectors | |||
# to read different format versions read these parametes first: | |||
FORMAT=$(awk -F'FORMAT :' '{print $2}' tmp2 | awk '{print $1}') | |||
VERSION=$(awk -F'VERSION:' '{print $2}' tmp2 | awk '{print $1}') | |||
DETTYPE=$(awk -F'DETTYPE:' '{print $2}' tmp2 | awk '{print $1}') | |||
DETTYPE="BRUKER_$DETTYPE" | |||
echo "Bruker-sfrm file Format: $FORMAT, Version: $VERSION" | |||
# use last value from CCDPARM and convert to integer | |||
OVERLOAD=$(awk -F'CCDPARM:' '{print $2}' tmp2 | awk '{print int($5)}' | head -n1) | |||
DETECTOR="${DETTYPE} MINIMUM_VALID_PIXEL_VALUE=0 OVERLOAD=${OVERLOAD}" | |||
echo "DETECTOR $DETECTOR" | |||
NY=$(awk -F'NROWS :' '{print $2}' tmp2 | awk '{print $1}') | |||
NX=$(awk -F'NCOLS :' '{print $2}' tmp2 | awk '{print $1}') | |||
echo "NX" $NX | |||
echo "NY" $NY | |||
read ORGX ORGY < <(awk -F'CENTER :' '{print $2}' tmp2 | awk '{print $1, $2}') | |||
# There seems to be an error in ORGY, the offset from the detector | |||
# center is calculated wrong with a in inverted sign. Here an attempt | |||
# to correct this, may be not valid in all cases. Found via comparison | |||
# with the Bruker CBF format. There the value of V should be positive! | |||
ORGY=$(echo "scale=2; $NY - $ORGY" | bc -l) | |||
echo "ORGX: $ORGX" | |||
echo "ORGY: $ORGY" | |||
# pixelsize from detector width NX and pixel per cm | |||
pixelpercm=$(awk -F'DETTYPE:' '{print $2}' tmp2 | awk '{print $2}') | |||
if [ NX == 512 ]; then | |||
QX=$(echo "scale=6; 10.0 / $pixelpercm" | bc -l) | |||
QY=QX=$(echo "scale=6; 10.0 / $pixelpercm" | bc -l) | |||
else | |||
QX=$(echo "scale=6; 5.0 / $pixelpercm" | bc -l) | |||
QY=$(echo "scale=6; 5.0 / $pixelpercm" | bc -l) | |||
fi | |||
# QX=0.135 # from Bruker detector specification | |||
# QY=0.135 | |||
echo "QX: $QX" | |||
echo "QY: $QY" | |||
# With Version < 11, only one distance written to header, then 2, second value seems ok. | |||
if [ "$VERSION" -lt 11 ]; then | |||
DETECTOR_DISTANCE=$(awk -F'DISTANC:' '{print $2}' tmp2 | awk '{print $1}') | |||
else | |||
DETECTOR_DISTANCE=$(awk -F'DISTANC:' '{print $2}' tmp2 | awk '{print $2}') | |||
fi | |||
DETECTOR_DISTANCE=$(echo "$DETECTOR_DISTANCE * 10" | bc -l) # convert cm to mm | |||
echo "DETECTOR_DISTANCE: $DETECTOR_DISTANCE" | |||
X_RAY_WAVELENGTH=$(awk -F'WAVELEN:' '{print $2}' tmp2 | awk '{print $1}') | |||
echo "X_RAY_WAVELENGTH: $X_RAY_WAVELENGTH" | |||
read TWOTHETA OMEGA PHI KAPPA < <(awk -F'ANGLES :' '{print $2}' tmp2 | awk '{print $1, $2, $3, $4}') | |||
echo "TWOTHETA OMEGA PHI KAPPA: $TWOTHETA $OMEGA $PHI $KAPPA" | |||
# axis 1: 2-theta, 2: omega, 3: phi, 4: chi | |||
axis=$(awk -F'AXIS :' '{print $2}' tmp2 | awk '{print $1}') | |||
if [ "$axis" == 3 ]; then | |||
# PHI scan | |||
echo "PHI scan" | |||
DELTAPHI=$(awk -F'INCREME:' '{print $2}' tmp2 | awk '{print $1}') | |||
R3=$(bc -l <<< "scale=7; s($KAPPA/$DEGTOR) * s($OMEGA/$DEGTOR)") | |||
R1=$(bc -l <<< "scale=7; s($KAPPA/$DEGTOR) * c($OMEGA/$DEGTOR)") | |||
R2=$(bc -l <<< "scale=7; c($KAPPA/$DEGTOR)") | |||
ROTATION_AXIS="$R1 $R2 $R3" | |||
OSCILLATION_RANGE=${DELTAPHI} | |||
STARTING_ANGLE=${PHI} | |||
else | |||
echo "OMEGA scan" | |||
ROTATION_AXIS="0 -1 0" | |||
DELTAOMEGA=$(awk -F'INCREME:' '{print $2}' tmp2 | awk '{print $1}') | |||
OSCILLATION_RANGE=${DELTAOMEGA} | |||
STARTING_ANGLE=${OMEGA} | |||
fi | |||
# detector X-axis | |||
R1=$(bc -l <<< "scale=7; c($TWOTHETA/$DEGTOR)") | |||
R3=$(bc -l <<< "scale=7; s($TWOTHETA/$DEGTOR)") | |||
DIRECTION_OF_DETECTOR_X_AXIS="$R1 0 $R3" | |||
echo "DIRECTION_OF_DETECTOR_X_AXIS: $DIRECTION_OF_DETECTOR_X_AXIS" | |||
echo "STARTING_ANGLE $STARTING_ANGLE" | |||
echo "OSCILLATION_RANGE $OSCILLATION_RANGE" | |||
echo "ROTATION_AXIS $ROTATION_AXIS" | |||
# end of Bruker-sfrm section | |||
else | else | ||
echo should never come here | echo should never come here | ||
Line 973: | Line 1,087: | ||
if [ -e $durin_path ]; then | if [ -e $durin_path ]; then | ||
LIB="LIB=$durin_path" | LIB="LIB=$durin_path" | ||
echo "LIB= <durin-plugin> was written to XDS.INP . Check the path! For Apple M1 processors, modify the name or set \$ | echo "LIB= <durin-plugin> was written to XDS.INP . Check the path! For Apple M1 processors, modify the name or set \$DURIN_PATH." | ||
else | else | ||
LIB="!LIB=/usr/local/lib64/durin-plugin.so" | LIB="!LIB=/usr/local/lib64/durin-plugin.so" | ||
echo "durin-plugin.so not found. Specify LIB=<path-to-durin-plugin> in XDS.INP -- set \$ | echo "durin-plugin.so not found. Specify LIB=<path-to-durin-plugin> in XDS.INP -- set \$DURIN_PATH to specify the path!" | ||
fi | fi | ||
fi | fi | ||
fi | fi | ||
if [ "$ROTATION_AXIS" != "" ]; then | if [ "$ROTATION_AXIS" != "" ]; then | ||
ROTATION_AXIS="$ROTATION_AXIS ! only read by IDXREF" | |||
elif [ "$REVERSE_PHI" == "no" ]; then | elif [ "$REVERSE_PHI" == "no" ]; then | ||
ROTATION_AXIS='1 0 0 ! Australian Synchrotron, SERCAT ID-22 (?), APS 19-ID (?), ESRF BM30A, SPring-8, SSRF need -1 0 0. Diamond ID24 needs 0 -1 0' | |||
else | else | ||
ROTATION_AXIS='-1 0 0 ! Default; if this is wrong, please contact author.' | |||
fi | fi | ||
# Append 2-theta comment if defined | # Append 2-theta comment if defined | ||
if (( $(echo "${TWOTHETA}0 != 0"|bc -l) )); then | if (( $(echo "${TWOTHETA}0 != 0"|bc -l) )); then | ||
COMMENT_ORGXY="$COMMENT_ORGXY | |||
! TWOTHETA=$TWOTHETA -- | ! TWOTHETA=$TWOTHETA -- information only, do not uncomment. If indexing fails, check DIRECTION_OF_DETECTOR_X-AXIS" | ||
fi | |||
if [ "$DET" == "pilatus" -a "$NX" == "2463" -a "$NY" == "5071" ]; then | |||
SEGMENTED=1 | |||
fi | fi | ||
# now we know almost everything that is required to generate XDS.INP | # now we know almost everything that is required to generate XDS.INP | ||
# --------- Generate XDS.INP containing all defined parameters ---------- | |||
cat > XDS.INP << eof | cat > XDS.INP << eof | ||
!============================================================================= | !============================================================================= | ||
Line 1,004: | Line 1,123: | ||
! More documentation in wiki.uni-konstanz.de/xds/index.php . | ! More documentation in wiki.uni-konstanz.de/xds/index.php . | ||
! After running xds, inspect at least the agreement of predicted and observed | ! After running xds, inspect at least the agreement of predicted and observed | ||
! spots in FRAME.cbf! | ! spots in FRAME.cbf (or SHOW_HKL.cbf in versions since BUILT=20240723)! | ||
!============================================================================= | !============================================================================= | ||
JOB= XYCORR INIT COLSPOT IDXREF DEFPIX INTEGRATE CORRECT | JOB= XYCORR INIT COLSPOT IDXREF DEFPIX INTEGRATE CORRECT | ||
Line 1,041: | Line 1,160: | ||
TRUSTED_REGION=$TRUSTED_REGION | TRUSTED_REGION=$TRUSTED_REGION | ||
VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS=6000. 30000. ! often 7000 or 8000 is ok | VALUE_RANGE_FOR_TRUSTED_DETECTOR_PIXELS=6000. 30000. ! often 7000 or 8000 is ok | ||
STRONG_PIXEL=4 | !STRONG_PIXEL=4 ! COLSPOT: only use strong reflections (default is 3). For XDS versions before mid-2024. | ||
MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT=$MNOPIAS ! default of 6 is sometimes too high | MINIMUM_NUMBER_OF_PIXELS_IN_A_SPOT=$MNOPIAS ! default of 6 is sometimes too high | ||
! close spots/long cell axis: reduce SEPMIN and CLUSTER_RADIUS from their defaults of 7 and 3.5 | ! close spots/long cell axis: reduce SEPMIN and CLUSTER_RADIUS from their defaults of 7 and 3.5 | ||
Line 1,086: | Line 1,205: | ||
eof | eof | ||
if [ "$DET" == "Bruker-cbf" ]; then | # --------- Append additional detector-specific parameters ---------- | ||
if [ "$DET" == "Bruker-cbf" -o "$DET" == "Bruker-sfrm" ]; then | |||
echo "DELPHI=15 ! refine less often than the default of 5" >> XDS.INP | echo "DELPHI=15 ! refine less often than the default of 5" >> XDS.INP | ||
elif [ "$DET" == "adsc-CMOS1" ]; then | elif [ "$DET" == "adsc-CMOS1" ]; then | ||
Line 1,098: | Line 1,218: | ||
! and does not seem to have any downsides. | ! and does not seem to have any downsides. | ||
eof | eof | ||
# -------- Append known detector untrusted regions ------------------ | |||
if [ "$NX" == "1028" -a "$NY" == "1062" ]; then | if [ "$NX" == "1028" -a "$NY" == "1062" ]; then | ||
# Eiger2 1M ; v0.97 numbers from Andreas Förster | # Eiger2 1M ; v0.97 numbers from Andreas Förster | ||
Line 1,107: | Line 1,228: | ||
cat >> XDS.INP << eof | cat >> XDS.INP << eof | ||
! the following specifications are for a detector _without_ proper | ! the following specifications are for a detector _without_ proper | ||
! flat_field correction; they | ! flat_field correction; they mask one additional pixel adjacent | ||
! to each UNTRUSTED_RECTANGLE | ! to each UNTRUSTED_RECTANGLE | ||
!EXCLUSION OF VERTICAL DEAD AREAS OF THE PILATUS 2M DETECTOR | !EXCLUSION OF VERTICAL DEAD AREAS OF THE PILATUS 2M DETECTOR | ||
Line 1,146: | Line 1,267: | ||
UNTRUSTED_RECTANGLE= 0 2069 1612 1651 | UNTRUSTED_RECTANGLE= 0 2069 1612 1651 | ||
eof | eof | ||
elif [ "$NX" == "2463" ]; then | elif [ "$NX" == "2463" -a "$NY" == "2527" ]; then | ||
# Pilatus 6M | # Pilatus 6M | ||
# FIXME: here we could test if a Flat_field correction was applied like we do for 2M | # FIXME: here we could test if a Flat_field correction was applied like we do for 2M | ||
Line 1,224: | Line 1,345: | ||
UNTRUSTED_RECTANGLE= 0 4149 3812 3851 | UNTRUSTED_RECTANGLE= 0 4149 3812 3851 | ||
eof | eof | ||
# PILATUS 1M, S/N 10-0159 | |||
elif [ "$NX" == "981" -a "$NY" == "1043" ]; then | |||
if ! grep -q Flat_field tmp2 ; then | |||
echo Flat_field not found, smaller UNTRUSTED_RECTANGLEs than for bigger Pilatus | |||
cat >> XDS.INP << eof | |||
! the following specifications are for a detector _without_ proper | |||
! flat_field correction; they mask one additional pixel adjacent | |||
! to each UNTRUSTED_RECTANGLE | |||
!EXCLUSION OF VERTICAL DEAD AREAS OF THE PILATUS3 1M, S/N 10-0159 | |||
UNTRUSTED_RECTANGLE= 487 495 0 1044 | |||
!EXCLUSION OF HORIZONTAL DEAD AREAS OF THE PILATUS3 1M, S/N 10-0159 | |||
UNTRUSTED_RECTANGLE= 0 982 195 213 | |||
UNTRUSTED_RECTANGLE= 0 982 407 425 | |||
UNTRUSTED_RECTANGLE= 0 982 619 637 | |||
UNTRUSTED_RECTANGLE= 0 982 831 849 | |||
eof | |||
else | |||
echo Flat_field found, smaller UNTRUSTED_RECTANGLEs than for bigger Pilatus | |||
cat >> XDS.INP << eof | |||
!EXCLUSION OF VERTICAL DEAD AREAS OF THE PILATUS3 1M, S/N 10-0159 | |||
UNTRUSTED_RECTANGLE= 488 494 0 1044 | |||
!EXCLUSION OF HORIZONTAL DEAD AREAS OF THE PILATUS3 1M, S/N 10-0159 | |||
UNTRUSTED_RECTANGLE= 0 982 196 212 | |||
UNTRUSTED_RECTANGLE= 0 982 408 424 | |||
UNTRUSTED_RECTANGLE= 0 982 620 636 | |||
UNTRUSTED_RECTANGLE= 0 982 832 848 | |||
eof | |||
fi | |||
# Pilatus 12M | |||
elif [ "$NX" == "2463" -a "$NY" == "5071" ]; then | |||
: # handled above, before writing XDS.INP, untrusted regions come from site file | |||
else | |||
echo "**** WARNING ****" | |||
echo "Unknown Pilatus or Eiger detector, add UNTRUSTED regions and SEGMENT information manually" | |||
fi | fi | ||
fi | fi | ||
# Mechanism to append detector-specific parameters without editing this file: | # Mechanism to append detector-specific parameters without editing this file: | ||
# | # NOTE: some detectors don't set DET_SN so this is not always unique | ||
# If the detector name is present in $DET_SN, then use only $DET_SN | |||
DET=$(echo $DET | sed 's/ /_/g;s/ | if [ "$DET_SN" != "" ]; then | ||
echo "$DET_SN" | grep -qi "$DET" && DET="$DET_SN" || DET="${DET}_$DET_SN" | |||
if [ -f $ | fi | ||
echo Appending site parameters from: $ | DET=$(echo $DET | sed 's/ /_/g;s/[^-_A-Za-z0-9]//g;') | ||
echo "! Parameters from $ | site_file="$HOME/.xds-site/$DET" | ||
if [ -f $site_file ]; then | |||
echo Appending site parameters from: $site_file | |||
echo "! Parameters from $site_file" >> XDS.INP | |||
echo "Site parameters:" | echo "Site parameters:" | ||
cat $ | cat $site_file | head -20 | ||
[ $(wc -l $site_file | awk '{print $1}') -gt 20 ] && echo "... (truncated)" | |||
echo | echo | ||
# Only FRACTION_POLARIZATION and ROTATION_AXIS are commented out automatically because they | # Only FRACTION_POLARIZATION and ROTATION_AXIS are commented out automatically because they | ||
# are the most likely to not match defaults | # are the most likely to not match defaults. | ||
# For segmented detectors, also allow origin and distance to be replaced | |||
# Also likely adjustments are UNTRUSTED regions and maybe SILICON, but those don't replace existing parameters | # Also likely adjustments are UNTRUSTED regions and maybe SILICON, but those don't replace existing parameters | ||
# Create a pattern like "XX\|YY" to search overriden parameters. | # Create a pattern like "XX\|YY" to search overriden parameters. | ||
REDEF_TOKENS="POLARIZATION\|ROTATION_AXIS\|TRUSTED_REGION" | |||
[ "$SEGMENTED" != "" ] && REDEF_TOKENS=$REDEF_TOKENS"\|ORGX\|ORGY\|DETECTOR_DISTANCE\|" | |||
if [ "$pattern" != "" ]; then | pattern=$(grep "$REDEF_TOKENS" $site_file | grep -v SEGMENT | uniq | awk 'match($0,/^ *(\w+) *=/,a){x=x"\\|"a[1];}END{print substr(x,3);}') | ||
sed 's/\(^ *\('$pattern'\) *=\)/!!\1/;' XDS.INP >tmp1 | if [ "$pattern" != "" -a $(grep "^!! *\($pattern\)" XDS.INP) != ""]; then | ||
sed 's/\(^ *\('$pattern'\) *=\)/!!!\1/;' XDS.INP >tmp1 | |||
echo "Overridden parameters:" | echo "Overridden parameters:" | ||
grep "^ | grep "^ *\($pattern\)" XDS.INP | ||
echo | echo | ||
mv tmp1 XDS.INP | |||
fi | fi | ||
cat $ | cat $site_file >> XDS.INP | ||
else | else | ||
echo "Detector specific parameters can be placed in: $ | if [ "$SEGMENTED" != "" ]; then | ||
echo "**** Multi-SEGMENTed detector, site file is mandatory ****" | |||
fi | |||
echo "Detector specific parameters can be placed in: $site_file" | |||
echo "! Detector specific parameters can be placed in:" >> XDS.INP | echo "! Detector specific parameters can be placed in:" >> XDS.INP | ||
echo "! $ | echo "! $site_file" >> XDS.INP | ||
echo "! FRACTION_OF_POLARIZATION, ROTATION_AXIS and | echo "! FRACTION_OF_POLARIZATION, ROTATION_AXIS and TRUSTED_REGION will auto-comment the replaced parameters" >> XDS.INP | ||
echo "! If the site file defines SEGMENTs then ORGX, ORGY, and DISTANCE may be overridden" >> XDS.INP | |||
fi | fi | ||
echo XDS.INP is ready for use. The file has only the most important keywords. | echo XDS.INP is ready for use. The file has only the most important keywords. | ||
Line 1,261: | Line 1,427: | ||
echo More documentation in wiki.uni-konstanz.de/xds/index.php . | echo More documentation in wiki.uni-konstanz.de/xds/index.php . | ||
echo After running xds, inspect at least the agreement of predicted and observed | echo After running xds, inspect at least the agreement of predicted and observed | ||
echo spots in FRAME.cbf! | echo "spots in FRAME.cbf (or SHOW_HKL.cbf in versions since BUILT=20240723)!" | ||
rm -f tmp1 tmp2 | rm -f tmp1 tmp2 | ||
# end of generate_XDS.INP | |||
</pre> | </pre> | ||
</div> | |||
</div> | |||
== System-wide or personal installation == | == System-wide or personal installation == | ||
Ask your system adminstrator to cut-and-paste the script into e.g. /usr/local/bin/generate_XDS.INP, and to make it "executable". | Ask your system adminstrator to cut-and-paste the script into e.g. /usr/local/bin/generate_XDS.INP, and to make it "executable". | ||
If you work with Eiger data, you may want to specify the environment variables NEGGIA_PATH or DURIN_PATH, to point to the correct path on your system of the Dectris' Neggia library, or the Durin plugin, respectively. This relieves users from having to change the LIB= line of XDS.INP for every data set. You should also insert that path into the Menu / Settings / "generic library" in [[XDSGUI]] . | |||
But you may also cut-and-paste the script from this webpage into a file in e.g. your home directory (or better, into your ~/bin directory if that is in your $PATH); the filename should be generate_XDS.INP. After creating the file, make it executable - e.g. if it's in your $HOME, use: | |||
But you may also cut-and-paste the script from this webpage into a file in e.g. your home directory; the filename should be generate_XDS.INP. After creating the file, make it executable - e.g. if it's in your $HOME, use: | |||
chmod +x ~/generate_XDS.INP | chmod +x ~/generate_XDS.INP | ||
After that, you can just run it in a similar way as if it were installed in your $PATH: | After that, you can just run it in a similar way as if it were installed in your $PATH: | ||
Line 1,293: | Line 1,460: | ||
Instead of cutting-and-pasting the lines of the script, you (or the system administrator) could just cut-and-paste the following four lines | Instead of cutting-and-pasting the lines of the script, you (or the system administrator) could just cut-and-paste the following four lines | ||
<pre> | <pre> | ||
wget http:// | wget http://wiki.uni-konstanz.de/xds/index.php/generate_XDS.INP -O - | \ | ||
sed -e s/\ \;/\ /g -e s/\>\;/\>/g -e s/\<\;/\</g -e s/amp\;//g -e s/\"\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \ | sed -e s/\ \;/\ /g -e s/\>\;/\>/g -e s/\<\;/\</g -e s/amp\;//g -e s/\"\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \ | ||
sed '/# end of generate_XDS.INP/,$d' | | sed '/# end of generate_XDS.INP/,$d' | sed -n '/#!\/bin\/bash/,/# end of generate_XDS.INP/p' > generate_XDS.INP | ||
chmod +x generate_XDS.INP | chmod +x generate_XDS.INP | ||
</pre> | </pre> | ||
to copy the script from this website into an executable file generate_XDS.INP in your current directory. On a Mac (which does not seem to have wget), one could try | to copy the script from this website into an executable file generate_XDS.INP in your current directory. On a Mac (which does not seem to have wget), one could try | ||
<pre> | <pre> | ||
curl -L -o - http:// | curl -L -o - http://wiki.uni-konstanz.de/xds/index.php/generate_XDS.INP | \ | ||
sed -e s/\ \;/\ /g -e s/\>\;/\>/g -e s/\<\;/\</g -e s/amp\;//g -e s/\"\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \ | sed -e s/\ \;/\ /g -e s/\>\;/\>/g -e s/\<\;/\</g -e s/amp\;//g -e s/\"\;/\"/g -e s/\&\#\1\6\0\;/\ /g | \ | ||
sed '/# end of generate_XDS.INP/,$d' | | sed '/# end of generate_XDS.INP/,$d' | sed -n '/#!\/bin\/bash/,/# end of generate_XDS.INP/p' > generate_XDS.INP | ||
chmod +x generate_XDS.INP | chmod +x generate_XDS.INP | ||
</pre> | </pre> | ||
If you | If you use TextEdit on a Mac to cut-and-paste from this webpage, be aware of the following problem report: After loading frames, by clicking “generate XDS.INP”, the program shows some strange symbol “Ô in XDS.INP. And the more you click “save” button, the more “Ô appear. This looks like e.g. <br>SPACE_GROUP_NUMBER=0 à ! 0 if unknown <br>UNIT_CELL_CONSTANTS= 70 80 90 90 90 90 à <br>''The problem is due to the “Rich text” format in TextEdit when saving "generate_XDS.INP". It is solved by re-downloading the script, and changing format to Plain - everything should work then.'' | ||
== Calling generate_XDS.INP from a Python script == | == Calling generate_XDS.INP from a Python script == | ||
Line 1,324: | Line 1,489: | ||
== Dependencies == | == Dependencies == | ||
The script makes use of many GNU commands, like <code>ls, grep, egrep, awk, cut, cat, echo, wc, bc, head, sed, tail, cp, od, python</code>. Some of them (like <code>od</code> and <code>python</code>) are only used in case of specific detectors (MarCCD and RAXIS, respectively). | The script makes use of many GNU commands, like <code>ls, grep, egrep, awk, cut, cat, echo, wc, bc, head, sed, tail, cp, od, python</code>. Some of them (like <code>od</code> and <code>python</code>) are only used in case of specific detectors (MarCCD and RAXIS, respectively). | ||
The script will only work if all the required commands are available. They reside in either the <code>coreutils</code> | The script will only work if all the required commands are available. They reside in either the <code>coreutils</code> package, or specific packages (<code>gawk, sed, bc, grep, python</code> ...). Please note that to get the <code>strings</code> command on some Linux distributions, you need to install the <code>binutils</code> package. | ||
For Eiger data processing, the <code>h5dump</code> program must be installed. This is part of <code>hdf5-tools</code> (Ubuntu) or <code>hdf5</code> (RHEL). The .h5 files collected at Diamond Light Source require | For Eiger data processing, the <code>h5dump</code> program must be installed. This is part of <code>hdf5-tools</code> (Ubuntu) or <code>hdf5</code> (RHEL). The .h5 files collected at Diamond Light Source require at least version 1.10 of h5dump to extract the OVERLOAD parameter from the .h5 file; this version is available in newer Linux distributions but not in RHEL/CentOS 7. | ||
On Mac OS X, installation of the "Command Line Tools" (from http://developer.apple.com/downloads; requires Apple ID) is required (open a terminal and type <code>xcode-select --install</code>). These are also part of the (larger, but also free) [http://developer.apple.com/tools/xcode Xcode] package. This package comes with a license that has to be accepted by the user when running a Command Line Tool (e.g. <code>strings</code>) for the first time. | On Mac OS X, installation of the "Command Line Tools" (from http://developer.apple.com/downloads; requires Apple ID) is required (open a terminal and type <code>xcode-select --install</code>). These are also part of the (larger, but also free) [http://developer.apple.com/tools/xcode Xcode] package. This package comes with a license that has to be accepted by the user when running a Command Line Tool (e.g. <code>strings</code>) for the first time. | ||
Line 1,343: | Line 1,508: | ||
See also [[Installation]]. | See also [[Installation]]. | ||
== Site Files == | |||
Site files may be used to add or modify parameters for specific hardware configurations. The primary use is for SEGMENT definitions of multi-segment detectors, and may also override FRACTION_OF_POLARIZATION, ROTATION_AXIS, TRUSTED_REGION, or UNTRUSTED_* specific to a site configuration. The site file is named ~/.xds-site/<NAME>_<SN>. The exact name will be printed by generate_XDS.INP when it is executed. | |||
[https://wiki.uni-konstanz.de/pub/linux_bin/PILATUS_12M_SN_120-0100 Site file for PILATUS 12M-DLS detector for the I23 beamline at Diamond Light Source]: | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
Expand code section below (i.e. click on blue <code>[Expand]</code> at the end of this line if there is no code visible) | |||
<div class="mw-collapsible-content"> | |||
<pre> | |||
!-------------------------------------------------------------- | |||
! XDS Site file for Pilatus12M | |||
! Save as: ~/.xds-site/PILATUS_12M_SN_120-0100 | |||
! SEGMENT definitions translated to align frame header beam | |||
! and distance, from segments refined against 20141016/germ8979 | |||
! | |||
! generated by Juno Krahn | |||
! National Institute of Environmental Health Sciences, NIH | |||
!-------------------------------------------------------------- | |||
! SEGMENT 1 | |||
SEGMENT= 1 487 1 195 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00106 0.00008 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00023 -0.14270 0.98977 | |||
SEGMENT_ORGX= 4.83 | |||
SEGMENT_ORGY= 473.86 | |||
SEGMENT_DISTANCE= -190.77 | |||
! SEGMENT 2 | |||
SEGMENT= 495 981 1 195 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00094 0.00014 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00027 -0.14289 0.98974 | |||
SEGMENT_ORGX= 4.81 | |||
SEGMENT_ORGY= 474.08 | |||
SEGMENT_DISTANCE= -190.72 | |||
! SEGMENT 3 | |||
SEGMENT= 989 1475 1 195 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00011 0.00035 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00033 -0.14157 0.98993 | |||
SEGMENT_ORGX= 3.52 | |||
SEGMENT_ORGY= 472.75 | |||
SEGMENT_DISTANCE= -190.67 | |||
! SEGMENT 4 | |||
SEGMENT= 1483 1969 1 195 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00023 -0.00027 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00030 -0.14316 0.98970 | |||
SEGMENT_ORGX= 3.49 | |||
SEGMENT_ORGY= 473.57 | |||
SEGMENT_DISTANCE= -190.50 | |||
! SEGMENT 5 | |||
SEGMENT= 1977 2463 1 195 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00017 -0.00024 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00026 -0.14305 0.98972 | |||
SEGMENT_ORGX= 3.83 | |||
SEGMENT_ORGY= 473.58 | |||
SEGMENT_DISTANCE= -190.59 | |||
! SEGMENT 6 | |||
SEGMENT= 1 487 213 407 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00051 0.00011 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00011 0.00238 1.00000 | |||
SEGMENT_ORGX= 3.82 | |||
SEGMENT_ORGY= 309.94 | |||
SEGMENT_DISTANCE= -195.53 | |||
! SEGMENT 7 | |||
SEGMENT= 495 981 213 407 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00090 -0.00018 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00018 0.00238 1.00000 | |||
SEGMENT_ORGX= 4.48 | |||
SEGMENT_ORGY= 309.68 | |||
SEGMENT_DISTANCE= -195.51 | |||
! SEGMENT 8 | |||
SEGMENT= 989 1475 213 407 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00023 -0.00046 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00046 0.00229 1.00000 | |||
SEGMENT_ORGX= 3.28 | |||
SEGMENT_ORGY= 309.29 | |||
SEGMENT_DISTANCE= -195.33 | |||
! SEGMENT 9 | |||
SEGMENT= 1483 1969 213 407 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00020 -0.00009 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00009 0.00194 1.00000 | |||
SEGMENT_ORGX= 3.31 | |||
SEGMENT_ORGY= 310.20 | |||
SEGMENT_DISTANCE= -195.29 | |||
! SEGMENT 10 | |||
SEGMENT= 1977 2463 213 407 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00028 -0.00048 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00048 0.00221 1.00000 | |||
SEGMENT_ORGX= 4.20 | |||
SEGMENT_ORGY= 309.13 | |||
SEGMENT_DISTANCE= -195.44 | |||
! SEGMENT 11 | |||
SEGMENT= 1 487 425 619 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00021 -0.00034 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00036 0.14700 0.98914 | |||
SEGMENT_ORGX= 3.79 | |||
SEGMENT_ORGY= 146.46 | |||
SEGMENT_DISTANCE= -190.86 | |||
! SEGMENT 12 | |||
SEGMENT= 495 981 425 619 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00098 0.00012 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00002 0.14705 0.98913 | |||
SEGMENT_ORGX= 5.09 | |||
SEGMENT_ORGY= 146.20 | |||
SEGMENT_DISTANCE= -190.83 | |||
! SEGMENT 13 | |||
SEGMENT= 989 1475 425 619 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00034 -0.00060 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00065 0.14764 0.98904 | |||
SEGMENT_ORGX= 4.25 | |||
SEGMENT_ORGY= 144.79 | |||
SEGMENT_DISTANCE= -190.74 | |||
! SEGMENT 14 | |||
SEGMENT= 1483 1969 425 619 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00016 -0.00074 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00076 0.14716 0.98911 | |||
SEGMENT_ORGX= 4.12 | |||
SEGMENT_ORGY= 145.21 | |||
SEGMENT_DISTANCE= -190.69 | |||
! SEGMENT 15 | |||
SEGMENT= 1977 2463 425 619 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00023 -0.00055 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00051 0.14723 0.98910 | |||
SEGMENT_ORGX= 3.95 | |||
SEGMENT_ORGY= 145.25 | |||
SEGMENT_DISTANCE= -190.55 | |||
! SEGMENT 16 | |||
SEGMENT= 1 487 637 831 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00007 0.00022 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00019 0.28893 0.95735 | |||
SEGMENT_ORGX= 3.45 | |||
SEGMENT_ORGY= -9.50 | |||
SEGMENT_DISTANCE= -176.83 | |||
! SEGMENT 17 | |||
SEGMENT= 495 981 637 831 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00070 -0.00020 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00039 0.28888 0.95736 | |||
SEGMENT_ORGX= 4.70 | |||
SEGMENT_ORGY= -9.69 | |||
SEGMENT_DISTANCE= -176.81 | |||
! SEGMENT 18 | |||
SEGMENT= 989 1475 637 831 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00084 -0.00061 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00083 0.28961 0.95715 | |||
SEGMENT_ORGX= 5.18 | |||
SEGMENT_ORGY= -11.24 | |||
SEGMENT_DISTANCE= -176.77 | |||
! SEGMENT 19 | |||
SEGMENT= 1483 1969 637 831 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00004 -0.00059 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00055 0.28951 0.95718 | |||
SEGMENT_ORGX= 4.22 | |||
SEGMENT_ORGY= -10.88 | |||
SEGMENT_DISTANCE= -176.50 | |||
! SEGMENT 20 | |||
SEGMENT= 1977 2463 637 831 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00004 -0.00059 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00058 0.28889 0.95736 | |||
SEGMENT_ORGX= 4.18 | |||
SEGMENT_ORGY= -10.47 | |||
SEGMENT_DISTANCE= -176.63 | |||
! SEGMENT 21 | |||
SEGMENT= 1 487 849 1043 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00014 0.00006 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00001 0.42489 0.90524 | |||
SEGMENT_ORGX= 3.87 | |||
SEGMENT_ORGY= -149.76 | |||
SEGMENT_DISTANCE= -153.74 | |||
! SEGMENT 22 | |||
SEGMENT= 495 981 849 1043 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00076 0.00043 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00007 0.42509 0.90515 | |||
SEGMENT_ORGX= 5.02 | |||
SEGMENT_ORGY= -149.85 | |||
SEGMENT_DISTANCE= -153.68 | |||
! SEGMENT 23 | |||
SEGMENT= 989 1475 849 1043 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00042 -0.00107 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00115 0.42569 0.90487 | |||
SEGMENT_ORGX= 5.25 | |||
SEGMENT_ORGY= -152.03 | |||
SEGMENT_DISTANCE= -153.46 | |||
! SEGMENT 24 | |||
SEGMENT= 1483 1969 849 1043 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00011 -0.00050 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00041 0.42530 0.90505 | |||
SEGMENT_ORGX= 4.09 | |||
SEGMENT_ORGY= -150.92 | |||
SEGMENT_DISTANCE= -153.42 | |||
! SEGMENT 25 | |||
SEGMENT= 1977 2463 849 1043 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00061 -0.00050 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00019 0.42520 0.90510 | |||
SEGMENT_ORGX= 3.67 | |||
SEGMENT_ORGY= -150.36 | |||
SEGMENT_DISTANCE= -153.14 | |||
! SEGMENT 26 | |||
SEGMENT= 1 487 1061 1255 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00024 -0.00062 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00065 0.55176 0.83400 | |||
SEGMENT_ORGX= 4.50 | |||
SEGMENT_ORGY= -267.14 | |||
SEGMENT_DISTANCE= -122.15 | |||
! SEGMENT 27 | |||
SEGMENT= 495 981 1061 1255 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00104 0.00037 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00026 0.55182 0.83396 | |||
SEGMENT_ORGX= 5.05 | |||
SEGMENT_ORGY= -267.36 | |||
SEGMENT_DISTANCE= -122.12 | |||
! SEGMENT 28 | |||
SEGMENT= 989 1475 1061 1255 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00016 -0.00047 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00048 0.55207 0.83380 | |||
SEGMENT_ORGX= 4.55 | |||
SEGMENT_ORGY= -267.71 | |||
SEGMENT_DISTANCE= -121.94 | |||
! SEGMENT 29 | |||
SEGMENT= 1483 1969 1061 1255 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00003 -0.00099 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00084 0.55221 0.83371 | |||
SEGMENT_ORGX= 5.02 | |||
SEGMENT_ORGY= -268.34 | |||
SEGMENT_DISTANCE= -121.73 | |||
! SEGMENT 30 | |||
SEGMENT= 1977 2463 1061 1255 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00022 -0.00053 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00032 0.55182 0.83396 | |||
SEGMENT_ORGX= 3.99 | |||
SEGMENT_ORGY= -267.40 | |||
SEGMENT_DISTANCE= -121.75 | |||
! SEGMENT 31 | |||
SEGMENT= 1 487 1273 1467 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00015 0.00013 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00001 0.66732 0.74477 | |||
SEGMENT_ORGX= 4.14 | |||
SEGMENT_ORGY= -354.22 | |||
SEGMENT_DISTANCE= -82.50 | |||
! SEGMENT 32 | |||
SEGMENT= 495 981 1273 1467 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00063 0.00076 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00015 0.66760 0.74452 | |||
SEGMENT_ORGX= 4.31 | |||
SEGMENT_ORGY= -354.30 | |||
SEGMENT_DISTANCE= -82.42 | |||
! SEGMENT 33 | |||
SEGMENT= 989 1475 1273 1467 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00011 -0.00026 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00027 0.66758 0.74454 | |||
SEGMENT_ORGX= 4.54 | |||
SEGMENT_ORGY= -354.50 | |||
SEGMENT_DISTANCE= -82.31 | |||
! SEGMENT 34 | |||
SEGMENT= 1483 1969 1273 1467 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00046 -0.00045 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00003 0.66738 0.74472 | |||
SEGMENT_ORGX= 3.67 | |||
SEGMENT_ORGY= -353.83 | |||
SEGMENT_DISTANCE= -82.19 | |||
! SEGMENT 35 | |||
SEGMENT= 1977 2463 1273 1467 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00007 -0.00091 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00063 0.66809 0.74408 | |||
SEGMENT_ORGX= 4.46 | |||
SEGMENT_ORGY= -355.74 | |||
SEGMENT_DISTANCE= -81.76 | |||
! SEGMENT 36 | |||
SEGMENT= 1 487 1485 1679 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00016 0.00111 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00083 0.76825 0.64015 | |||
SEGMENT_ORGX= 2.59 | |||
SEGMENT_ORGY= -404.52 | |||
SEGMENT_DISTANCE= -35.97 | |||
! SEGMENT 37 | |||
SEGMENT= 495 981 1485 1679 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00094 0.00104 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00005 0.76800 0.64045 | |||
SEGMENT_ORGX= 4.62 | |||
SEGMENT_ORGY= -404.40 | |||
SEGMENT_DISTANCE= -36.21 | |||
! SEGMENT 38 | |||
SEGMENT= 989 1475 1485 1679 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00049 -0.00114 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00111 0.76871 0.63959 | |||
SEGMENT_ORGX= 6.17 | |||
SEGMENT_ORGY= -405.99 | |||
SEGMENT_DISTANCE= -35.56 | |||
! SEGMENT 39 | |||
SEGMENT= 1483 1969 1485 1679 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00030 -0.00083 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00076 0.76828 0.64012 | |||
SEGMENT_ORGX= 5.36 | |||
SEGMENT_ORGY= -405.83 | |||
SEGMENT_DISTANCE= -35.75 | |||
! SEGMENT 40 | |||
SEGMENT= 1977 2463 1485 1679 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00033 -0.00084 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00028 0.76806 0.64038 | |||
SEGMENT_ORGX= 4.15 | |||
SEGMENT_ORGY= -404.69 | |||
SEGMENT_DISTANCE= -35.60 | |||
! SEGMENT 41 | |||
SEGMENT= 1 487 1697 1891 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00012 0.00028 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00004 0.85314 0.52169 | |||
SEGMENT_ORGX= 3.87 | |||
SEGMENT_ORGY= -412.52 | |||
SEGMENT_DISTANCE= 16.72 | |||
! SEGMENT 42 | |||
SEGMENT= 495 981 1697 1891 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00052 0.00053 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.85309 0.52176 | |||
SEGMENT_ORGX= 4.44 | |||
SEGMENT_ORGY= -412.64 | |||
SEGMENT_DISTANCE= 16.63 | |||
! SEGMENT 43 | |||
SEGMENT= 989 1475 1697 1891 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00025 -0.00126 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00045 0.85311 0.52173 | |||
SEGMENT_ORGX= 5.35 | |||
SEGMENT_ORGY= -413.24 | |||
SEGMENT_DISTANCE= 16.97 | |||
! SEGMENT 44 | |||
SEGMENT= 1483 1969 1697 1891 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00092 -0.00086 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00033 0.85325 0.52150 | |||
SEGMENT_ORGX= 3.55 | |||
SEGMENT_ORGY= -411.91 | |||
SEGMENT_DISTANCE= 17.21 | |||
! SEGMENT 45 | |||
SEGMENT= 1977 2463 1697 1891 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00008 -0.00113 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00052 0.85326 0.52149 | |||
SEGMENT_ORGX= 5.13 | |||
SEGMENT_ORGY= -413.28 | |||
SEGMENT_DISTANCE= 17.35 | |||
! SEGMENT 46 | |||
SEGMENT= 1 487 1909 2103 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00028 -0.00004 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00028 0.92003 0.39185 | |||
SEGMENT_ORGX= 4.58 | |||
SEGMENT_ORGY= -374.02 | |||
SEGMENT_DISTANCE= 74.51 | |||
! SEGMENT 47 | |||
SEGMENT= 495 981 1909 2103 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00049 0.00109 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00002 0.91985 0.39227 | |||
SEGMENT_ORGX= 3.78 | |||
SEGMENT_ORGY= -374.06 | |||
SEGMENT_DISTANCE= 74.25 | |||
! SEGMENT 48 | |||
SEGMENT= 989 1475 1909 2103 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00073 -0.00102 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00107 0.92009 0.39172 | |||
SEGMENT_ORGX= 6.81 | |||
SEGMENT_ORGY= -374.77 | |||
SEGMENT_DISTANCE= 74.74 | |||
! SEGMENT 49 | |||
SEGMENT= 1483 1969 1909 2103 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00050 -0.00059 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00023 0.91986 0.39226 | |||
SEGMENT_ORGX= 3.55 | |||
SEGMENT_ORGY= -373.25 | |||
SEGMENT_DISTANCE= 74.64 | |||
! SEGMENT 50 | |||
SEGMENT= 1977 2463 1909 2103 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00023 -0.00070 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00049 0.92007 0.39176 | |||
SEGMENT_ORGX= 5.78 | |||
SEGMENT_ORGY= -374.22 | |||
SEGMENT_DISTANCE= 74.74 | |||
! SEGMENT 51 | |||
SEGMENT= 1 487 2121 2315 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00035 0.00033 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00025 0.96695 0.25495 | |||
SEGMENT_ORGX= 4.41 | |||
SEGMENT_ORGY= -285.55 | |||
SEGMENT_DISTANCE= 135.47 | |||
! SEGMENT 52 | |||
SEGMENT= 495 981 2121 2315 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00057 0.00085 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00033 0.96701 0.25473 | |||
SEGMENT_ORGX= 4.25 | |||
SEGMENT_ORGY= -285.70 | |||
SEGMENT_DISTANCE= 135.50 | |||
! SEGMENT 53 | |||
SEGMENT= 989 1475 2121 2315 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00024 -0.00056 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00038 0.96692 0.25510 | |||
SEGMENT_ORGX= 5.50 | |||
SEGMENT_ORGY= -286.05 | |||
SEGMENT_DISTANCE= 135.50 | |||
! SEGMENT 54 | |||
SEGMENT= 1483 1969 2121 2315 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00038 -0.00100 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00062 0.96709 0.25444 | |||
SEGMENT_ORGX= 6.40 | |||
SEGMENT_ORGY= -285.85 | |||
SEGMENT_DISTANCE= 135.99 | |||
! SEGMENT 55 | |||
SEGMENT= 1977 2463 2121 2315 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00036 -0.00067 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00052 0.96712 0.25433 | |||
SEGMENT_ORGX= 5.98 | |||
SEGMENT_ORGY= -285.86 | |||
SEGMENT_DISTANCE= 135.96 | |||
! SEGMENT 56 | |||
SEGMENT= 1 487 2333 2527 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00051 -0.00020 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00053 0.99369 0.11217 | |||
SEGMENT_ORGX= 5.92 | |||
SEGMENT_ORGY= -144.32 | |||
SEGMENT_DISTANCE= 199.07 | |||
! SEGMENT 57 | |||
SEGMENT= 495 981 2333 2527 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00033 0.00099 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00021 0.99374 0.11172 | |||
SEGMENT_ORGX= 3.79 | |||
SEGMENT_ORGY= -143.69 | |||
SEGMENT_DISTANCE= 199.15 | |||
! SEGMENT 58 | |||
SEGMENT= 989 1475 2333 2527 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00067 -0.00123 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00080 0.99372 0.11190 | |||
SEGMENT_ORGX= 7.88 | |||
SEGMENT_ORGY= -144.66 | |||
SEGMENT_DISTANCE= 199.42 | |||
! SEGMENT 59 | |||
SEGMENT= 1483 1969 2333 2527 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00007 -0.00038 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00011 0.99374 0.11170 | |||
SEGMENT_ORGX= 5.18 | |||
SEGMENT_ORGY= -143.35 | |||
SEGMENT_DISTANCE= 199.36 | |||
! SEGMENT 60 | |||
SEGMENT= 1977 2463 2333 2527 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00080 -0.00014 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00081 0.99380 0.11117 | |||
SEGMENT_ORGX= 6.82 | |||
SEGMENT_ORGY= -144.43 | |||
SEGMENT_DISTANCE= 199.40 | |||
! SEGMENT 61 | |||
SEGMENT= 1 487 2545 2739 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00000 0.00000 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00000 0.99944 -0.03352 | |||
SEGMENT_ORGX= 4.09 | |||
SEGMENT_ORGY= 52.67 | |||
SEGMENT_DISTANCE= 263.82 | |||
! SEGMENT 62 | |||
SEGMENT= 495 981 2545 2739 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00015 0.00057 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.99942 -0.03399 | |||
SEGMENT_ORGX= 3.77 | |||
SEGMENT_ORGY= 53.04 | |||
SEGMENT_DISTANCE= 264.14 | |||
! SEGMENT 63 | |||
SEGMENT= 989 1475 2545 2739 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00005 0.00096 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00001 0.99941 -0.03430 | |||
SEGMENT_ORGX= 2.71 | |||
SEGMENT_ORGY= 53.88 | |||
SEGMENT_DISTANCE= 264.03 | |||
! SEGMENT 64 | |||
SEGMENT= 1483 1969 2545 2739 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00000 0.00000 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00000 0.99944 -0.03352 | |||
SEGMENT_ORGX= 4.09 | |||
SEGMENT_ORGY= 52.67 | |||
SEGMENT_DISTANCE= 263.82 | |||
! SEGMENT 65 | |||
SEGMENT= 1977 2463 2545 2739 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00000 0.00000 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00000 0.99944 -0.03352 | |||
SEGMENT_ORGX= 4.09 | |||
SEGMENT_ORGY= 52.67 | |||
SEGMENT_DISTANCE= 263.82 | |||
! SEGMENT 66 | |||
SEGMENT= 1 487 2757 2951 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00049 0.00114 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00068 0.98402 -0.17805 | |||
SEGMENT_ORGX= 4.00 | |||
SEGMENT_ORGY= 303.18 | |||
SEGMENT_DISTANCE= 328.29 | |||
! SEGMENT 67 | |||
SEGMENT= 495 981 2757 2951 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00038 0.00066 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00049 0.98400 -0.17816 | |||
SEGMENT_ORGX= 4.55 | |||
SEGMENT_ORGY= 303.20 | |||
SEGMENT_DISTANCE= 328.34 | |||
! SEGMENT 68 | |||
SEGMENT= 989 1475 2757 2951 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00032 -0.00068 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00019 0.98391 -0.17866 | |||
SEGMENT_ORGX= 6.24 | |||
SEGMENT_ORGY= 304.40 | |||
SEGMENT_DISTANCE= 328.74 | |||
! SEGMENT 69 | |||
SEGMENT= 1483 1969 2757 2951 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00037 -0.00113 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00016 0.98397 -0.17834 | |||
SEGMENT_ORGX= 7.48 | |||
SEGMENT_ORGY= 303.70 | |||
SEGMENT_DISTANCE= 328.88 | |||
! SEGMENT 70 | |||
SEGMENT= 1977 2463 2757 2951 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00016 -0.00027 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00011 0.98399 -0.17824 | |||
SEGMENT_ORGX= 5.61 | |||
SEGMENT_ORGY= 303.71 | |||
SEGMENT_DISTANCE= 328.44 | |||
! SEGMENT 71 | |||
SEGMENT= 1 487 2969 3163 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00030 -0.00024 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00021 0.94770 -0.31916 | |||
SEGMENT_ORGX= 5.64 | |||
SEGMENT_ORGY= 608.83 | |||
SEGMENT_DISTANCE= 391.30 | |||
! SEGMENT 72 | |||
SEGMENT= 495 981 2969 3163 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00012 0.00040 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00024 0.94756 -0.31957 | |||
SEGMENT_ORGX= 4.12 | |||
SEGMENT_ORGY= 609.89 | |||
SEGMENT_DISTANCE= 391.43 | |||
! SEGMENT 73 | |||
SEGMENT= 989 1475 2969 3163 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00058 -0.00069 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00033 0.94764 -0.31935 | |||
SEGMENT_ORGX= 7.12 | |||
SEGMENT_ORGY= 609.07 | |||
SEGMENT_DISTANCE= 391.50 | |||
! SEGMENT 74 | |||
SEGMENT= 1483 1969 2969 3163 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00048 -0.00088 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.94769 -0.31918 | |||
SEGMENT_ORGX= 7.06 | |||
SEGMENT_ORGY= 608.83 | |||
SEGMENT_DISTANCE= 391.56 | |||
! SEGMENT 75 | |||
SEGMENT= 1977 2463 2969 3163 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00165 -0.00010 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00153 0.94753 -0.31967 | |||
SEGMENT_ORGX= 8.87 | |||
SEGMENT_ORGY= 606.87 | |||
SEGMENT_DISTANCE= 391.76 | |||
! SEGMENT 76 | |||
SEGMENT= 1 487 3181 3375 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00041 -0.00026 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00025 0.89152 -0.45299 | |||
SEGMENT_ORGX= 5.40 | |||
SEGMENT_ORGY= 964.61 | |||
SEGMENT_DISTANCE= 450.92 | |||
! SEGMENT 77 | |||
SEGMENT= 495 981 3181 3375 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00004 0.00066 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00026 0.89140 -0.45322 | |||
SEGMENT_ORGX= 3.47 | |||
SEGMENT_ORGY= 965.43 | |||
SEGMENT_DISTANCE= 450.97 | |||
! SEGMENT 78 | |||
SEGMENT= 989 1475 3181 3375 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00007 -0.00097 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00038 0.89142 -0.45318 | |||
SEGMENT_ORGX= 5.83 | |||
SEGMENT_ORGY= 965.97 | |||
SEGMENT_DISTANCE= 451.19 | |||
! SEGMENT 79 | |||
SEGMENT= 1483 1969 3181 3375 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00042 -0.00120 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00017 0.89131 -0.45339 | |||
SEGMENT_ORGX= 7.27 | |||
SEGMENT_ORGY= 966.72 | |||
SEGMENT_DISTANCE= 451.51 | |||
! SEGMENT 80 | |||
SEGMENT= 1977 2463 3181 3375 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00012 0.00005 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00013 0.89154 -0.45293 | |||
SEGMENT_ORGX= 4.23 | |||
SEGMENT_ORGY= 964.23 | |||
SEGMENT_DISTANCE= 450.89 | |||
! SEGMENT 81 | |||
SEGMENT= 1 487 3393 3587 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00041 0.00034 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00053 0.81635 -0.57756 | |||
SEGMENT_ORGX= 4.73 | |||
SEGMENT_ORGY= 1370.46 | |||
SEGMENT_DISTANCE= 506.46 | |||
! SEGMENT 82 | |||
SEGMENT= 495 981 3393 3587 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00031 -0.00018 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00015 0.81619 -0.57779 | |||
SEGMENT_ORGX= 5.45 | |||
SEGMENT_ORGY= 1371.41 | |||
SEGMENT_DISTANCE= 506.67 | |||
! SEGMENT 83 | |||
SEGMENT= 989 1475 3393 3587 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00062 -0.00059 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.81642 -0.57746 | |||
SEGMENT_ORGX= 7.02 | |||
SEGMENT_ORGY= 1370.21 | |||
SEGMENT_DISTANCE= 506.58 | |||
! SEGMENT 84 | |||
SEGMENT= 1483 1969 3393 3587 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00070 -0.00071 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00016 0.81619 -0.57778 | |||
SEGMENT_ORGX= 7.44 | |||
SEGMENT_ORGY= 1371.37 | |||
SEGMENT_DISTANCE= 506.88 | |||
! SEGMENT 85 | |||
SEGMENT= 1977 2463 3393 3587 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00098 -0.00041 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00056 0.81610 -0.57791 | |||
SEGMENT_ORGX= 7.74 | |||
SEGMENT_ORGY= 1370.96 | |||
SEGMENT_DISTANCE= 507.00 | |||
! SEGMENT 86 | |||
SEGMENT= 1 487 3605 3799 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00117 0.00085 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00026 0.72365 -0.69017 | |||
SEGMENT_ORGX= -0.95 | |||
SEGMENT_ORGY= 1822.59 | |||
SEGMENT_DISTANCE= 556.73 | |||
! SEGMENT 87 | |||
SEGMENT= 495 981 3605 3799 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00032 0.00058 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.72347 -0.69035 | |||
SEGMENT_ORGX= 1.93 | |||
SEGMENT_ORGY= 1823.31 | |||
SEGMENT_DISTANCE= 556.80 | |||
! SEGMENT 88 | |||
SEGMENT= 989 1475 3605 3799 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00037 -0.00043 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00003 0.72375 -0.69006 | |||
SEGMENT_ORGX= 5.71 | |||
SEGMENT_ORGY= 1822.09 | |||
SEGMENT_DISTANCE= 556.81 | |||
! SEGMENT 89 | |||
SEGMENT= 1483 1969 3605 3799 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00077 -0.00057 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00017 0.72366 -0.69016 | |||
SEGMENT_ORGX= 7.82 | |||
SEGMENT_ORGY= 1822.42 | |||
SEGMENT_DISTANCE= 557.04 | |||
! SEGMENT 90 | |||
SEGMENT= 1977 2463 3605 3799 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00064 -0.00079 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00008 0.72355 -0.69027 | |||
SEGMENT_ORGX= 7.16 | |||
SEGMENT_ORGY= 1823.19 | |||
SEGMENT_DISTANCE= 557.18 | |||
! SEGMENT 91 | |||
SEGMENT= 1 487 3817 4011 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00020 0.00050 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00052 0.61513 -0.78843 | |||
SEGMENT_ORGX= 4.08 | |||
SEGMENT_ORGY= 2316.53 | |||
SEGMENT_DISTANCE= 600.68 | |||
! SEGMENT 92 | |||
SEGMENT= 495 981 3817 4011 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00045 0.00073 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00030 0.61597 -0.78777 | |||
SEGMENT_ORGX= 1.75 | |||
SEGMENT_ORGY= 2312.82 | |||
SEGMENT_DISTANCE= 600.29 | |||
! SEGMENT 93 | |||
SEGMENT= 989 1475 3817 4011 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00007 -0.00044 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00030 0.61591 -0.78782 | |||
SEGMENT_ORGX= 4.50 | |||
SEGMENT_ORGY= 2313.65 | |||
SEGMENT_DISTANCE= 600.46 | |||
! SEGMENT 94 | |||
SEGMENT= 1483 1969 3817 4011 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00096 0.00050 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00099 0.61532 -0.78828 | |||
SEGMENT_ORGX= 7.42 | |||
SEGMENT_ORGY= 2314.13 | |||
SEGMENT_DISTANCE= 600.64 | |||
! SEGMENT 95 | |||
SEGMENT= 1977 2463 3817 4011 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00022 -0.00030 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00010 0.61556 -0.78809 | |||
SEGMENT_ORGX= 5.16 | |||
SEGMENT_ORGY= 2315.08 | |||
SEGMENT_DISTANCE= 600.62 | |||
! SEGMENT 96 | |||
SEGMENT= 1 487 4029 4223 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00053 0.00024 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00047 0.49448 -0.86919 | |||
SEGMENT_ORGX= 5.67 | |||
SEGMENT_ORGY= 2840.04 | |||
SEGMENT_DISTANCE= 636.75 | |||
! SEGMENT 97 | |||
SEGMENT= 495 981 4029 4223 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00022 0.00073 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00074 0.49423 -0.86933 | |||
SEGMENT_ORGX= 4.46 | |||
SEGMENT_ORGY= 2840.73 | |||
SEGMENT_DISTANCE= 636.83 | |||
! SEGMENT 98 | |||
SEGMENT= 989 1475 4029 4223 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00092 -0.00030 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00020 0.49510 -0.86884 | |||
SEGMENT_ORGX= 8.05 | |||
SEGMENT_ORGY= 2837.31 | |||
SEGMENT_DISTANCE= 636.77 | |||
! SEGMENT 99 | |||
SEGMENT= 1483 1969 4029 4223 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00018 0.00027 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00032 0.49433 -0.86928 | |||
SEGMENT_ORGX= 4.71 | |||
SEGMENT_ORGY= 2840.07 | |||
SEGMENT_DISTANCE= 636.77 | |||
! SEGMENT 100 | |||
SEGMENT= 1977 2463 4029 4223 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00091 -0.00047 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00004 0.49460 -0.86912 | |||
SEGMENT_ORGX= 8.26 | |||
SEGMENT_ORGY= 2839.42 | |||
SEGMENT_DISTANCE= 637.08 | |||
! SEGMENT 101 | |||
SEGMENT= 1 487 4241 4435 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00032 0.00022 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00032 0.36345 -0.93161 | |||
SEGMENT_ORGX= 5.33 | |||
SEGMENT_ORGY= 3390.42 | |||
SEGMENT_DISTANCE= 664.77 | |||
! SEGMENT 102 | |||
SEGMENT= 495 981 4241 4435 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00027 0.00044 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00031 0.36324 -0.93169 | |||
SEGMENT_ORGX= 2.96 | |||
SEGMENT_ORGY= 3391.32 | |||
SEGMENT_DISTANCE= 664.69 | |||
! SEGMENT 103 | |||
SEGMENT= 989 1475 4241 4435 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00101 0.00002 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00038 0.36357 -0.93157 | |||
SEGMENT_ORGX= 8.16 | |||
SEGMENT_ORGY= 3389.42 | |||
SEGMENT_DISTANCE= 664.85 | |||
! SEGMENT 104 | |||
SEGMENT= 1483 1969 4241 4435 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00059 -0.00019 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00003 0.36334 -0.93166 | |||
SEGMENT_ORGX= 6.56 | |||
SEGMENT_ORGY= 3390.71 | |||
SEGMENT_DISTANCE= 664.86 | |||
! SEGMENT 105 | |||
SEGMENT= 1977 2463 4241 4435 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00173 -0.00028 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00036 0.36352 -0.93159 | |||
SEGMENT_ORGX= 11.50 | |||
SEGMENT_ORGY= 3389.42 | |||
SEGMENT_DISTANCE= 665.23 | |||
! SEGMENT 106 | |||
SEGMENT= 1 487 4453 4647 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00058 0.00007 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00020 0.22382 -0.97463 | |||
SEGMENT_ORGX= 6.33 | |||
SEGMENT_ORGY= 3964.77 | |||
SEGMENT_DISTANCE= 684.01 | |||
! SEGMENT 107 | |||
SEGMENT= 495 981 4453 4647 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00071 -0.00041 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00055 0.22448 -0.97448 | |||
SEGMENT_ORGX= 1.76 | |||
SEGMENT_ORGY= 3962.92 | |||
SEGMENT_DISTANCE= 683.89 | |||
! SEGMENT 108 | |||
SEGMENT= 989 1475 4453 4647 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00065 0.00001 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00015 0.22437 -0.97450 | |||
SEGMENT_ORGX= 6.92 | |||
SEGMENT_ORGY= 3962.37 | |||
SEGMENT_DISTANCE= 684.06 | |||
! SEGMENT 109 | |||
SEGMENT= 1483 1969 4453 4647 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00073 -0.00120 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00101 0.22429 -0.97452 | |||
SEGMENT_ORGX= 7.71 | |||
SEGMENT_ORGY= 3964.48 | |||
SEGMENT_DISTANCE= 684.23 | |||
! SEGMENT 110 | |||
SEGMENT= 1977 2463 4453 4647 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00052 -0.00035 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00022 0.22472 -0.97442 | |||
SEGMENT_ORGX= 6.51 | |||
SEGMENT_ORGY= 3961.51 | |||
SEGMENT_DISTANCE= 684.03 | |||
! SEGMENT 111 | |||
SEGMENT= 1 487 4665 4859 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00029 0.00012 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00010 0.08035 -0.99677 | |||
SEGMENT_ORGX= 2.86 | |||
SEGMENT_ORGY= 4547.50 | |||
SEGMENT_DISTANCE= 693.99 | |||
! SEGMENT 112 | |||
SEGMENT= 495 981 4665 4859 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00088 -0.00026 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00033 0.08081 -0.99673 | |||
SEGMENT_ORGX= 0.34 | |||
SEGMENT_ORGY= 4546.02 | |||
SEGMENT_DISTANCE= 693.92 | |||
! SEGMENT 113 | |||
SEGMENT= 989 1475 4665 4859 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00118 -0.00039 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00029 0.07994 -0.99680 | |||
SEGMENT_ORGX= 8.96 | |||
SEGMENT_ORGY= 4549.58 | |||
SEGMENT_DISTANCE= 694.25 | |||
! SEGMENT 114 | |||
SEGMENT= 1483 1969 4665 4859 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00068 0.00041 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00047 0.07984 -0.99681 | |||
SEGMENT_ORGX= 6.59 | |||
SEGMENT_ORGY= 4548.65 | |||
SEGMENT_DISTANCE= 694.25 | |||
! SEGMENT 115 | |||
SEGMENT= 1977 2463 4665 4859 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00057 -0.00031 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00026 0.08104 -0.99671 | |||
SEGMENT_ORGX= 6.47 | |||
SEGMENT_ORGY= 4545.15 | |||
SEGMENT_DISTANCE= 694.14 | |||
! SEGMENT 116 | |||
SEGMENT= 1 487 4877 5071 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00100 0.00013 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00007 -0.06472 -0.99790 | |||
SEGMENT_ORGX= 7.84 | |||
SEGMENT_ORGY= 5134.69 | |||
SEGMENT_DISTANCE= 694.61 | |||
! SEGMENT 117 | |||
SEGMENT= 495 981 4877 5071 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00023 -0.00039 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00038 -0.06512 -0.99788 | |||
SEGMENT_ORGX= 2.94 | |||
SEGMENT_ORGY= 5136.66 | |||
SEGMENT_DISTANCE= 694.59 | |||
! SEGMENT 118 | |||
SEGMENT= 989 1475 4877 5071 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00054 0.00036 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00033 -0.06446 -0.99792 | |||
SEGMENT_ORGX= 6.18 | |||
SEGMENT_ORGY= 5133.17 | |||
SEGMENT_DISTANCE= 694.74 | |||
! SEGMENT 119 | |||
SEGMENT= 1483 1969 4877 5071 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 0.00061 -0.00046 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= -0.00041 -0.06543 -0.99786 | |||
SEGMENT_ORGX= 1.83 | |||
SEGMENT_ORGY= 5138.36 | |||
SEGMENT_DISTANCE= 694.32 | |||
! SEGMENT 120 | |||
SEGMENT= 1977 2463 4877 5071 | |||
DIRECTION_OF_SEGMENT_X-AXIS= 1.00000 -0.00049 0.00007 | |||
DIRECTION_OF_SEGMENT_Y-AXIS= 0.00004 -0.06464 -0.99791 | |||
SEGMENT_ORGX= 6.44 | |||
SEGMENT_ORGY= 5134.23 | |||
SEGMENT_DISTANCE= 694.72 | |||
</pre> | |||
</div> | |||
</div> | |||
== Limitations == | == Limitations == | ||
* The script tries to interpret the header of the frames, so is currently limited to Dectris (Pilatus, Eiger), ADSC (Quantum), Rigaku (several types), MAR (CCD and image plate) detectors, and one Bruker detector. Other detectors need some values to be manually filled into XDS.INP - the relevant places are marked with XXX. These are detector properties (type, pixel size and number, min and max counts in a pixel), and experimental parameters like ROTATION_AXIS, OSCILLATION_RANGE, X-RAY_WAVELENGTH, DETECTOR_DISTANCE, and XORG, YORG. For fine-tuning of detector parameters, see the [http://xds.mpimf-heidelberg.mpg.de/html_doc/xds_prepare.html detector-specific templates]. | * The script tries to interpret the header of the frames, so is currently limited to Dectris (Pilatus, Eiger), ADSC (Quantum), Rigaku (several types), MAR (CCD and image plate) detectors, and one Bruker detector, and Bruker sfrm Version 18 . Other detectors need some values to be manually filled into XDS.INP - the relevant places are marked with XXX. These are detector properties (type, pixel size and number, min and max counts in a pixel), and experimental parameters like ROTATION_AXIS, OSCILLATION_RANGE, X-RAY_WAVELENGTH, DETECTOR_DISTANCE, and XORG, YORG. For fine-tuning of detector parameters, see the [http://xds.mpimf-heidelberg.mpg.de/html_doc/xds_prepare.html detector-specific templates]. | ||
* The authors have made a "best effort" to provide a XDS.INP that results in the correct sign of the anomalous signal. In the case of one detector type (internally called Rigaku SMV) this requires reversal of one detector axis, and a negative DETECTOR_DISTANCE, as is found in some of the [http://xds.mpimf-heidelberg.mpg.de/html_doc/xds_prepare.html detector-specific templates]. '''For an unusual or unknown detector setup, the correct sign of the anomalous signal needs to be established and verified e.g. with a good dataset from a test crystal that has an anomalous signal.''' The authors do not take any responsibility for problems arising from incorrect sign of the anomalous signal, nor - obviously! - for any other mischief arising in or from data processing. | * The authors have made a "best effort" to provide a XDS.INP that results in the correct sign of the anomalous signal. In the case of one detector type (internally called Rigaku SMV) this requires reversal of one detector axis, and a negative DETECTOR_DISTANCE, as is found in some of the [http://xds.mpimf-heidelberg.mpg.de/html_doc/xds_prepare.html detector-specific templates]. '''For an unusual or unknown detector setup, the correct sign of the anomalous signal needs to be established and verified e.g. with a good dataset from a test crystal that has an anomalous signal.''' The authors do not take any responsibility for problems arising from incorrect sign of the anomalous signal, nor - obviously! - for any other mischief arising in or from data processing. | ||
* At some beamlines, the ROTATION_AXIS | * At some beamlines, the ROTATION_AXIS needs to be -1 0 0 ("backwards") instead of the usual 1 0 0 ("horizontal"), or even 0 1 0 ("vertical") like at one of the PETRA Hamburg BLs. The frame headers do not have this information, but for some beamlines the correct value has been implemented in the script. For other beamlines, the default chosen by [[generate_XDS.INP]] may be wrong and need manual correction of XDS.INP. The correct choice can be enforced by you with a [[Generate_XDS.INP#Site_Files|site file]]. Pls also see the article [[Beamline notes]]. | ||
* Sometimes, the x- and y- values of the primary beam position recorded in the header should be used for ORGY and ORGX (i.e reversed) instead of as ORGX and ORGY. For ADSC, this has been implemented in the script for | * Sometimes, the x- and y- values of the primary beam position recorded in the header should be used for ORGY and ORGX (i.e reversed) instead of as ORGX and ORGY. For ADSC, this has been implemented in the script for certain beamlines. | ||
* there are apparently several flavours of HDF5 files produced at Diamond Light Source. They differ e.g. in the naming of the header items. This means that items like NX, NY, DETECTOR_DISTANCE and number of images cannot always be determined by the [[generate_XDS.INP]] script. Example: The data at /dls/i04-1/data/2021/mx28114-9/processing/Lenye_Diamini/ThiL/ThiL found during the CCP4 2021 online Cape Town workshop. A workaround is to use e.g. xia2 pipeline=3dii to process these files, and - if needed - extract those items from its output files, e.g. from DEFAULT/NATIVE/SWEEP1/index/XDS.INP . | * there are apparently several flavours of HDF5 files produced at Diamond Light Source. They differ e.g. in the naming of the header items. This means that items like NX, NY, DETECTOR_DISTANCE and number of images cannot always be determined by the [[generate_XDS.INP]] script. Example: The data at /dls/i04-1/data/2021/mx28114-9/processing/Lenye_Diamini/ThiL/ThiL found during the CCP4 2021 online Cape Town workshop. A workaround is to use e.g. xia2 pipeline=3dii to process these files, and - if needed - extract those items from its output files, e.g. from DEFAULT/NATIVE/SWEEP1/index/XDS.INP . | ||