File Information
ASCII Block Model File (Sub blocked)
File Format
Block Centroid Block Dimensions Block Variables cx_1 cy_1 cz_1 dx_1 dy_1 dz_1 var_1 var_2 Var_3... Var_N cx_2 cy_2 cz_2 dx_2 dy_2 dz-2 var_1 var_2 Var_3... Var_N cx_3 cy_3 cz_3 dx_3 dy_3 dz_3 var_1 var_2 Var_3... Var_N .. .. .. .. .. .. cx_N cy_N cz_N dx_N dy_N dz_N var_1 var_2 Var_3... Var_N
where
cx_N, cy_N, cz_N | Centroid of block N with respect to parent scheme. |
var_N | Block variable. |
dx_n, dy_N, dz_N | Dimensions of block N (that is, length of sides). |
var_N | Block variable. The centroid of blocks to be imported by Vulcan must be converted from absolute "real_world" coordinates to relative "parent scheme" coordinates. |
No conversion is required when the Vulcan block model has an origin of 0,0,0 and a start-offset corresponding to the bottom left hand corner of an imported, un-rotated block model. The reason for this is that since all coordinates are relative to the origin, relative and absolute coordinates, in this case, are the same.
To convert a centroid between coordinate systems, the following calculation may be used:
abs_x_centroid = (real_x_centroid-min_x_centroid) +(x_size/2.0) abs_y_centroid = (real_y_centroid-min_y_centroid) +(y_size/2.0) abs_z_centroid = (real_z_centroid-min_z_centroid) +(z_size/2.0)where
x_size, y_size, z_size | Size of regular blocks in x, y, z. |
min_x_centroid, min_y_centroid, min_z_centroid | Minimum centroid from block model file. |
real_x_centroid, real_y_centroid, real_z_centroid | Block centroid from block model file in real-world coordinates. |
abs_x_centroid, abs_y_centroid, abs_z_centroid | New block centroid in relative parent scheme coordinates. |
Thus, if the first few lines of an ASCII block model file initially looked like this:
Block Centroid Block Dimensions Block Variable 21806.25 11205.0 2105.0 7.5 10.0 10.0 0.0 00.0 30.0 21806.25 11215.0 2105.0 7.5 10.0 10.0 0.0 00.0 30.0 21813.75 11205.0 2105.0 7.5 10.0 10.0 0.0 00.0 30.0and
min_x_centroid = 21738.75 min_y_centroid = 10655.0 min_z_centroid = 2105.00and
xsize = 7.50 ysize = 10.0 zsize = 10.0it would appear like this after the conversion:
Block Centroid Block Dimensions Block Variable 71.25 555.0 5.0 7.5 10.0 10.0 0.0 00.0 30.0 71.25 565.0 5.0 7.5 10.0 10.0 0.0 00.0 30.0 78.75 555.0 5.0 7.5 10.0 10.0 0.0 00.0 30.0
The headers and field spacing are only included for clarity.
Currently, you must pre-process your ASCII block model file to suit the relative "parent scheme" format. This can be achieved using a simple "gawk" script (refer to the GAWK manual in the System Administration > Effective AWK Programming section).
Example
(Subblocked ASCII Block Model in Parent Schema Relative Offset Format)
75.0000 298.0000 25.0000 30.0000 4.0000 10.0000 2.930000 -99.000000 50.0000 295.0000 27.5000 20.0000 2.0000 5.0000 2.930000 -99.000000 50.0000 298.0000 25.0000 20.0000 4.0000 10.0000 2.930000 -99.000000 - - - - - - - - - - - - - - - - - - - - - - - - 45.0000 451.0000 635.0000 10.0000 2.0000 10.0000 2.930000 -99.000000
To import Surpac block models, make sure that the Surpac ASCII file (.str
) has no spaces in its name, for example, change pit model.str
to pitmod.str
. Also remove any header information from the .str
file, any commas and the 1,1 (string name) from the first column. Sub block size may be removed if they are all the same size. Also, Surpac exports coordinates in Y/X/Z format and this needs to be changed to X/Y/Z before the import. The number of decimal places in Surpac is often 12 and may be reduced prior to import. Columns in Surpac do not need to be a certain width, number or decimal places other than those restrictions placed by float or double integer restrictions.
Corresponding Block Definition File
* MAPTEK: Specifications 4-Nov-1998 15:53:45 BEGIN$DEF HEADER n_variables=2.000 n_schemes=2.000 x_origin=77500.000 y_origin=3800.000 z_origin=400.000 plunge=0.000 dip=0.000 bearing=62.000 reblock END$DEF HEADER BEGIN$DEF VARIABLE_1 type='float' name='sg' default='2.93' description='density' END$DEF VARIABLE_1 BEGIN$DEF VARIABLE_2 type='float' name='au' default='-99.0' description='gold grade' END$DEF VARIABLE_2 BEGIN$DEF SCHEMA_1 description='parent' scheme_min_x=0.000 scheme_min_y=0.000 scheme_min_z=0.000 scheme_max_x=1410.000 scheme_max_y=750.000 scheme_max_z=900.000 block_min_x=30.000 block_min_y=10.000 block_min_z=10.000 block_max_x=30.000 block_max_y=10.000 block_max_z=10.000 END$DEF SCHEMA_1 BEGIN$DEF SCHEMA_2 description='' scheme_min_x=0.000 scheme_min_y=0.000 scheme_min_z=0.000 scheme_max_x=1410.000 scheme_max_y=750.000 scheme_max_z=900.000 block_min_x=10.000 block_min_y=2.000 block_min_z=5.000 block_max_x=30.000 block_max_y=10.000 block_max_z=10.000 END$DEF SCHEMA_2 BEGIN$DEF BOUNDARIES n_boundaries=0.000 n_exceptions=0.000 n_limits=0.000 END$DEF BOUNDARIES END$FILE
The offsets in the
.bdf
file must line up with the sides of the blocks not the centres. For example, if your first xcentre is 505 and the blocks are 10 metres in X then the offset in the
.bdf
file should be 500. The same applies for Y and Z.