You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Quaternions

Table of quaternions was generated using methods in pyimgalgos/src/Quaternion.py

Self-test for Quaternion

self-test uses a chain of conversions:

  • angles -> rotation matrix -> quaternion -> rotation matrix -> angles,

where in and out angles and rotation matrix coincide.

Script cxif5315/make-quaternions.py generates file with a list of quaternions from file with table of angles

List of few quaternions
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:    30.0     0.0     0.0   quaternion: w, x, y, z:   0.965926   0.258819   0.000000   0.000000
Angles around x,y,z:    60.0     0.0     0.0   quaternion: w, x, y, z:   0.866025   0.500000   0.000000   0.000000
Angles around x,y,z:    90.0     0.0     0.0   quaternion: w, x, y, z:   0.707107   0.707107   0.000000   0.000000
Angles around x,y,z:   120.0     0.0     0.0   quaternion: w, x, y, z:   0.500000   0.866025   0.000000   0.000000
Angles around x,y,z:   150.0     0.0     0.0   quaternion: w, x, y, z:   0.258819   0.965926   0.000000   0.000000
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:     0.0    30.0     0.0   quaternion: w, x, y, z:   0.965926   0.000000   0.258819   0.000000
Angles around x,y,z:     0.0    60.0     0.0   quaternion: w, x, y, z:   0.866025   0.000000   0.500000   0.000000
Angles around x,y,z:     0.0    90.0     0.0   quaternion: w, x, y, z:   0.707107   0.000000   0.707107   0.000000
Angles around x,y,z:     0.0   120.0     0.0   quaternion: w, x, y, z:   0.500000   0.000000   0.866025   0.000000
Angles around x,y,z:     0.0   150.0     0.0   quaternion: w, x, y, z:   0.258819   0.000000   0.965926   0.000000
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:     0.0     0.0    30.0   quaternion: w, x, y, z:   0.965926   0.000000   0.000000   0.258819
Angles around x,y,z:     0.0     0.0    60.0   quaternion: w, x, y, z:   0.866025   0.000000   0.000000   0.500000
Angles around x,y,z:     0.0     0.0    90.0   quaternion: w, x, y, z:   0.707107   0.000000   0.000000   0.707107
Angles around x,y,z:     0.0     0.0   120.0   quaternion: w, x, y, z:   0.500000   0.000000   0.000000   0.866025
Angles around x,y,z:     0.0     0.0   150.0   quaternion: w, x, y, z:   0.258819   0.000000   0.000000   0.965926

Unit cell

cell-fiber.cell
CrystFEL unit cell file version 1.0
lattice_type = triclinic
centering = I
a = 18.36 A
b = 26.65 A
c = 4.81 A
al = 90.0 deg
be = 90.0 deg
ga = 102.83 deg

Detector

det1500x1500.geom
adu_per_eV = 1.0
; Single panel
0/min_fs = 0
0/max_fs = 1500
0/min_ss = 0
0/max_ss = 1500
0/corner_x = -750.00
0/corner_y = -750.00
0/fs = x
0/ss = y
0/clen = 0.1      ; 10cm
0/res = 9090.9    ; 110 micron pixel size

pattern_sim

command to generate simulated events:

cat quaternion_basis_x90.txt | pattern_sim -g det1500x1500.geom -p cell-fiber.cell --photon-energy=6003 -o result_x90 -n 3 -s 1 --no-noise

Results

beta=90, phi=0, omega=(0,180,30)
Angles around x,y,z:    90.0     0.0     0.0   quaternion: w, x, y, z:   0.707107   0.707107   0.000000   0.000000
Angles around x,y,z:    90.0     0.0    30.0   quaternion: w, x, y, z:   0.683013   0.683013   0.183013   0.183013
Angles around x,y,z:    90.0     0.0    60.0   quaternion: w, x, y, z:   0.612372   0.612372   0.353553   0.353553
Angles around x,y,z:    90.0     0.0    90.0   quaternion: w, x, y, z:   0.500000   0.500000   0.500000   0.500000
Angles around x,y,z:    90.0     0.0   120.0   quaternion: w, x, y, z:   0.353553   0.353553   0.612372   0.612372
Angles around x,y,z:    90.0     0.0   150.0   quaternion: w, x, y, z:   0.183013   0.183013   0.683013   0.683013

 

 

 

beta=90+18=108, phi=3.5, omega=(0,180,30)
Angles around x,y,z:   108.0     3.5     0.0   quaternion: w, x, y, z:   0.587511   0.808640   0.017950  -0.024706
Angles around x,y,z:   108.0     3.5    30.0   quaternion: w, x, y, z:   0.573887   0.776440   0.226630   0.128195
Angles around x,y,z:   108.0     3.5    60.0   quaternion: w, x, y, z:   0.521153   0.691327   0.419865   0.272359
Angles around x,y,z:   108.0     3.5    90.0   quaternion: w, x, y, z:   0.432903   0.559102   0.584487   0.397963
Angles around x,y,z:   108.0     3.5   120.0   quaternion: w, x, y, z:   0.315152   0.388775   0.709278   0.496446
Angles around x,y,z:   108.0     3.5   150.0   quaternion: w, x, y, z:   0.175923   0.191953   0.785732   0.561098

 

Rotation around omega

Quaternions

Table of quaternions was generated using methods in pyimgalgos/src/Quaternion.py

Self-test for Quaternion

self-test uses a chain of conversions:

  • angles -> rotation matrix -> quaternion -> rotation matrix -> angles,

where in and out angles and rotation matrix coincide.

Script cxif5315/make-quaternions.py generates file with a list of quaternions from file with table of angles

