Open Raw data in VisIt

BOV header

A raw dataset means its content, from beginning to end, is data value, and there is no information about the dataset, not even the dimension or data type of the dataset, so VisIt will not know how to open this dataset at all. To help VisIt open your raw dataset, you need to create a seperate file, called BOV header, to describe the dataset and how should VisIt interpret it.

Here is an example BOV header file, named bullet.bov (# is comment)

DATA_FILE: bullet_256_267_267_uint16_le.raw
DATA_SIZE: 267 267 256
DATA_FORMAT: SHORT
VARIABLE: bullet
DATA_ENDIAN: LITTLE
CENTERING: zonal
BRICK_ORIGIN: 0. 0. 0.
BRICK_SIZE: 267. 267. 256.
DIVIDE_BRICK: false
#DATA_BRICKLETS: 267 267 256
DATA_COMPONENTS: 1

This file tells VisIt, that we want to open the raw dataset named “bullet_256_267_267_uint16_le.raw”, the dimension of this dataset is : 267 by 267 by 256, and each data value is a 16bit integer, stored in little endian byte order. We name the data varialble “bullet”, and it is a raster variable (data component is 1), not a vector type (data component will be 2 or 3). And here DIVIDE_BRICK is set to “false”, means we don’t want VisIt to divide the data into smaller bricks, and parallel computing will not work. This is a disadvantage of using BOV header, it doesn’t support automatic parallel data loading and computing, if you use parallel engine, it will produce blank image.

Other data format, such HDF5, does support automatic parallelism, so won’t have this problem.

If you want parallelism with BOV data loader, you MUST set DIVIDE_BRICK to be “true” and give values to DATA_BRICKLETS. The values chosen for DATA_BRICKLETS must be factors of the numbers used for DATA_SIZE. For example:

DIVIDE_BRICK: true
DATA_BRICKLETS: 267 267 128

Then you can run visit with 4 parallel compute engines, all of them will load the data in parallel:

visit -np 4

Note: In this case, if you use serial engine, it will still work by serially load all data blocks. If you use more than 4 parallel engines, only 4 will be used to load data.