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.