DREAM.3D can store EBSD data from multiple vendors in a data file using the HDF5 file format library. Although the general layout of the HDF5 file is the same between vendors, there are details that are not the same between vendors, because each vendor chooses to save different types of data. The top level datasets that deal with the basic volume information is the same for every file.
Optional value that states what version of the library wrote the file
Root Level Data sets
HDF5 Type
Name/Comments/Default Value
Index
An array of all the slice values. As of DREAM3D Version 5 this is not really used but could handy if the list of slices starts to get large.
EulerTransformationAngle
H5T_NATIVE_FLOAT
Degrees
EulerTransformationAxis
H5T_NATIVE_FLOAT
3x1 Array (Example 0,0,1)
Manufacturer
H5T_STRING
The Manufacturer currently is either TSL or HKL
Max X Points
H5T_NATIVE_INT64
The maximum number of X points in the sample grid
Max Y Points
H5T_NATIVE_INT64
The maximum number of Y points in the sample grid
SampleTransformationAngle
H5T_NATIVE_FLOAT
Degrees
SampleTransformationAxis
H5T_NATIVE_FLOAT
3x1 Array (Example 0,0,1)
Stacking Order
H5T_NATIVE_UINT32
Defines which slice corresponds to the Z=0 in the coordinate system. 0=Low to High. 1 = High to Low. Optional Attribute of type H5T_STRING, with Name "Name" and Value ("Low To High" or "High To Low")
X Resolution
H5T_NATIVE_FLOAT
Resolution between sample points in the X direction
Y Resolution
H5T_NATIVE_FLOAT
Resolution between sample points in the Y direction
Z Resolution
H5T_NATIVE_FLOAT
Resolution between slices in the Z Direction
ZEndIndex
H5T_NATIVE_INT64
Starting Slice index
ZStartIndex
H5T_NATIVE_INT64
Ending Slice index (inclusive)
Index
An array of all the slice values. As of DREAM3D Version 5 this is not really used but could handy if the list of slices starts to get large.
Each Slice is grouped into its own H5G_GROUP with the Name of the group as the index of the slice. Within each slice group there are two (2) more groups with names Data and Header
Contains value for the header entry Lattice Angles in a 1x3 array
LatticeDimensions
H5T_NATIVE_FLOAT
Contains value for the header entry Lattice Dimensions in a 1x3 array
LaueGroup
H5T_NATIVE_INT32
Contains value for the header entry LaueGroup plus an H5T_STRING Attribute which is the string name of the Laue Group, for example "Hexagonal-High 6/mmm"
The stacking order refers to the order in which the z slices are stacked together when they are read from the file. The enumerations are also in the EbsdLibConstants.h header file.
As a further explanation, if the ordering is Low To High, then the slice with the lowest number is positioned at Z=0 in 3D Cartesian space. For example, if your data set is numbered from 23 to 86 with file names of the form Slice_023.ang and you select "Low To High", then the data inside of file Slice_023.ang will be positioned at Z=0 during any method that has to deal with the data. The opposite of this is if the user were to select to have their data High to Low, in which case, the file with name Slice_086.ang will be positioned at Z=0 and the file with name "Slice_023.ang" will be positioned at Z=64.