A quick how-to on the basics of using NDIToolbox
The first time you start NDIToolbox, it will create a local folder under your $HOME
folder (e.g.
c:\users\chris
in Windows 7 or /home/chris
under Linux) to store data files, plugins,
POD models, and thumbnails. As of this writing the local folder is by default called nditoolbox
(or
a7117
in earlier builds, named
after the internal TRI/Austin project number), but you can choose any location you like. So after the first run
of NDIToolbox you’ll have a local data folder that looks like this:
A configuration file will also be stored under your $HOME
folder as nditoolbox.cfg
.
NDIToolbox is designed around the idea of managing data. You have multiple data files organized in a particular
way, and you’d like to use NDIToolbox to plot, preview, and manipulate the data. How you organize your
data is up to you but one suggestion would be to organize by structure and inspection. For example, you can
create a subfolder Pennybacker Bridge
under your data folder to house all the inspections of the
Pennybacker Bridge; under this subfolder place
additional subfolders Bridge Deck
and Steel Cables
to house inspections of the
bridge’s substructures, subfolders under these for particular inspections of the substructure, and so on.
c:\users\chris\nditoolbox\data\Pennybacker Bridge
c:\users\chris\nditoolbox\data\Pennybacker Bridge\Bridge Deck
c:\users\chris\nditoolbox\data\Pennybacker Bridge\Bridge Deck\GPR April 21 2012
c:\users\chris\nditoolbox\data\Pennybacker Bridge\Steel Cables
c:\users\chris\nditoolbox\data\Pennybacker Bridge\Steel Cables\UT Nov 3 2010
If you don’t want or need this level of organization, you can of course just use c:\users\chris\nditoolbox\data
as-is, it’s up to you.
When the user interface is shown you’ll see two panels. The NDE Data panel at the top lists all the files currently in the local data folder.
To refresh the list of data files, press the Refresh Data button in the toolbar; you can also add and remove data from this folder by pressing the + and – buttons in the toolbar respectively. Adding a data file prompts you to browse to an existing HDF5 data file, which will be copied to the local data folder. Removing a data file removes the file from the local data folder; the original data file isn’t affected.
The Plot panel at the bottom displays thumbnail images of your data as an easy way to browse large sets of data. When you select a data file in the NDE Data panel, NDIToolbox will show the thumbnail plot of this file. The first time you select a file there will be a slight delay in displaying the thumbnail as NDIToolbox is generating it in the background, but after this initial generation it will continue to use this same thumbnail until you Refresh Data or the file’s path changes. If you’d rather not use thumbnails, disable them by toggling the Enable/Disable Thumbnails button.
NDIToolbox uses the Hierarchical Data Format to store data. To import data in other formats (DICOM, DICONDE, delimited text, bitmap images, etc.), select the appropriate menu item from the Import submenu under the File menu. The file will be read and converted to HDF5 before it is copied to the local data folder. Depending on the type of file being imported, you may be asked to provide additional details - for example, importing an ASCII delimited-text file such as a CSV will bring up a dialog that asks you what character is used as the delimiter, whether lines at the top or bottom should be skipped, whether you'd like to import all or a select number of columns, and so on.
You can also export HDF5 files in the local data folder to a text (CSV) file by selecting the file in the NDE Data panel and selecting the Export Data button (looks like a disk) in the toolbar.
To preview a data file, select it from the NDE Data panel and press the Data button in the toolbar (looks like a table). After loading the data you’ll be presented with a spreadsheet showing the contents.
NDIToolbox also supports previews and plots of three-dimensional data. Throughout this document and in NDIToolbox we refer to X, Y, and Z axes. The following figure illustrates the coordinate system used: Y is the row number, X is the column number, and Z is the third dimension into your data.
For three-dimensional data, you’ll be asked how to take a two-dimensional “slice” for preview. This slice is a plane through the 3D data that’s defined by its orientation and an index. The orientation of the slice specifies which plane your slice will be parallel to: X-Y, X-Z, or Y-Z. The index of the slice specifies how far into the other dimension your slice will be. For example, specifying an orientation of Parallel To X-Y means that your slice will be somewhere in the Z axis, while Parallel to Y-Z will mean your slice will be taken somewhere in the X axis.
If you're familiar with NumPy, here's how the slicing works. For a three-dimensional data set A, a point P at position (x0, y0, z0) is given by P = A[y0, x0, z0] (notice that the Y index is first - NumPy indexes data beginning with row and then column). A planar slice in A is one of the following.
To plot a data file, select it from the NDE Data panel and press either the X-Y Plot button (looks like a line chart) or the Image Plot button, depending on whether you want to plot a simple line chart or an image plot. After reading the data NDIToolbox will open a new window with the plot. You can also add/edit plot and axis titles and toggle the grid; image plots additionally allow choosing different color scales and applying labels to the colorbar.
To pan around the plot press the Pan button in the toolbar at the bottom of the plot window, and drag the plot with the left mouse button. You can also zoom in/out in horizontal and vertical scale by dragging with the right mouse button. To zoom in to a particular region, press the Zoom button and select a region in the plot. To reset the plot to its original bounds, press the Home button.
If you’d like to export the plot as a bitmap or PDF, press the Save button and choose a destination filename. You can also save the data as an HDF5 file by choosing Save Current Data from the File menu.
Plots have various operations such as rectification, window functions, etc., depending on what type of plot is shown. NDIToolbox also supports plugins that can alter the data in a plot. To get back to the original dataset after running any of these operations, choose Revert To Original from the plot window’s Operations menu. This will discard all the changes you’ve made to the data, and replot the original dataset. You can also save a modified dataset by selecting Save Current Data from the plot window’s File menu.
As is the case with previewing data, when you select a three-dimensional data file to plot in an image plot you’ll be asked to specify the plane to plot. NDIToolbox also has a “MegaPlot” that plots three-dimensional data directly using a common presentation style for NDE data shown below.
In this type of plot, a C-scan plot in the lower-right indicates your position in the Z Axis in the 3D data. When you click on a position (x0, y0) inside the C-scan, the plot will update the other three panels:
Frequently in ultrasonics NDE you’d like to define a subset of the 3D data to generate a C-scan rather than
simply taking a slice in Z. From the Operations menu, choose the Define C Scan
menu item. You’ll be asked
to specify the range over which you’ll be generating the C-scan, e.g. if you specify 222-444 the C-scan
data will be generated using the subset of data between Z=222 and Z=444. Next, you choose the function used to
generate the C-scan. Several options are available including min
, max
, and
average
. Choose the function and
click Ok, and the C-scan data will now be the results of applying this function against the
specified subset of
data. For example, the following screenshot shows the results of applying the min
function against
Z=222:444 in
the ultrasonic immersion tank data shown above in the MegaPlot screenshot.
Notice that when you generate a C-scan plot in this fashion that the B-scan plots are now taking data from this C-scan and not the original data. The A-scan continues to take data from the original data set.
One thing to note about MegaPlots is that although your data is presented in one or two dimensions, the underlying 3D data is unchanged. Plugins that don't expect a 3D data set can behave strangely or run slowly. If you need to use a plugin and you're not sure if it supports 3D data, consider plotting a slice of the 3D data instead of using the MegaPlot and running your plugin against this plot.
Although the MegaPlot presents one definition of a B-scan, another common approach to data presentation used in NDE (particularly in ultrasonics) is a 2D slice. To produce this type of B-scan plot from a 3D dataset, choose the Image Plot function in NDIToolbox and as usual with 3D data, specify a plane. Going back to the immersion tank ultrasonic data shown in the MegaPlot figure, the following screenshot shows two B-scans taken from this data by slicing in the X and Y axes.
Similarly, if you'd like to generate an A-scan of a 3D data set, choose the X-Y Plot function. You'll be asked to specify a slice similar to the slicing done for image plots, but in this case you specify two indices. A typical A-scan representation in NDIToolbox is performed by specifying a point in X and Y and plotting the Z values at that point, as shown in the following A-scan plot taken from the immersion tank scan data at position P(267, 152).
The best way to learn your way around NDIToolbox is to experiment. Try importing your data and test out an organization scheme. Plot, preview, slice. When you're familiar with the basics, the next step will be to write your own plugins...