Transformations in the context of projections, reconstructions, and in general

Transforming an EMData object

An EMData object may be transformed using the following syntax

   1 e = EMData("mydata.hdf")
   2 t = Transform3D(EULER_EMAN,10,23,0) # three angles in the EMAN convention are az=10,alt=23,phi=0. 
   3 # The convention may also be EULER_SPIDER, EULER_IMAGIC, EULER_MRC, EULER_SPIN, EULER_XYZ
   4 t.set_pretrans(1,1,1)
   5 t.set_postrans(2,2,2)
   6 e.rotate_translate(t)

This next section will look better once we get mathml working

A pixel given at coordinate vector v = [x,y,z]^T will be transformed using the following"

vhat = T_post R T_pre v

Where the rotation matrix R is as defined in Baldwin and Penczek 2007.

Transformations and projections

Say the data model is a 3D map denoted M and a projection is to be generated in a particular direction. The model may also be pre and/or post translated as part of the projection process. The translation information along with the direction of the projection is to be stored in a Transform3D object T, and the projection is to be generated according to or equivalently to the following

p(x,y) = int T M dz

That is, the projection is generated by first transforming the 3D map M by the Transform3D T and proceeded by taking line integrals along z.

Transformations and recontructors