List of few quaternions
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:    30.0     0.0     0.0   quaternion: w, x, y, z:   0.965926   0.258819   0.000000   0.000000
Angles around x,y,z:    60.0     0.0     0.0   quaternion: w, x, y, z:   0.866025   0.500000   0.000000   0.000000
Angles around x,y,z:    90.0     0.0     0.0   quaternion: w, x, y, z:   0.707107   0.707107   0.000000   0.000000
Angles around x,y,z:   120.0     0.0     0.0   quaternion: w, x, y, z:   0.500000   0.866025   0.000000   0.000000
Angles around x,y,z:   150.0     0.0     0.0   quaternion: w, x, y, z:   0.258819   0.965926   0.000000   0.000000
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:     0.0    30.0     0.0   quaternion: w, x, y, z:   0.965926   0.000000   0.258819   0.000000
Angles around x,y,z:     0.0    60.0     0.0   quaternion: w, x, y, z:   0.866025   0.000000   0.500000   0.000000
Angles around x,y,z:     0.0    90.0     0.0   quaternion: w, x, y, z:   0.707107   0.000000   0.707107   0.000000
Angles around x,y,z:     0.0   120.0     0.0   quaternion: w, x, y, z:   0.500000   0.000000   0.866025   0.000000
Angles around x,y,z:     0.0   150.0     0.0   quaternion: w, x, y, z:   0.258819   0.000000   0.965926   0.000000
Angles around x,y,z:     0.0     0.0     0.0   quaternion: w, x, y, z:   1.000000   0.000000   0.000000   0.000000
Angles around x,y,z:     0.0     0.0    30.0   quaternion: w, x, y, z:   0.965926   0.000000   0.000000   0.258819
Angles around x,y,z:     0.0     0.0    60.0   quaternion: w, x, y, z:   0.866025   0.000000   0.000000   0.500000
Angles around x,y,z:     0.0     0.0    90.0   quaternion: w, x, y, z:   0.707107   0.000000   0.000000   0.707107
Angles around x,y,z:     0.0     0.0   120.0   quaternion: w, x, y, z:   0.500000   0.000000   0.000000   0.866025
Angles around x,y,z:     0.0     0.0   150.0   quaternion: w, x, y, z:   0.258819   0.000000   0.000000   0.965926

Unit cell

cell-fiber.cell
CrystFEL unit cell file version 1.0
lattice_type = triclinic
centering = I
a = 18.36 A
b = 26.65 A
c = 4.81 A
al = 90.0 deg
be = 90.0 deg
ga = 102.83 deg

Detector

det1500x1500.geom
adu_per_eV = 1.0
; Single panel
0/min_fs = 0
0/max_fs = 1500
0/min_ss = 0
0/max_ss = 1500
0/corner_x = -750.00
0/corner_y = -750.00
0/fs = x
0/ss = y
0/clen = 0.1      ; 10cm
0/res = 9090.9    ; 110 micron pixel size

pattern_sim

command to generate simulated events:

cat quaternion_basis_x90.txt | pattern_sim -g det1500x1500.geom -p cell-fiber.cell --photon-energy=6003 -o result_x90 -n 3 -s 1 --no-noise

Results

beta=90, phi=0, omega=(0,180,30)
Angles around x,y,z:    90.0     0.0     0.0   quaternion: w, x, y, z:   0.707107   0.707107   0.000000   0.000000
Angles around x,y,z:    90.0     0.0    30.0   quaternion: w, x, y, z:   0.683013   0.683013   0.183013   0.183013
Angles around x,y,z:    90.0     0.0    60.0   quaternion: w, x, y, z:   0.612372   0.612372   0.353553   0.353553
Angles around x,y,z:    90.0     0.0    90.0   quaternion: w, x, y, z:   0.500000   0.500000   0.500000   0.500000
Angles around x,y,z:    90.0     0.0   120.0   quaternion: w, x, y, z:   0.353553   0.353553   0.612372   0.612372
Angles around x,y,z:    90.0     0.0   150.0   quaternion: w, x, y, z:   0.183013   0.183013   0.683013   0.683013

 

 

 

beta=90+18=108, phi=3.5, omega=(0,180,30)
Angles around x,y,z:   108.0     3.5     0.0   quaternion: w, x, y, z:   0.587511   0.808640   0.017950  -0.024706
Angles around x,y,z:   108.0     3.5    30.0   quaternion: w, x, y, z:   0.573887   0.776440   0.226630   0.128195
Angles around x,y,z:   108.0     3.5    60.0   quaternion: w, x, y, z:   0.521153   0.691327   0.419865   0.272359
Angles around x,y,z:   108.0     3.5    90.0   quaternion: w, x, y, z:   0.432903   0.559102   0.584487   0.397963
Angles around x,y,z:   108.0     3.5   120.0   quaternion: w, x, y, z:   0.315152   0.388775   0.709278   0.496446
Angles around x,y,z:   108.0     3.5   150.0   quaternion: w, x, y, z:   0.175923   0.191953   0.785732   0.561098

 

Rotation around omega

Angles around x,y,z: 90.0 0 (0,180,1):

Angles around x,y,z: 90.0 -3.5 (0,180,1):

Angles around x,y,z: 90.0-18 -3.5 (0,180,1):

Summary

  • Thomas White did not advice to use pattern_sim due to potential bugs.
  • In stead he suggested to use diffraction.

 

 

 

 

Summary

  • Thomas White did not advice to use pattern_sim due to potential bugs.
  • In stead he suggested to use diffraction.

 

 

 

 

  • No labels