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]]