Description of IPLT Adherence to the EM Community Standards
The contents of this page are based on a draft of Standardized Conventions for Data Interchange Among the 3D EM Community (December 2001), prepared by David Belnap and others. The following items describe the implementation of these conventions in IPLT
Version 19. March 2007
1. Image
Due to its encapsulated nature, the exact implementation of an image remains hidden. Nevertheless, each value within an image is addressed with an integer based index. The dimension is always given by the Size resp Extent, and is encapsulated. It is 1D,2D or 3D.
2. Right-handed coordinate system
The coordinate system is right-handed, and the rotations are also right-handed. E.g. after a +90 degree rotation in the xy-plane, the point at (1,0,0) is at (0,1,0).
3. Orthogonal coordinate system
All axis are orthogonal.
4. Storage of image data
IPLT encapsulates the storage details. It allows values to be retrieved via the image interface, based on integer triplets. Internally, the storage is optimized for fast fourier transformations using fftw.
5. Origin
The real-space origin, ie the index with integer values (0,0,0), is user defined for spatial images. For frequency images, the origin is always in the center. As of now, there are no symmetry features implemented in IPLT, therefore nothing can be said about the origin of symmetrical images. The origin coordinate is given in pixels.
6. Orientation
Since there are no symmetry features implemented in IPLT, nothing can be said about the standard object orientation at this time.
7. Symmetry designation
Not implemented
8. Helical symmetry designations
Not implemented
9. Length units
The length unit in IPLT is one Angstrom!
10. Pixel size
The dimensions of pixels can be set via the image interface, in units of meter. For example, to set the pixel sampling to 1nm, one would use
image.SetPixelSampling(10.0)
11. Display of images
The viewer in IPLT has the y-axis flipped, ie y-values go from top to bottom.
12. Fourier transforms
Dictated by internal use of fftw. Array organization is hidden by implementation. Direction of FFT is given implicitely by the current domain.
13. Floating point numbers
C++ double is used internally.
14. Sizes of stored numbers
Internal implementation details. Complex numbers are std::complex<double>.
15. Density is positive
The higher the value, the higher its brightness in the viewer, ie minimal value is black, maximal value is white.
16. Microscope parameters
Subject to separate standardization, lead by EBI.
