voxel_to_pixel


Download program files. program.
Download sample data. input data
Original D3D data. Original data in Dream.3d format
Download sample output *.ang files. output


This program takes 3D orientation maps, typically created in Dream.3D, and creates *.ang files for each layer. The translation of 3D data to 2D data is a necessary step for the processing of triple line data to calculate grain boundary dihedral angle distributions or grain boundary energy distributions. The expected input is a text file, created by Dream.3D, using the "Export Los Alamos FFT File" filter. The output is an orientation map for each layer, in the *.ang format, but without a TSL compatible header.


Example:
As an example, we will create a set of 19 *.ang files from a subset of 3D data from Yttrium-stabilized Zirconia. These data are described in this paper.
The complete data set is available at this link. Begin by downloading the program to your computer. If you would like to start from the original data, download the original data in Dream.3d format. Then, in Dream.3D, create and run a pipeline with two filters: "Read DREAM.3D Data File" followed by "Export Los Alamos FFT File". If you want to skip that, just download the file YSZ_3_2.txt.zip that I created with the pipeline described above. This file, unzipped, must be placed in the program folder, voxel_to_pixel.
The next step is to configure the parameters in input.txt for the run. These parameters are described in the lower part of the input.txt file.
The version of input.txt saved on this site is configured to run the files available at the link above, so do not change anything for this example.
Next, open a terminal window in the voxel_to_pixel folder. From here, you simply compile and run the program, as follows:
(base) gr20MacMin-2:voxel_to_pixel gr20$ make clean
rm -f main.o sub.o symmetry.o
(base) gr20MacMin-2:voxel_to_pixel gr20$ make
gfortran -O3 -c -ffixed-line-length-none main.f
gfortran -O3 -c -ffixed-line-length-none sub.f
gfortran -O3 -c -ffixed-line-length-none symmetry.f
gfortran main.o sub.o symmetry.o -o vox_to_pix
(base) gr20MacMin-2:voxel_to_pixel gr20$ vox_to_pix
=================================================
PROGRAM TAKES 3D ORIENTATION MAPS AND WRITES
THE DATA AS PARALLEL 2D MAPS IN .ANG STYLE

rohrer@cmu.edu
version 03/25/2022
=================================================
reading data ...
working on: YSZ_3_2_001.ang
working on: YSZ_3_2_002.ang
working on: YSZ_3_2_003.ang
working on: YSZ_3_2_004.ang
working on: YSZ_3_2_005.ang
working on: YSZ_3_2_006.ang
working on: YSZ_3_2_007.ang
working on: YSZ_3_2_008.ang
working on: YSZ_3_2_009.ang
working on: YSZ_3_2_010.ang
working on: YSZ_3_2_011.ang
working on: YSZ_3_2_012.ang
working on: YSZ_3_2_013.ang
working on: YSZ_3_2_014.ang
working on: YSZ_3_2_015.ang
working on: YSZ_3_2_016.ang
working on: YSZ_3_2_017.ang
working on: YSZ_3_2_018.ang
working on: YSZ_3_2_019.ang
program complete


The main output from the program is a set of 19 *.ang files. Each file contains one layer of orientation data. They are named YSZ_3_2_0NN.ang, where the "YSZ_3_2" is the base name you supply on line 2 of the input.txt file, and NN are integers from 01 to 19 to name the parallel layers. The output is saved here, if you want to check that you get the same thing.

The files are structured so that each line is one pixel of an orientation map. The top of the first file is illustrated below:


Where the first three columns are the Euler angles that specify the orientation and the last two are the coordinates, in microns.

If you wish to extract the grain boundary line segments from these files, use extract_GB_traces, using this input file. The first layer should look like this:


Return To Main Page