Dear Francois Remacle,
One example images for the mar225 is available under:
http://www.mx.bessy.de/temp_stuff/mar225_5_theta_1_001.img.bz2
The output for this image using DiffractionImage library looks like this
(using the function listed below):
================ DEBUG OUTPUT ======================
2Theta readout: 0.000
Exposure time= 1.0
NY= 3072
NAME_TEMPLATE_OF_DATA_FRAMES= mar225_5_theta_1_???.img
QX= 0.073
project_name= mar225_5_theta_1
image_number= 1
phi_end= 285.0
TwoTheta= 0.0
DETECTOR= MARCCD
ORGY= 1118
ORGX= 1121
MAXIMUM_NUMBER_OF_PROCESSORS= 2
OSCILLATION_RANGE= 1.0
phi_start= 284.0
X-RAY_WAVELENGTH= 1.72000
image_name= mar225_5_theta_1_001.img
image_dir= /psfhome/zocher/Desktop/ixds/ixds_v0.0.4
DIRECTION_OF_DETECTOR_Y-AXIS= 0.0 0.0 1.0
NX= 3072
QY= 0.073
Detector S/N= N/A
DISTANCE= 75
====================================================
Using catmar resulted in the correct 2Theta-Angle (which is the true
experimental setup):
> catmar mar225_5_theta.img | grep "2-THETA"
Starting 2-THETA = 5000
Ending 2-THETA = 5000
2-THETA [deg] = 5.000
The used python function:
def _get_all_image_info(image_file) :
""" Function extracting image header information and other useful
variables such as ' date',....
and put them into a dictonary.
"""
image_info = {}
try:
diff = DiffractionImage.DiffractionImage(image_file)
except:
print
print "\t Could not read image header..."
print "\t .... sys.exit"
print
sys.exit(0)
image_info["Exposure time= "] = diff.getExposureTime()
image_info["Detector S/N= "] = diff.getSerialNo()
image_info["X-RAY_WAVELENGTH= "] = '%.5f'%diff.getWavelength()
image_info["DETECTOR= "] = diff.getFormat()
image_info["ORGX= "] = '%.0f'%diff.getBeamX()
image_info["ORGY= "] = '%.0f'%diff.getBeamY()
image_info["DISTANCE= "] = '%.0f'%diff.getDistance()
image_info["NX= "] = '%.0f'%diff.getWidth()
image_info["NY= "] = '%.0f'%diff.getHeight()
image_info["QX= "] = '%.3f'%diff.getPixelX()
image_info["QY= "] = '%.3f'%diff.getPixelY()
image_info["phi_start= "] = '%.1f'%diff.getOscStart()
image_info["phi_end= "] = '%.1f'%diff.getOscEnd()
image_info["OSCILLATION_RANGE= "] = '%.1f'%(diff.getOscEnd() -
diff.getOscStart())
if diff.getTwoTheta() > 0 :
image_info["TwoTheta= "] = float(diff.getTwoTheta())
# function to recognise the two theta-axis
two_thetha_axis = __get_2theta_axis(prog_vars)
image_info[two_thetha_axis] = string.join([str(0.0),
str(math.sin(image_info["TwoTheta= "])),
str(math.cos(image_info["TwoTheta= "]))
])
else :
image_info["TwoTheta= "] = float(0)
two_thetha_axis = __get_2theta_axis(prog_vars)
image_info[two_thetha_axis] = string.join([str(0.0),
str(math.sin(image_info["TwoTheta= "])),
str(math.cos(image_info["TwoTheta= "]))
])
# functions to get other xds_vars
image_info["image_dir= "] =
os.path.abspath(os.path.dirname(image_file))
image_info["image_name= "] =
os.path.basename(image_file)
image_info["NAME_TEMPLATE_OF_DATA_FRAMES= "] =
_get_name_template(image_file)
image_info["project_name= "] =
_get_project_name(image_file)
image_info["image_number= "] =
_get_image_number(image_file)
image_info["MAXIMUM_NUMBER_OF_PROCESSORS= "] = _get_ncpu()
if debug == "on":
print
print " ================ DEBUG OUTPUT ====================== "
print
print "\t\t 2Theta readout: \t\t %.3f" %diff.getTwoTheta()
print
for key, val in image_info.items():
print "%30s \t %s" %(key, val)
print " ==================================================== "
return image_info
Once again, thank you very much for your help,
Best Regards,
Georg
Remacle, F (Francois) schrieb:
------------------------------------------------------------------------
*From:* Remacle, F (Francois)
*Sent:* 02 July 2008 09:46
*To:* 'Georg Zocher'
*Subject:* RE: [ccp4bb] .getTwoTheta() in DiffractionImage library
Dear Georg,
Normally the getTwoTheta function should pick up the angle information
from the image header. Obviously in your case it did not :-).
Could you send me examples images from these detectors so I can try to
ammend this problem?
Thanks
Francois Remacle
CCP4
------------------------------------------------------------------------
*From:* CCP4 bulletin board [mailto:[EMAIL PROTECTED] *On Behalf
Of *Georg Zocher
*Sent:* 02 July 2008 06:36
*To:* [email protected]
*Subject:* [ccp4bb] .getTwoTheta() in DiffractionImage library
Dear All,
just writting due to one problem concering the 'image diffraction
library'. I just build some code for some xds automatisation and would
like to use the 'image diffraction library' for the readout of the
image header informations.
The problem I ran into is the output of the ".getTwoTheta()"-function
implemented in the DiffractionImage module. Where all of the other
readout-functions worked very well, the .getTwoTheta()"-function
returned always 0.0 degree. Tested with marccd165- and
marccd225-detector. Using the manufactors program called 'catmar'
showed the 'right' angle.
Maybe I just made a very stupid error....
Thanks in advance, best regards
Georg
--
Dr. Georg Zocher
BESSY-MX group
BESSY GmbH
Albert-Einstein-Straße-15
D-12489 Berlin
Fon : +49-(0)30-6392 4973
Fax : +49-(0)30-6392 4975
email: [EMAIL PROTECTED]
url : http://www.psf.bessy.de/
BESSY GmbH - Mitglied der Leibniz Gemeinschaft
Vorsitzender des Aufsichtsrates: Prof. Dr. Dr. h.c. mult Joachim Treusch
Geschäftsführer: Prof. Dr. Dr. h.c. Wolfgang Eberhardt, Prof. Dr.Eberhard
Jaeschke Sitz Berlin, AG Charlottenburg, HRB 14635
--
Dr. Georg Zocher
BESSY-MX group
BESSY GmbH
Albert-Einstein-Straße-15
D-12489 Berlin
Fon : +49-(0)30-6392 4973
Fax : +49-(0)30-6392 4975
email: [EMAIL PROTECTED]
url : http://www.psf.bessy.de/
BESSY GmbH - Mitglied der Leibniz Gemeinschaft
Vorsitzender des Aufsichtsrates: Prof. Dr. Dr. h.c. mult Joachim Treusch
Geschäftsführer: Prof. Dr. Dr. h.c. Wolfgang Eberhardt, Prof. Dr.Eberhard
Jaeschke Sitz Berlin, AG Charlottenburg, HRB 14635