hkl2Angles

The following script calculates the diffractometer angles from hkl.

#!/usr/bin/env python26
#
# usage: ./hkl2Angles.py 1 0 0 
#
from PyTango import *
import sys

diff = DeviceProxy( "someHost:10000/test/e6c/diffrac")
dev = DeviceProxy( "someHost:10000/test/e6c/diffrac-sim-hkl")

diff.write_attribute( 'Simulated', True)

dev.write_attribute( 'h', float( sys.argv[1]))
dev.write_attribute( 'k', float( sys.argv[2]))
dev.write_attribute( 'l', float( sys.argv[3]))

angles = diff.read_attribute( "Angles")

print( sys.argv)
print( angles.value)

Output:

$ ./hkl2Angles.py 1 0 0 
['./hkl2Angles.py', '1', '0', '0']
[[  0.00000000e+00   0.00000000e+00  -9.34260863e+00   1.90908957e-33
   -9.00000000e+01   0.00000000e+00  -1.86852173e+01]
 [  1.00000000e+00   0.00000000e+00  -1.70657391e+02   1.90908957e-33
   -9.00000000e+01   0.00000000e+00   1.86852173e+01]
 [  2.00000000e+00   0.00000000e+00   9.34260863e+00  -1.80000000e+02
   -9.00000000e+01   0.00000000e+00   1.86852173e+01]
 [  3.00000000e+00   0.00000000e+00   9.34260863e+00   1.80000000e+02
   -9.00000000e+01   0.00000000e+00   1.86852173e+01]
 [  4.00000000e+00   0.00000000e+00   9.34260863e+00   1.90908957e-33
    9.00000000e+01   0.00000000e+00   1.86852173e+01]
 [  5.00000000e+00   0.00000000e+00  -9.34260863e+00  -1.80000000e+02
    9.00000000e+01   0.00000000e+00  -1.86852173e+01]
 [  6.00000000e+00   0.00000000e+00  -9.34260863e+00   1.80000000e+02
    9.00000000e+01   0.00000000e+00  -1.86852173e+01]
 [  7.00000000e+00   0.00000000e+00  -1.70657391e+02  -1.80000000e+02
    9.00000000e+01   0.00000000e+00   1.86852173e+01]
 [  8.00000000e+00   0.00000000e+00  -1.70657391e+02   1.80000000e+02
    9.00000000e+01   0.00000000e+00   1.86852173e+01]]