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

Compare with Current View Page History

« Previous Version 10 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

Rotation around beta and omega

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

Rotation around beta, phi and omega

beta=90-18=72, phi=-3.5, omega=(0,180,30)
Angles around x,y,z:    72.0    -3.5     0.0   quaternion: w,x,y,z:   0.808640   0.587511  -0.024706   0.017950
Angles around x,y,z:    72.0    -3.5     1.0   quaternion: w,x,y,z:   0.808452   0.587704  -0.019578   0.025006
Angles around x,y,z:    72.0    -3.5     2.0   quaternion: w,x,y,z:   0.808203   0.587853  -0.014449   0.032060
Angles around x,y,z:    72.0    -3.5     3.0   quaternion: w,x,y,z:   0.807893   0.587957  -0.009318   0.039112
Angles around x,y,z:    72.0    -3.5     4.0   quaternion: w,x,y,z:   0.807521   0.588015  -0.004187   0.046160
Angles around x,y,z:    72.0    -3.5     5.0   quaternion: w,x,y,z:   0.807087   0.588030   0.000944   0.053205

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 = 9098   ; 109.92 micron pixel size

pattern_sim

command to generate simulated events:

cat quaternion_basis_x90.txt | pattern_sim -g det1500x1500.geom -p cell-fiber.cell -o result_x90 --photon-energy=6003 --spectrum=tophat --beam-bandwidth=1e-6 --min-size=30 --max-size=3 -n 3 -s 1 --no-noise

# output file accumulates events... (bug?)
# OR per event with complete control on names etc.

echo "0.587174 0.803196 0.095372 0.031718" | pattern_sim -g det1500x1500.geom -p cell-fiber.cell -o results_x90 --photon-energy=6003 --spectrum=tophat --beam-bandwidth=1e-6 --min-size=30 --max-size=30 -n 1 -s 1 --no-noise --no-fringes

Results

Rotation around omega

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

image generated with defailt sample size

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.
  • pattern_sim has a few problems in different versions
    • source /reg/g/cfel/crystfel/crystfel-0.6.2/setup-sh  # has problems with peak intensity ~25*e6 ADU, not sensitive to adu_per_eV, etc

    • --spectrum=tophat --beam-bandwidth=1e-6 - removes photon energy spread
    • --min-size=30 --max-size=30             - changes a size of sample and peak size and intensity
    • -n NNN - this option generates accumulated image
    •  ...

 

  • No labels