vol_tools
A set of IDL tools for processing and visualization of 3D tomographic datasets.
The package vol_tools consists of a series of small programs created and maintained by Guilherme Gualda.
These tools are designed to complement the capabilities offered by tomo_display (created by Mark Rivers) and Blob3D (by Richard Ketcham). In combination, these tools allow users without programming knowledge to perform all steps necessary to obtain qualitative and quantitative information using tomographic data.
Existing modules include:
(1)
vol_trim and
vol_cut_cylinder:
for cropping volumes
(2)
vol_histogram:
for generating histograms of intensity
(3)
vol_detect_sample:
for sample detection and volume measurement (useful for porous samples like pumice)
(4)
vol_diff_shift:
for computation of volume differences useful in differential absorption tomography
(5)
vol_animate:
for generating 3D animations using rendered isosurfaces around objects
All packages use as input reconstructed '.volume' files in the NetCDF format specified by Mark Rivers and written by his write_tomo_volume routine, part of tomo_display. Use tiff_to_volume to convert a stack of slices into a .volume file.
Contact Guil Gualda by e-mail to request a zip file containing all modules of vol_tools.
In order to run vol_tools, you will need IDL Virtual Machine (IDL VM) TM, available for free from here. These tools run on any platform that IDL supports, including Microsoft Windows, Linux, and Mac OS X.
Please cite vol_tools as:
"Rivers ML & Gualda GAR (2009) 'tomo_display' and 'vol_tools': IDL VM Packages for Tomography Data Reconstruction,
Processing, and Visualization. Eos Transactions AGU 90(22), Joint
Assembly Supplement, Abstract V13A-06"
Link to abstract
This program trims a volume and saves it as a new volume with '-trim' appended to the original name. It also saves a plain-text '.log' file with the same name that includes the specified parameters used for trimming.
Open volume
Used to open the volume to be used
Find X, Y
Averages all XY slices of the volume (i.e. the images
stacked in the vertical, or Z, direction) and displays the resulting image using
Mark Rivers's image_display tool. The user can use the image to choose the
values for trimming.
Find Y, Z
Similar to Find X, Y, but stacks YZ (along one of the
horizontal - called X - direction).
Find X, Z
Similar to Find X, Y, but stacks XZ (along the other
horizontal - called Y - direction).
Trim volume!
After input of the low and high bounds for trimming in the
three orthogonal directions in the appropriate boxes, this button is used to
generate and save the trimmed volume and the log file.
This program is similar to vol_trim, but cuts a cylinder rather than a rectangular object as in vol_trim. The resulting volume is saved with '-cylinder' appended to the original name. A plain-text '.log' file is also saved.
Open volume
Used to open the volume to be used
Find X, Y
Averages all XY slices of the volume (i.e. the images
stacked in the vertical, or Z, direction) and displays the resulting image using
Mark Rivers's image_display tool. The user can use the image to choose the
values for trimming.
Find Y, Z
Similar to Find X, Y, but stacks YZ (along one of the
horizontal - called X - direction).
Find X, Z
Similar to Find X, Y, but stacks XZ (along the other
horizontal - called Y - direction).
Direction
Specifies the direction which will represent the length of
the cylinder.
Cut cylinder!
After input of the low and high bounds for trimming in the
three orthogonal directions in the appropriate boxes, this button is used to
generate and save the trimmed volume and the log file.
Forthcoming...
Forthcoming...
Forthcoming...
This program draws isosurfaces around particles in 3D
volumes. The user can:
(a) create up to 4 objects (each
object can be comprised of several independent blobs) to be shown on an obj_view
window of IDL, in combination or separately;
(b)
generate a series of tiffs of a 360º rotation around a vertical axis and then
360º rotation around a horizontal axis;
(c) generate a
movie from the tiff files.
Open volume
Used to open the volume to be used
Create object
After reading the volume, the user specifies:
1) NAME: any name the user may use for the object
2) MIN and MAX: lower and upper bound values for
thresholding; all values between min and max will be included in the thresholded
volume, and the surfaces will be drawn around them
3)
DECIMATE: a value between 0 and 100 that specifies the percentage of points to
remove from the surface in order to make it less complex; this is a very
computer intensive routine, so I recommend using 0, which effectively turns it
off and does not decimate
4) SMOOTH: a value between 0
and 100 that specifies the smoothing factor to be applied to the resulting
surfaces; with no smoothing, the surfaces become very jagged; values around 10
work well for me
5) COLOR: a choice of color from the
drop down menu) that is used to color the surfaces drawn; a new color can only
be set by recreating the object
After choosing the
values, click on 'Create object' to create and display the object. Up to 4
objects can be created at a time.
Generate View
Used to show the isosurfaces in isolation or in
combination. Objects whose 'Include' check box is checked will be included in
the resulting view
Generate Tiffs
Used to generate a series of 720 tiffs at 1º angular
displacements from each other, completing two full revolutions, one about a
vertical and one about a horizontal axis. Starting and ending point are the
same, so the animation can be played as an infinite loop
Generate Movie
Used to generate an MPEG movie from a series of tiffs; use
the tiffs from 'Generate Tiffs' to generate portable movies that can be watched
on media players and included in presentations or websites
Using vol_animate with Blob3D
results
To use vol_animate with data processed
using Blob3D, select 'Export Segmented/Separated Data' in Blob3D and generate a
.volume file using tiff_to_volume. Inspect the exported tiffs (using an image
processing tool) or the volume created (using tomo_display) and find the values
assigned for each phase. There may be a range of values for each phase. Choose
min and max such that all values for a given phase are included.
Examples
A few examples of MPEG movies created using vol_animate
include:
Gualda&Rivers-JVGR-2006-Movie1.mpg
Gualda-JPetrol-2006-Movie1.mpg
Gualda&Ghiorso-CMP-2007-Video1.mpg
Gualda&Anderson-CMP-2007-Video2.mpg
ELDG_C1-Combined.mpg
This program takes a stack of tiffs and converts them into a .volume file readable by 'tomo_display' and all procedures in 'vol_tools' (including 'vol_animate'). It was particularly created to convert Blob3D output (from 'Export Segmented/Separated Data') into a '.volume' format, so it expects the tiff names to end with '_' followed by a sequential number.