18
edits
m (→XDS_from_H5.py script for generating XDS.INP given a master .h5 file: set albula lib version to 3.2 (from 3.1)) |
Docandreas (talk | contribs) No edit summary |
||
Line 124: | Line 124: | ||
<pre> | <pre> | ||
#!/usr/bin/python | #!/usr/bin/python | ||
# coding: | # -*- coding: utf-8 -*- | ||
__author__ = "AndF" | |||
__date__ = "2017/03/08" | |||
__reviewer__ = "" | |||
__version__ = "0.1.0" | |||
import sys | import sys | ||
# Path needs to be be set only if dectris.albula is not found | # Path needs to be be set only if dectris.albula is not found | ||
# i.e. if ALBULA was installed without "--python=</path/to/python_interpreter>" | # i.e. if ALBULA was installed without "--python=</path/to/python_interpreter>" | ||
# | # Uncomment below (and define correct path to ALBULA API) | ||
sys.path.insert(0,"/usr/local/dectris/albula/3.2/python") | # sys.path.insert(0,"/usr/local/dectris/albula/3.2/python") | ||
try: | try: | ||
import dectris.albula as dec | import dectris.albula as dec | ||
Line 164: | Line 169: | ||
!====================== DETECTOR PARAMETERS ================================== | !====================== DETECTOR PARAMETERS ================================== | ||
DETECTOR=%(family)s | DETECTOR=%(family)s | ||
!LIB= /usr/local/lib64/dectris-neggia.so | |||
MINIMUM_VALID_PIXEL_VALUE=0 | MINIMUM_VALID_PIXEL_VALUE=0 | ||
OVERLOAD= %(cutoff)i ! taken from HDF5 header item | OVERLOAD= %(cutoff)i ! taken from HDF5 header item | ||
Line 179: | Line 185: | ||
!====================== JOB CONTROL PARAMETERS =============================== | !====================== JOB CONTROL PARAMETERS =============================== | ||
JOB= XYCORR INIT COLSPOT IDXREF DEFPIX ! | !JOB= XYCORR INIT COLSPOT IDXREF DEFPIX ! XPLAN INTEGRATE CORRECT | ||
JOB= XYCORR INIT COLSPOT IDXREF DEFPIX INTEGRATE CORRECT | |||
!JOB= INTEGRATE CORRECT | |||
! MAXIMUM_NUMBER_OF_JOBS=8 !Speeds up COLSPOT & INTEGRATE on multicore machine | !Set maximum number of jobs and processors so that their products comes close | ||
!to the number of CPUs of the machine. | |||
MAXIMUM_NUMBER_OF_JOBS=8 !Speeds up COLSPOT & INTEGRATE on multicore machine | |||
MAXIMUM_NUMBER_OF_PROCESSORS=4!<99;ignored by single cpu version of xds | |||
!SECONDS=0 !Maximum number of seconds to wait until data image must appear | !SECONDS=0 !Maximum number of seconds to wait until data image must appear | ||
!TEST=1 !Test flag. 1,2 additional diagnostics and images | !TEST=1 !Test flag. 1,2 additional diagnostics and images | ||
Line 189: | Line 199: | ||
!ORGX and ORGY are often close to the image center, i.e. ORGX=NX/2, ORGY=NY/2 | !ORGX and ORGY are often close to the image center, i.e. ORGX=NX/2, ORGY=NY/2 | ||
ORGX= %(orgx).1f ORGY= %(orgy).1f !Detector origin (pixels). ORGX=NX/2; ORGY=NY/2 | ORGX= %(orgx).1f ORGY= %(orgy).1f !Detector origin (pixels). ORGX=NX/2; ORGY=NY/2 | ||
DETECTOR_DISTANCE= %(dist) | DETECTOR_DISTANCE= %(dist).2f ! [mm] | ||
ROTATION_AXIS= 1.0 0.0 0.0 | ROTATION_AXIS= 1.0 0.0 0.0 | ||
Line 214: | Line 224: | ||
!REIDX= 0 0 -1 0 0 -1 0 0 -1 0 0 0 | !REIDX= 0 0 -1 0 0 -1 0 0 -1 0 0 0 | ||
!FRIEDEL'S_LAW=FALSE ! Default is TRUE. | |||
!REFERENCE_DATA_SET= CK.HKL ! Name of a reference data set (optional) | !REFERENCE_DATA_SET= CK.HKL ! Name of a reference data set (optional) | ||
Line 301: | Line 311: | ||
!REFLECTING_RANGE_E.S.D.= 0.113 !half-width (mosaicity) of REFLECTING_RANGE | !REFLECTING_RANGE_E.S.D.= 0.113 !half-width (mosaicity) of REFLECTING_RANGE | ||
NUMBER_OF_PROFILE_GRID_POINTS_ALONG_ALPHA/BETA= | !The next two values could be increased up to 21 for best profiles. | ||
NUMBER_OF_PROFILE_GRID_POINTS_ALONG_GAMMA= | NUMBER_OF_PROFILE_GRID_POINTS_ALONG_ALPHA/BETA=13!used by: INTEGRATE | ||
NUMBER_OF_PROFILE_GRID_POINTS_ALONG_GAMMA=13 !used by: INTEGRATE | |||
!DELPHI= 6.0!controls the number of reference profiles and scaling factors | !DELPHI= 6.0!controls the number of reference profiles and scaling factors | ||
Line 443: | Line 454: | ||
'orgx': float(parameters["/entry/instrument/detector/beam_center_x"]), | 'orgx': float(parameters["/entry/instrument/detector/beam_center_x"]), | ||
'orgy': float(parameters["/entry/instrument/detector/beam_center_y"]), | 'orgy': float(parameters["/entry/instrument/detector/beam_center_y"]), | ||
'dist': | 'dist': float(parameters["/entry/instrument/detector/detector_distance"]) * 1000.0, | ||
'osc_range': float(parameters["/entry/sample/goniometer/omega_range_average"]), | 'osc_range': float(parameters["/entry/sample/goniometer/omega_range_average"]), | ||
'wavelength': float(parameters["/entry/instrument/beam/incident_wavelength"]), | 'wavelength': float(parameters["/entry/instrument/beam/incident_wavelength"]), | ||
Line 504: | Line 515: | ||
gap[1] + 1 + offset + n_excluded_edge_pixels, | gap[1] + 1 + offset + n_excluded_edge_pixels, | ||
0, | 0, | ||
detector_families[fam]['sizes'][det][1] + | detector_families[fam]['sizes'][det][1] + offset)) | ||
param_lines.append('\n') | param_lines.append('\n') | ||
param_lines.append('!EXCLUSION OF HORIZONTAL DEAD AREAS OF THE ' | param_lines.append('!EXCLUSION OF HORIZONTAL DEAD AREAS OF THE ' | ||
Line 513: | Line 524: | ||
param_lines.append(' UNTRUSTED_RECTANGLE= %4d %4d %4d %4d \n' % ( | param_lines.append(' UNTRUSTED_RECTANGLE= %4d %4d %4d %4d \n' % ( | ||
0, | 0, | ||
detector_families[fam]['sizes'][det][0] + | detector_families[fam]['sizes'][det][0] + offset, | ||
gap[0] - 1 + offset - n_excluded_edge_pixels, | gap[0] - 1 + offset - n_excluded_edge_pixels, | ||
gap[1] + 1 + offset + n_excluded_edge_pixels)) | gap[1] + 1 + offset + n_excluded_edge_pixels)) | ||
Line 521: | Line 532: | ||
return ('\nThis script extracts from a given HDF5 master file all metadata\n' | return ('\nThis script extracts from a given HDF5 master file all metadata\n' | ||
'required to write XDS.INP. The user is prompted for missing metadata.\n' | 'required to write XDS.INP. The user is prompted for missing metadata.\n' | ||
'If there are errors in the metadata, XDS.INP will be incorrect.\n' | |||
'\n' | '\n' | ||
'Please report shortcomings and errors to docandreas@gmail.com\n') | |||
'Please report shortcomings and errors to | |||
def help(): | def help(): | ||
Line 576: | Line 584: | ||
return raw_input("Please enter the maximum trusted pixel value.\n") | return raw_input("Please enter the maximum trusted pixel value.\n") | ||
elif (parameter == resolution_cutoff): | elif (parameter == resolution_cutoff): | ||
print "Please enter a resolution limit for processing." | |||
return raw_input("Enter '0' to let XDS decide.\n") or 0 | |||
else: | else: | ||
print "Unknown software version. Please check." | print "Unknown software version. Please check." | ||
Line 683: | Line 692: | ||
else: | else: | ||
print "\nThe HDF5 file was created with version %s of the detector firmware" % (para_version) | print "\nThe HDF5 file was created with version %s of the detector firmware" % (para_version) | ||
print "This script supports versions 1. | print "This script supports versions 1.5 and up." | ||
print "\nFile XDS.INP was not created." | print "\nFile XDS.INP was not created." | ||
print "Please extract metadata with hdfview or h5dump.\n" | print "Please extract metadata with hdfview or h5dump.\n" |
edits