bloxer_manu.pdf

54
BLOXER Interactive visualization and editing software for 3-D block models User's guide to version 1.6c Markku Pirttijärvi 2012 University of Oulu Department of Physics

Upload: dian-rizqa

Post on 14-Jul-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Bloxer_manu.pdf

BLOXER

Interactive visualization and editing software for 3-D block models

User's guide to version 1.6c

Markku Pirttijärvi

2012

University of Oulu

Department of Physics

Page 2: Bloxer_manu.pdf

2

1. Introduction

BLOXER is a computer program made for interactive visualization, construction, and

maintenance of three-dimensional (3-D) block models, also known as voxel models. Block

models are used in the GRABLOX (Pirttijärvi, 2010) and (still unpublished) MAGBLOX

programs build for the geophysical modeling and interpretation of gravity and static magnetic

field data. The 3-D block model consists of a large super-block divided into smaller brick-like

elements or minor-blocks. Each minor-block is assigned one or more characteristic parameter

value(s). The model is aligned with a rectangular (local or geographical) xyz coordinate

system. The volume of the model describes the spatial distribution of a petrophysical

parameter, such as density, magnetic susceptibility or electrical conductivity. Figure 1 shows

an example of a regular block model, where all the minor-blocks have equal size and shape.

Note that the block model must be fully filled - cells cannot overlap or have empty space

between them.

Figure 1. Block model of size dX.dY

.dZ divided into nx

.ny

.nz minor-blocks of size dx

.dy

.dz.

The model is aligned with the rectangular (geographical) coordinate system.

In addition to its own model file format, BLOXER can import data from column formatted

text and binary files. It uses 3-D interpolation, extrapolation and direct assignment of the data

to fill the minor-blocks with parameter values. Thus, BLOXER can be used to visualize

various kinds of 3-D data. When importing data the existing values can be preserved and new

data can be immersed into the model. Therefore, BLOXER can be used to update existing 3-D

models with new data.

Page 3: Bloxer_manu.pdf

3

Horizontal layers and vertical sections can be visualized as 2-D and 3-D graphs and isometric

3-D views can be made for one or two isosurface values. Interactive editing of simple

geometric shapes and point data immersion can be used to edit the values of model

parameters, weights (fix/free status), and discontinuity information. BLOXER can handle

irregular block models, where the size and shape of the blocks varies provided that the model

is always full. This allows modeling the positions of gently undulating horizontal layers and

near-vertical contacts with greater accuracy without the need for increasing the discretization

and the total amount of minor-blocks. BLOXER can utilize topography and well (drill-hole)

data to resize the vertical position of block boundaries automatically. Despite all these

features, BLOXER's visualization capabilities are quite limited. Therefore, data volume,

layers, and sections can be exported into text files to be plotted with third-party visualization

programs.

Page 4: Bloxer_manu.pdf

4

2. Table of contents

1. Introduction ....................................................................................................................... 2

2. Table of contents ............................................................................................................... 4 3. Getting started ................................................................................................................... 5

3.1 Installing ...................................................................................................................... 5 3.2 Starting up ................................................................................................................... 5

4. Menus ................................................................................................................................ 7

4.1 File menu ..................................................................................................................... 7 4.2 View menu ................................................................................................................... 8 4.3 Edit menu ................................................................................................................... 10

4.3.1 Block reduction .................................................................................................. 12

4.4 Math menu ................................................................................................................. 14 4.5 Cross menu ................................................................................................................ 16 4.6 Exit menu ................................................................................................................... 17

5. GUI controls .................................................................................................................... 18 5.1 Basic model parameters ............................................................................................. 18 5.2 Parameter editing ....................................................................................................... 19 5.3 Editing fix/free status ................................................................................................ 21

5.4 Editing hidden blocks ................................................................................................ 22 5.5 Resizing blocks .......................................................................................................... 22

5.6 Extents ....................................................................................................................... 24 5.7 Gradients and backup/revert ...................................................................................... 26 5.8 Right control panel .................................................................................................... 28

6. Input file formats ............................................................................................................. 31

6.1 Input model file ......................................................................................................... 31 6.2 Block file format ........................................................................................................ 33 6.3 Import file formats ..................................................................................................... 35

6.4 Importing data ........................................................................................................... 37 6.5 Export file formats ..................................................................................................... 39

6.6 Topography data ........................................................................................................ 40

6.7 Atlas BNA file format ............................................................................................... 45 6.8 Graph options ............................................................................................................ 46

7. Additional information .................................................................................................... 47 8. References ....................................................................................................................... 48 9. Terms of use and disclaimer ............................................................................................ 48

10. Contact information ....................................................................................................... 48 Appendix A: 3-D view with layer view .............................................................................. 49

Appendix B: Layer view...................................................................................................... 50 Appendix C: Section view ................................................................................................... 51

Appendix D: Reduced model .............................................................................................. 52 Appendix E: Two-layer model ............................................................................................ 53 Appendix F: 3-D view & layer ............................................................................................ 54

Keywords: 3-D models; Visualization; Modelling; Interpretation.

Page 5: Bloxer_manu.pdf

5

3. Getting started

3.1 Installing

BLOXER can be run on a PC with 32 and 64 bit version of Microsoft Windows XP/Vista/7

operating system and a graphics display capable for at least 1280x1024 resolution. Memory

requirements and processor speed are critical only when handling very large models, since the

program uses dynamic memory allocation and does not perform large computational tasks.

The program has a simple graphical user interface (GUI) that can be used to edit the model

parameters, to handle file input and output, and to visualize the characteristic parameters

interactively. The user interface is based on the DISLIN graphics library. Since the DISLIN

graphics library is independent form the operating system the program can be compiled and

run on other operating systems (Solaris, Linux) without any major modifications.

The program requires either BLOXER.EXE and DISDLL.DLL files (the 32 bit executable

and Dislin link library) or BLOXER64.EXE (the standalone 64 bit executable). The

distribution file (BLOXER.ZIP) also contains a short description file (_README.TXT), this

user's guide (BLOXER_MANU.PDF), some example model (*.INP and *.BLX) and map

files (*.BNA).

To install the program simply "unzip" the distribution files into a new folder. To be able to

start the program from a shortcut that locates in a different directory, the DISDLL.DLL file

should be copied or moved into the system folder (e.g. C:\Windows). Alternatively one can

modify the PATH environment variable. When running the program over Windows network

one should map the network drive (e.g., Explorer's Tools/Map network drive menu item) and

assign it with a logical drive letter.

3.2 Starting up

On startup the BLOXER program displays the standard file selection dialog and the user

should locate and open the input model file (*.INP). If the user cancels the file selection

operation, default file BLOXER.INP will be used. If the file does not exist, default parameters

are used and the file will be created automatically. The *.INP file contains the descriptive

Page 6: Bloxer_manu.pdf

6

parameters of the block model, such as the position, size and discretization of the super-block,

the number of characteristic parameters, the scale type (linear/logarithmic), and minimum and

maximum values used in the color scale. The actual block parameters (position, sizes and the

characteristic parameters) are read from (and stored into) a separate block file (*.BLX), the

prefix name of which is the same as that of the INP file.

Important: The *.INP file contains the computational parameters of the actual modelling and

inversion program (e.g. GRABLOX) on the few rows after the first line. BLOXER, however,

works with the model alone and does not (and needs not to) use the computational parameters.

Nonetheless, these lines are read from the (previously opened) model file, kept in the memory

during the processing of the model, and stored back into the (new) model file when it is

saved. The user should take care that the starting model file corresponds to the correct

modelling program. Otherwise, the modelling program cannot read the model file.

Thus, initial models should be created with the modelling program (so that the header will be

correct) and only then edited with BLOXER.

Before the user interface (see Appendices) is built up, the program reads graph parameters

from the BLOXER.DIS file. The *.DIS file defines, for example, various axis title texts and

their heights, and the relative size and position of the graphs. If the file does not exist default

parameters are used and the file will be created automatically.

The BLOXER program runs in two windows: the console window (command shell) and the

graphical user interface (GUI) window. The console window is used to provide input/output

(I/O) functionality in some specific tasks that have not (yet) been implemented in the GUI.

These tasks include, for example, the display of statistical information and histograms and

various queries for additional parameters the program makes.

The GUI consists of a graph area at the right side of the application window, two control

panels on the left side of the window, and five pull-down menus at the top of the GUI

window.

Page 7: Bloxer_manu.pdf

7

4. Menus

4.1 File menu

Open model open an existing model and parameter file.

Save model save the model and parameters to disk.

Save red. model save the reduced model and parameters to disk.

Import data read in characteristic parameters from other file formats.

Import topo read in topography data and adjust block sizes accordingly.

Export data save parameter data into a column-formatted file.

Read disp. params read in new graph parameters from a DIS file.

Read overlay map read map lines from an Atlas BNA file.

Save graph as PS save the graph in Adobe's Postscript format.

Save graph as EPS save the graph in Adobe's Encapsulated Postscript format.

Save graph as PDF save the graph in Adobe's Acrobat PDF format.

Save graph as WMF save the graph in Windows metafile format.

Save Graph as GIF save the graph in GIF (graphics interchange format) format.

These menu items bring up the standard file selection dialog that should be used to provide

the file name for open and save operations. The menu items themselves are quite self-

explaining. Read chapter 6 for more information about input file formats and import/export

operations.

BLOXER does not support direct printing to a printer. The graphs are saved into files in

formats that can be printed using a suitable third party programs (e.g., Ghostview, Paint Shop

Pro, Adobe Acrobat Reader, MS Word, etc.). All graphs are saved in landscape or portrait A4

size as they appear on the screen. The orientation (portrait vs. landscape) depends the aspect

ratio of the x and y axes. The GIF output is the only bitmap image format (size 29702100

pixels). The EPS file does not include preview bitmap.

Page 8: Bloxer_manu.pdf

8

4.2 View menu

Index/Dimension swap axis labels between index numbers and coordinates.

Labels show or hide numerical labels on the layer and section graphs.

Grid show or hide the grid lines or mid-points of the minor-blocks.

Color scale changes the color scale in layer and section graphs.

Show/Hide map show or hide the external overlay map.

Show roughness lines show or hide the special discontinuity information.

Swap 3-D model modify the appearance of the 3-D model view.

Image/Contour swap between image and contour map representations.

Pan North move the zoom area northwards.

Pan South move the zoom area southwards.

Pan East move the zoom area eastwards.

Pan West move the zoom area westwards.

Pan Up move the zoom area upwards.

Pan Down move the zoom area downwards.

The Index/Dimension option does not only change the axis labels, but it also affects the

Layers, X-sexn and Y-sexn text fields as well as the extent- and extent+ text fields. If index

values are used, the position of layers and sections are defined using their index numbers

(row and column index numbers starting from the top-south-west corner). If dimension

values are used one can use the coordinates or distances of the desired layer or section

directly. See the two important note below, however.

The Labels item is used to hide the labels from layer and section views, or to show the

value of the current parameter, the fix/free/hidden status of the block, the depth to the top

of the block (layer view), x- or y-coordinate of the block center (X- and Y-section views),

or the index number of the minor-block. Note that the index number refers also to the row

on which the block resides in a BLX file.

The Grid item is used to hide and show the grid lines drawn between the block elements or

to show only horizontal lines between layers or points at the center of the elements.

The Color scale item changes the color scale of the graphs between: rainbow and inverse

rainbow scale, normal and inverted grayscale, and a special temperature (red-white) scale.

Page 9: Bloxer_manu.pdf

9

The Show/Hide map option affects the layer view and the 3-D model view when an

overlaying BNA map containing geographical map information (borderlines, rivers, lakes

etc) has been read in using the Read overlay map item in File menu.

When using the zooming option, the outline of the zoom box is shown inside the 3-D view.

The Swap 3-D model option changes the axes of the 3-D view so that it displays only the

contents of the zoom box and not the whole super-block. It also changes the position of a

horizontal layer from the top of the layer (default) to its bottom.

The Image/Contour option swaps the display between image map and contour map

representation. Although contour maps are generally much smoother than image maps,

important features may be lost and unexpected artifacts may appear in contour maps.

Moreover, reduced models and models with increasing block height loose accuracy when

plotted as contour maps.

Unlike the Panning push button, which allows free movement of the zoom area with the

mouse, the Pan items in the View menu shift the zoom block by the size of the zoom area.

That is to say, if panning is made northwards, the new southern side of the zoom block

becomes the old northern side.

Note that BLOXER keeps track of the mean x, y, or z position of each layer and section and

shows it on the title text of the graph. Internally, however, BLOXER always uses the index

numbers of the layers and sections. If the block model is highly irregular, the nominal depth

value of a layer, for example, may differ from the true depth of the blocks that belong to that

particular layer.

For the abovementioned reason the axis ticks (which are evenly spaced) are probably

incorrect if indices are used (Index/Dimension) and the model is irregular. Note that the 3-D

view always displays the actual xyz coordinates and not the index numbers.

Page 10: Bloxer_manu.pdf

10

4.3 Edit menu

Add parameter add a new parameter into the model.

Del parameter delete the current parameter from the model.

Norm/Log param. use linear or logarithmic scale for parameters.

Swap bin/txt swap between different binary and text file formats.

Block reduction apply block reduction (combines equal neighboring blocks).

Rehabilitate blocks regain the blocks that were made "hidden" in the reduction.

Block type 1/2 swap between equal-height and increasing-height block types.

Zoom ->super make the current zoom block a new super block.

Swap hidden blocks make hidden blocks visible and visible blocks hidden.

Revert hidden blocks make all hidden blocks visible again.

Layer-wise fix/free set the fix/free/hidden status of the blocks per layer.

Layer-wise reset set the parameter value of the blocks per layer.

Discretization double or half the grid discretization in xyz or xy dimensions.

Split layr/sexn insert a new layer or cross-section into the block model.

Merge layr/sexn delete a data layer or cross-section from the block model.

Add layr/sexn add a layer or cross-section at the side of the block model.

Adjust layer thickness define the thickness of a single layer manually.

The 3-D block model can include up to ten (10) parameters.

The linear scale is useful when dealing with parameters that have quite small range of

variation (e.g., density). Logarithmic scale, on the other hand, is useful if the parameter

range is wide (e.g., resistivity or magnetic susceptibility).

The Swap bin/txt option swaps the block file format between:

1. 4-byte real numbers in text format,

2. 2-byte integer values in text format,

3. 4-byte real numbers in binary format, or

4. 2-byte integers in binary format.

See chapter 6 for further information.

The Block reduction and Rehabilitate blocks items are discussed in the next chapter.

Although the xyz dimensions of the blocks can vary, initially all blocks have equal size

when the default block type is used. The alternative block type (Block type 2) means that

Page 11: Bloxer_manu.pdf

11

the block height is made increasing with depth by the value of the topmost block at every

successive layer (e.g. 0.5, 1, 1.5, 2 km or 1, 2, 3, 4, 5 km). This method decreases the

resolution at the bottom but reduces the total amount of blocks needed to describe the 3D

volume of the model.

The Zoom -> super item is useful when migrating from large-scale regional models into

more detailed local models. The size and position of the model will be redefined based on

the current zoom volume. The old discretization and contents (parameter values) are

reserved. All the information outside the original zoom block is lost.

The Swap hidden blocks item can be used to visualize the hidden blocks by simply

interchanging the hidden/visible status of the blocks. Note that the hidden blocks are

always included into the model - they are just invisible.

The Layer-wise fix/free option allows a fast method to fix and/or free and/or hide the

blocks per layer. The new status values are given on the console window.

Likewise, the Layer-wise reset option allows a fast method to reset the parameter values

per layer. The new parameter values are given on the console window.

The Discretization menu item contains sub-menus to double (split blocks into two half) or

half (combine two adjacent blocks into one) the discretization horizontally (xy) or in 3-D

(xyz). The two Double discr functions split each minor-block either into 8 (in 3-D case) or

4 (in 2-D case) cells. The splitting method preserves the model geometry if blocks have

been resized. The two Half discr functions combine either the adjacent 8 (in 3-D case) or 4

(in 2-D case) cells. The combining method requires an even number of blocks along the

axes, and it does not preserve the model geometry if the blocks have been resized. The

parameter value of the combined cell will be the mean of the original 8 or 4 blocks.

The Split layer/section item splits a layer or an X- or a Y-section into half, thus increasing

the discretization locally. The program first asks the user for the direction, x, y or z, of the

splitting operation. Then the program asks for the index number of the layer/section that

will be split into half. The splitting method preserves the model geometry.

The Merge layer/section item joins together two adjacent layers or sections of the model.

Because this operation is in general not possible for irregular models (or is it?), the method

does not preserve the model geometry if the blocks have been resized or combined. The

I/O parameters (direction and index number) are provided on the console window.

Note: The Merge layer/section function is still incomplete (version 1.6). Currently this

operation can be used to delete only the outermost layers or sections so that the size of the

Page 12: Bloxer_manu.pdf

12

super-block is adjusted (reduced) accordingly. This option is can be useful for making the

discretization even before reducing it into half using the Half density items.

The Add layer/section item is used to add a layer or section to the side(s) or bottom of the

super-block. The width of the margins or thickness of the layer can be freely defined.

Margins can be used, for example, to extend the model outside the computational area

without increasing the total amount of minor-blocks. The I/O parameters (direction and

index number) are provided on the console window.

The Adjust layer thickness item can be used to quickly redefine the thickness of a single

horizontal layer. Unlike the horizontal editing functions this option provides better 3-D

control across the sections. This option can also be used to redefine the bottom depth of the

whole super-block.

Important: The 3-D block model must be full; there can be no empty holes between the

block elements and the blocks cannot be overlapping with each other.

In general, it is not possible to generate fully irregular block models, because the amount of

blocks is limited by the discretization. If the model contains a block that has been resized, it

means that some other neighboring block has also been resized. Thus it is generally

impossible to delete a layer that contains resized blocks without producing empty holes or

overlapping blocks. Therefore, the Half density and Merge layer/section functions revert back

to a regular, evenly discretized block model before proceeding.

4.3.1 Block reduction

The block reduction algorithm tries to combine those neighboring blocks that have the same

size and the same parameter value so that together they will form a larger brick-like block.

The resulting block will cover the volume of the others, which will be marked "hidden" and

removed from visualization and computation. The reduction decreases the total amount of

blocks and, thus, speeds up the computation of the potential fields. The reduction is useful in

the forward computation of large densely discretized models with millions of elements.

Example of block reduction is shown in the Appendix D. The reduction can be made in 2-D

(layer-wise) or in 3-D. Please, note that the reduction algorithm is far from ideal and does not

give optimal reduction.

Page 13: Bloxer_manu.pdf

13

After applying the Edit/Block reduction menu item the program first asks (on the console

window) if the topmost layer will be reduced or not. Neglecting the top layer improves the

accuracy of the computations because it preserves the parameter values (uses zero tolerance)

on the top layer, which is the most sensitive to measurements made above the surface.

The program then asks for a parameter tolerance (in percents) for the reduction. The blocks

whose relative parameter difference, (pi - pj)/pj, is less than the tolerance value will be

combined provided that they fulfill the spatial requirements. If the tolerance is zero, the

blocks will be joined only if the parameter values are exactly the same.

The program then asks for the (target) division of blocks in x, y, and z directions. Providing a

value equal to the original discretization will not combine the blocks in that direction. At this

point one should remember that if full 3-D reduction is used, the GRABLOX gravity

modeling gives incorrect results if the regional field is computed using the mean density value

of each layer. This happens because the residual density (volume) of the blocks that extent

over multiple layers will be computed incorrectly. This problem can be avoided using layer-

wise reduction (z division is equal to z discretization). Usually one should test different

division values, because a sparse target division does not necessarily produce the best possible

reduction. Normally the division value should be an even number of the original

discretization.

The block reduction does not delete or remove the combined blocks. Instead, it uses the

parameter fix/free status to mark the combined blocks so that they are not plotted (nor used in

GRABLOX computations). The Edit/Block rehabilitation option resizes all the host blocks

back to their original size and resets the fix/free status so that the reduced blocks become

available again. The rehabilitation is nondestructive, that is to say, the original values that are

not rounded by the tolerance value are given back to the hidden blocks.

The File/Save red. model item is used to save the reduced block information, thus deleting the

original information of the combined blocks leading to smaller BLX files. When BLOXER

reads in totally reduced model files, it must revert back to the default discretization, because

in general it is impossible to find out the real geometry using reduced model information

alone. This leads to two difficulties. Firstly, the option should not be used if blocks have been

Page 14: Bloxer_manu.pdf

14

resized, because the backward substitution rounds the size and position of the minor-blocks

incorrectly. Secondly, due to the tolerance value the parameter values of the reverted blocks

are also rounded (data are lost).

4.4 Math menu

Block statistics show statistics of the whole model and current layer.

Layer statistics show statistics for each layer.

Show histogram show a histogram distribution of parameter values.

Subtract mean layer removes the mean of each layer from the values of each layer.

Reset min/max reset the parameter min & max values based on current data.

Add/Subtract add or to subtract a value from the parameters.

Multiply/Divide multiply or divide the parameter with a value.

Reciprocal (1/p) compute the reciprocal (inverse, p= 1/p).

Difference (p-p*) compute parameter's difference from its surroundings.

Classify round the parameter values to distinct classes.

Reset range reset parameters between a range: if p1<p<p2 then p=p3.

Hide range hide blocks between a parameter range: hide if p1<p<p2.

Filtering apply one of the predefined 2-D and 3-D filters.

All mathematical operations deal with the current parameter and some of them use the

console window to pass the information between the user and the program. The statistics and

histogram information can be copied from the console into the clipboard and pasted into a text

file if desired. On a PC/Windows system the Edit/Copy item of the console window

(command prompt) can be accessed from the small icon in the top-left corner of the console.

Note also that most of the math operations ignore hidden blocks and deal only with the

current zoom volume or area.

The Block statistics option displays the minimum and maximum value, the mean, the standard

deviation, and the average deviation of the parameter. The normal standard deviation is

computed as nstd=sqrt(sum(xj-xmean)2)/(n-1), where j=1,n. The average deviation, also known

as the mean absolute deviation, is computed as astd=sum(abs((xj-xmean))/n, where j=1,n. The

statistical information is computed separately for the whole block model and the current layer

Page 15: Bloxer_manu.pdf

15

or section. The Layer statistics option displays the same statistical parameters computed

separately for each layer.

The Show histogram function asks the user for the number of the classes and then displays the

percentage of the blocks belonging into those classes. The bounds of the classes are computed

automatically using the Min and Max parameter values in the right control panel (and color

scale). The histogram information is computed separately for the whole block model and for

the current layer or section.

In the Add/Subtract operation, subtraction is achieved by providing a negative value for the

addition. Likewise, in the Multiply/Divide operation, division is actually multiplication where

the inverse of the denominator should be provided given (for example, a/1000 = a*0.001).

The statistics and the math operations are made with respect to the whole 3-D block model

and/or the current layer or section.

The Classify operation first asks for the classification method and then the number of the

classes. The classification is based either on a) the histogram information, in which case

uneven class bounds are generated so that an equal number of blocks would belong to them,

or b) on an even discretization, in which case the parameter classes are divided linearly and

evenly between the minimum and maximum parameter value. The objective of the

classification is to reduce the amount of individual parameter values by rounding them into

some definite values, the total number of which is fixed to a relatively low value (max=50).

Thus, this method can be used to create a model where the parameter values change step-wise.

In some cases, this option can help to identify isolated targets and to flatten out unimportant

features of the model.

The Difference (p-p*) is computed between the parameter value of a block (p) and the mean

of the adjacent, surrounding blocks (p*). The difference has the same meaning as the

parameter roughness in GRABLOX’s constrained Occam inversion.

The Reset range function asks for the minimum (p1) and maximum (p2) parameter of the

range and the new value (p3) for the parameters inside that range. After this all the parameters

within that range (p1<p<p2) are set equal to the new value. This method can be used to

Page 16: Bloxer_manu.pdf

16

classify the model parameters manually. Setting p1=p2 allows changing a single parameter

value. Setting p1=p2=p3= 0 or p1>p2 ignores the reset range operation.

The Hide range function asks for the minimum and maximum parameter of a range. After this

all the parameters within that range are made hidden. Setting p1=p2=0 or p1>p2 ignores the

hide range operation.

The Filtering function can be used to process and to visualize the parameter data using few

elementary filtering operations. When applied, the program first asks if the operation will be

two-dimensional or three-dimensional. It then shows a list of filter operations and asks for the

index number of the desired filtering operation. The filter operations include a low-pass

(smoothing) and a high-pass (edge enhancement) filter, 8 gradient (shading) filters (N, E, S,

W, NE, SE, NW, SW) and the vertical gradient of the parameter. The vertical gradient is

computed using finite differences (forward and backward differences at the top and bottom).

The 2-D filters use a 33 kernel and the 3-D filters, which actually include only the low-pass

and high-pass operations, use a 333 kernel. Because of the size of the filters, the elements

at the borders are not affected. Note that the plane of the 2-D filters is based on the current

layer or section view. When applying a gradient filter that would normally destroy the base

level of the parameter data. Therefore, the program asks whether the data will be raised up to

the original level or not. If the filtered values are not raised back, gray color scale will be used

and the Min and Max values are reset (-0.2 and 0.2).

4.5 Cross menu

The Cross menu provides means to manipulate two different parameters and to put the results

onto the third one. Currently one can compute the sum (P3=P1+P2), difference (P3=P1-P2),

product (P3=P1*P2), and the ratio (P3=P1/P2) as well as the maximum (P3=max(P1,P2)),

minimum (P3=min(P1,P2)) and mean (P3= (P1+P2)/2). The user provides the index numbers

of the three parameters on the console window.

Note that the menu items in the Cross param menu are enabled only when the model contains

at least two parameters. This means that the results can be saved over an existing parameter

(e.g., P1+P2=P2). Normally, however, the third parameter, onto which the results are put,

Page 17: Bloxer_manu.pdf

17

must have been defined beforehand, for example, using the Add parameter item in the Edit

menu. Moreover, the addition (+), subtraction (-) and division (/) operations require that the

two parameters must be different (P1P2). In multiplication, on the other hand, the square

(second power) of a single parameter can be computed as a product (P1*P1=P2). Note that the

square root of a parameter is computed as a division of a parameter with itself

(P1/P1=Sqrt(P1)). This exception is justified simply because otherwise the result would be

equal to one (that can be defined manually anyway).

In the future, the Cross menu will contain tools for cross-correlation and related operations.

4.6 Exit menu

The Exit menu has two items. The Restart wide/norm item will restart the whole GUI so that

the aspect ratio of the window suits either traditional 3:4 display screens or widescreen

displays that are more common nowadays. When changing from normal mode to widescreen

mode the program asks the user a value for the aspect ratio 1 being equal to 3:4 and values

smaller than that will be more suitable to widescreen displays. Typical value for a 9:16 screen

is 0.70-0.85.

On exit the user is given a possibility to save the last model to disk, provided that the exit is

made without an error condition. The program asks for the name of the model file (INP +

BLX). Note that errors that are encountered before the GUI starts up are reported in the

BLOXER.ERR file. When operating in GUI mode, run-time errors arising from illegal

parameter values etc. are displayed on the screen.

Page 18: Bloxer_manu.pdf

18

5. GUI controls

5.1 Basic model parameters

The text fields at the top of the leftmost control panel define the parameters of the super-

block:

1. X position (easting) of the SW (bottom-left) corner of the super-block.

2. Y position (northing) of the SW (bottom-left) corner of the super-block.

3. Z position (depth to the top) of the super-block.

4. X size of the super-block (in EW direction).

5. Y size of the super-block (in NS direction).

6. Z size of the super-block (in vertical direction).

7. X discretization (number of blocks) in EW-direction.

8. Y discretization (number of blocks) in NS-direction.

9. Z discretization (number of blocks) in vertical direction.

Important: For BLOXER the coordinates are dimensionless (meters, miles, or whatever). In

other words, dimensions are not shown anywhere in the graphs or GUI.

The Update button is used to confirm the changes made to the model parameters.

The pull-down list widget above the Update button defines how the changes affect the

parameter values when the position, size and discretization of the super-block are updated.

1. Ignore: In this method the array of the parameter values remains the same although the

super-block changes. This method should be used carefully, because the parameter

corresponding to one block will (most likely) move to a different position when the

horizontal discretization changes. Nonetheless, this mode allows redefining the position

and the size of the super-block in an easy way.

2. Preserve: The new parameter values are estimated using a 3-D interpolation of the existing

values. This method is useful when refining the grid, because it tries to preserve the

existing values. It also allows moving the super-block so that its contents remains at the

Page 19: Bloxer_manu.pdf

19

same position inside the xyz coordinate system. However, this method can be quite time-

consuming if there are lots of minor-blocks.

3. Shift only (default option): Only the position of the super-block is changed inside the xyz

coordinate system and the size and discretization do note change at all.

Note that the model parameter changes made under the Preserve option are not equal to

results of a typical 3-D interpolation. When parameters are redistributed on a new mesh, the

new parameter value is assigned the mean value of those existing parameter values that fit

inside the volume of the new minor-block. If old values do not fit inside the new minor-block

at all, the search volume is increased by one block size and so on until at least one old value is

found. If multiple values are found, their mean weighted by the inverse distance is given to

the new block. See chapter Importing data for further information about the 3-D parameter re-

distribution method.

The Reset button is used to reset the parameter values of all minor-blocks to the quantity

defined in the Value text field in the right control panel. Note that this operation resets only

the current parameter.

5.2 Parameter editing

The pull-down list widget below the Reset button is used to define the editing method.

Parameter values can be edited directly block by block (Single) or using two geometric shapes

(Rectangle and Polygon) or indirectly using so-called immersion method. The default option

(Immersion) allows smooth 3-D editing of parameter values so that elements next to the point

where data are to be imported will be affected as well.

The Edit params button initializes the editing mode in layer and section views. Parameter

editing is not possible in 3-D model view. The editing mode allows the user to define the

characteristic parameter value of single or multiple minor-blocks with the computer mouse.

After pressing the Edit params button most of the program controls become inactive (grayed)

and the mouse cursor changes from an arrow to a cross above the graph

Page 20: Bloxer_manu.pdf

20

Important: While inside edit mode the user should avoid using any other GUI controls or

menu items because the event loop might not return back to edit mode. To exit the edit mode

the user needs to press the right mouse button above the graph twice in a row.

Assuming Edit rectangle mode, the editing is made as follows:

1. The user clicks the left mouse button above the two opposite corners of the rectangle. The

corners can be defined in any order.

2. All minor-blocks that fit inside the rectangular area will be given the parameter value

defined in the Value text field in the bottom of the right control panel.

3. The user can define multiple selection rectangles (a sequence of two left mouse clicks).

4. The graph is updated when user presses the right mouse button once.

5. The operation stays in the editing mode until the user clicks the right mouse again, i.e.,

presses the right mouse button twice.

The Edit polygon mode works in a similar manner. The user defines a polygonal area by

pressing the left mouse above successive vertex points. The vertex points can be defined in

clock-wise or in counter-clockwise direction. A click of the right mouse button closes the

polygon and the graph will be updated. Note that only one polygon can be defined at a time.

The operation stays in editing mode until the right mouse button is pressed twice.

In the Edit single blocks mode the user selects one or multiple minor-blocks at a time, and the

graph will be updated when the right mouse button is pressed. Note that in Edit rectangle and

Edit polygon modes a single click of a left mouse (only one point of the rectangle or polygon

is given) works like te Single blocks mode. Likewise, in Edit polygon mode a polygon with

two vertex points will be interpreted as a rectangle. Note also that the selection area of a

rectangle and a polygon can extend outside the plot area.

The Point immersion is essentially the same as manual importing of the data. Points are

inserted into the current layer or section view with the mouse as in the Edit single blocks

mode. Several points can be defined at once. After pressing the right mouse button once, the

immersion algorithm changes the parameter values of the underlying and surrounding blocks

as if the data points were imported from a file. The weight factor of the old blocks (WGHT),

the power (RPOW) and scale distance (RDIS) of the inverse distance weighting and the

Page 21: Bloxer_manu.pdf

21

horizontal and vertical anisotropy the search radius (H.ANISO and V.ANISO) are read from

the text widgets on the bottom of the left control panel. The Point immersion method is

practical when creating smooth models using densely discretized model. See chapter 6.4

(Importing data) for more information about import/immersion parameters.

The value of the characteristic parameter can be changed while working in the editing mode

in two different ways. Both of these require that the crosshair cursor is visible and no points

have been selected for the current shape, i.e., right after starting the editing mode or after

finishing the shape with a single click of the right mouse button.

1. Firstly, one can manually edit the Value text field at the bottom of the right control panel

(without pressing the Change button).

2. Secondly, one can pick a new value from the color scale bar below the layer or section

graph. One left-click is needed to pick the value and one right-click is needed to validate

the picking and return back to the editing mode.

5.3 Editing fix/free status

The fix/free information is used in GRABLOX to define model weights for the inversion.

Blocks with zero weight are not optimized at all.

Important: To edit the fix/free status the user must first change the index number of the

current parameter into 0 (zero) in the Param # text field in the right control panel and press

the Change button to validate the operation.

The user then clicks the Edit params button to start the interactive editing mode (crosshair

cursor above the graph area). The editing mode itself works in a manner similar to the

parameter-editing mode described above, i.e., using some predefined editing shape and

clicking the left and right mouse button. However, the editing values of the parameter fix/free

status are limited between 0 = totally fixed parameter and 100 = totally free parameter. Any

(integer) value between 1 and 99 defines a variable weight of fix/free status.

Note that when editing fix/free status one can use the Show/hide lables item in the View menu

to show the actual parameter values instead of the fix/free value. This helps the user to

Page 22: Bloxer_manu.pdf

22

distinguish the correct structures to be fixed/freed. Note that when the model contains lots of

minor-blocks not all labels are plotted to avoid the graph to get too crowded. Thus, to see the

detailed parameter information and fix/free status one should zoom in to the model to see all

the labels correctly. Alternatively one can use the label density scale widget at the bottom of

the right control panel to increase or decrease the label density.

5.4 Editing hidden blocks

The fix/free status is also used to hide the blocks totally from the visualization (and

computation). The editing of hidden blocks is realized in a manner similar to that of fix/free

status. In this case, however, the current parameter (Param#) is set equal to -1 (minus one).

The minimum and maximum values of the show/hide status are limited between 0 = hidden

block and 1 = visible block.

5.5 Resizing blocks

The Edit hori button starts the editing mode, which allows creating user-defined horizontal

boundaries into the block model. In other words, it allows manual resizing of the height of the

blocks in X- and Y-section views. In layer view the horizontal editing resizes the width of the

blocks in the y-direction. Likewise, the Edit vert button allows creating vertical boundaries,

and thus, is used to resize the x and y width of the blocks in X- and Y-section views.

The two resizing modes work like the abovementioned editing modes. The user can resize an

individual block using a combination of a single click of the left mouse button followed by a

single click of the right mouse button. Alternatively the user can define a long borderline by

picking multiple points with the left mouse button before pressing the right mouse button. The

program will then use spline-interpolation to determine the location of the borderline between

the selected points and shifts the block sizes to match the borderline.

Note that horizontal borderlines must be given from left to right (towards larger x or y

coordinate). Vertical borders should be defined from bottom to top in layer graphs (towards

larger y coordinates), but and from top to bottom (towards greater depth) in X-sections and Y-

sections. The editing mode is ended pressing the right mouse button without making any

changes (two successive right-clicks).

Page 23: Bloxer_manu.pdf

23

Important: Because the block model cannot contain any holes or overlapping minor-blocks,

the vertical and horizontal borderlines cannot cross each other freely. The borderline, which

was edited first will be fixed so that the crossing borderline cannot change the size of the

previously resized minor-blocks.

The abovementioned restriction affects only those borderlines that are made on the same layer

or section. For example, a vertical borderline defined on a layer (or multiple layers) can freely

cross any vertical and horizontal borderline on any X-section and Y-section, but not a

horizontal borderline on a layer. The user is advised to test these restrictions oneself.

The list widget below the Edit vert push button is used to define the 2-D extent of the editing

actions across the dimension perpendicular to the current layer/section.

3-D edit mode: the changes affect only the current layer/section.

Full 2-D mode: the changes that are made on the current layer/section are

(perpendicularly) stretched across the whole super-block area.

Zoom 2-D mode: the changes are made across the current zoom block area. If the zoom-

mode is not active this mode is equivalent to the full 2-D mode above.

Apply extents: the changes are made across a definite number of layers or sections. The

extent- and extent+ text fields are used to provide the number of layers or sections across

which the editing functions are to be extended. The difference between modes Apply

extents 1 and Apply extents 2 is related to the extent angles and will be explained in the

next chapter.

In the Apply extents mode the negative (extent-) and the positive (extent+) values apply to

directions towards the smaller and larger layer (or section) values, respectively. When looking

at the current layer (or section) the negative and positive extents are equal to directions

towards the eye and away from the eye. Extent values equal to zero give the same result as the

3-D edit mode, whereas a large extent values will affect the whole block as in the Full 2-D

mode. When working inside a zoom mode, the extensions are always limited to the zoom

block boundaries.

Page 24: Bloxer_manu.pdf

24

5.6 Extents

The extents and extent angles enable creation of more complex 3-D models with less effort

when using rectangular and polygonal shapes. Please, note that the point immersion method is

highly preferred if smooth varying 3-D models are wanted.

When working in the Apply extents editing mode, the user has an enhanced control over the

2-D extensions. As discussed above the extent- and extent+ text fields are used to provide the

number of layers or sections across which the editing functions are to be extended inside

(away from the eye) and outside (towards the eye) the plane of the current layer/section. This

is illustrated in Figure 2, which depicts a cross-section across the current layer/section

The alf1, alf2, alf3, and alf4 text fields define four extent angles, which are used to provide

the directions into which the editing changes will be extended. Note that these text fields are

shared with the weight factor, inverse distance power, scale distance, and the x/z shape of the

search range of the point immersion method (and data importing and parameter

redistribution).

Plane of the currentlayer or section

extent angle 1

extent angle 2

(extent-) -z

+z (extent+)

+x-x

Figure 2. Extent angle directions in block resizing. Here +z refers to the direction towards the

eye, and +x refers to the direction to the left in any layer or section graph.

The extent angles are given values between -89 and 89 degrees. A zero extent angle is equal

to the (default) perpendicular extent direction. The extent angles have slightly different

meaning depending the editing task (borders or parameter changes), editing direction (vertical

or horizontal borders) and editing shape (points, rectangles, polygons).

Page 25: Bloxer_manu.pdf

25

Figure 2 illustrates the role of the extent angles in block resizing (note the different meaning

of the x and z coordinates). The extent angles, which are taken from the normal of the plane of

the layer or section (extent+ and extent-), are positive in clockwise direction and negative in

counter-clockwise direction. Note also that extent angles alf3 and alf4 are not used in block

resizing.

Surface of the currentlayer or section

extent angle 1 extent angle 2

+x'-x'

extent angle 1

extent angle 2

extent angle 4

extent angle 3

Outline of a rectangularselection area

Figure 3. Extent angle directions in the parameter editing over a cross-section (above) and on

the current layer/section (below).

When editing the parameter values (and the fix/free status), the extent angles have slightly

different meaning than when resizing the blocks. This is illustrated in Figure 3. Angles alf1

and alf2 determine separately the angles of the left and the right side of the rectangular or

polygonal selection area. Likewise, alf3 and alf4 determine the angles at which the bottom

and the topside of the selection area are tilted from perpendicular direction. Note that here the

definition of right, left, top and bottom depends on the current view, which is either a layer or

an X-section or a Y-section. Note also that in the bottom sketch of Figure 3 the directions of

the arrows indicate how the structure dips down into the positive extent direction when the

extent angles themselves are positive.

In Apply extents 1 mode the same angle is used in both extent+ and extent- directions. Thus,

to create a jointed (bent) feature one needs to perform the editing operation separately for the

positive and negative extents. This is possible if either the extent+ or the extent- distance is

Page 26: Bloxer_manu.pdf

26

zero. The Apply extents 2 mode allows creating symmetrical bends, because the sign of the

extent angle is automatically reversed for positive extents. The difference between modes 1

and 2 is illustrated in Figure 4. The Apply extent modes 1 and 2 are identical in any other

respect.

The editing of single blocks is an exception, which allows free creation of bends. Here alf1

and alf2 define the (left-right and up-down) extent angles for negative extent values (extent-)

and alf3 and alf4 define the extent angles for positive extents (extent+). Because the resulting

extent can be very jagged, the use of extent angles is not very practical in single block editing

mode.

Note that giving alf1 and alf2 opposite signs will always create a structure that is reducing in

size (sharpening) towards the negative extent. In Apply extents 1 mode the structure will get

bigger towards positive extent (a pyramid), but in Apply extents 2 mode the structure will be

reducing in positive extent as well (a diamond).

Since it is difficult to realize the meaning of extent angles or any of the resulting patterns with

words, users are advised to boldly experiment different combinations of the extent angles to

gain practice.

5.7 Gradients and backup/revert

The p.grad. text field defines a parameter gradient, which is used to linearly extrapolate the

parameter value along the 2-D extension. This is also illustrated in Figure 4. The parameter

gradient is applied starting from the current layer/section towards the distance defined by the

extent- and extent+ values. Positive gradient value means that the parameter value is

increasing towards the extent+ direction and decreasing towards the extent- direction. The

p.grad. value is defined as a normalized quantity per 100 distance units;

100/)()( 0 dpdzxpxp . If logarithmic parameter scale is used the gradient is defined as

100/))((log))(log( 010 dpdzxpxp .

Note that the extent depths and parameter gradient are used also in point immersion.

Page 27: Bloxer_manu.pdf

27

e.alfa 1e.alfa 2

+x'e.alfa 1'

=e.alfa 1

e.alfa 2'=

e.alfa 2

-x'

e.alfa 1e.alfa 2

+x'

e.alfa 1'=

-e.alfa 1

e.alfa 2'=

-e.alfa 2

-x'

p.grad

p.grad

Figure 4. The difference between extent modes 1 (above) and 2 (below), and the definition of

the parameter gradient (p.grad), which defines linear increase (or decrease) of the parameter.

When editing the model using extents and extent angles one can easily devastate the inner

structure of the model. The two buttons, Backup and Revert, at the bottom of the left control

panel provide a simple Undo option. The Backup operation copies the values of the current

parameters into memory. The Revert operation gives the values stored into memory back to

the minor-blocks and, this, undoes the changes made after the Backup operation. If the total

amount of the blocks changes the reverse operation cannot be made anymore.

The Backup and Revert operations allow copying the values of one parameter onto another

one. Consider, for example, that the user has edited the model representing the distribution of

magnetic susceptibility. The user needs to use the Backup button to copy the parameters into

memory, then add a second parameter into the model, and use the Revert button to paste the

first parameter data over the second one. Then one can use the operations in the Math menu to

rescale the data to represent, for example, the Köningsberger's Q-ratio (intensity of remanent

magnetization). Note, however, that to be able to visualize the second parameter, one may

need to adjust the Min and Max parameter values manually.

Page 28: Bloxer_manu.pdf

28

5.8 Right control panel

The five push buttons at the top of the right control panel are used to change the contents of

the graph area.

1. The 3-D view button is used to show a 3-D view of the super-block (see Appendix A).

2. The H-layer button is used to show the parameter values of a single horizontal layer (see

Appendix B).

3. The X-sexn button is used to show the parameter values on a vertical cross-section in WE

direction (see Appendix C).

4. The Y-sexn button is used to show the parameter values on a vertical cross-section in SN

direction.

5. The <-/-> button is used to change the direction to which the contours, layers, sections are

being switched when the corresponding buttons pressed multiple times.

The large 3-D view will show the 3-D outlines of the super-block and the 2-D

representation of the minor-blocks of the previously selected layer or section. If zooming

has been made the 3-D view shows also the outline of the zoom-block inside the 3-D view.

The Swap 3-D model item in View menu can be used to concentrate the 3-D view only to

the zoom-block as if it were the super-block.

Pressing the H-layers, X-sexn, and Y-sexn buttons multiple times will switch (rotate) the

current layer/section to the next (or previous) one. At the last (or first) layer/section the

view jumps (or rotates) to the first (or last) one. To get back to the previous layer/section

(or depth-zoom, color scale, etc.) one needs to press the <-/-> button and then the desired

layer or section button. A switch from a layer to a section view does not increase the

existing count.

Note that a small 3-D view of the model is shown in the bottom-right corner of the page

area in layer graphs and cross-section graphs (Appendices B and C). The purpose of the

auxiliary 3-D view is to help to locate the current layer/section inside the super-block. The

auxiliary view will not be included in any prints, because it locates outside the A4 sized

page area. Note that in the full 3-D view the outlines of the individual blocks (grid) are

plotted but in the small 3-D view only the outline of the base position of the layer/section

will be plotted.

Page 29: Bloxer_manu.pdf

29

The next three text fields show the index numbers of the current layer, X-section, and Y-

section. The user can jump directly (instead of rotating) to a specific layer or section by

providing its coordinate value (or index number) in the associated text field and then pressing

the corresponding button discussed above.

The Zooming button gives a possibility to zoom in to and out from the 3-D model using the

mouse as it is used in the parameter editing. After pressing the Zooming button the cursor will

change to a cross above the graph area. The zooming has two possible modes of operation.

Pressing the left mouse button once and then the right mouse button will focus and zoom in to

that location in the layer or in the section views. In this case the magnification is made in

using fixed steps 1:1, 2:1 to 10:1. A single click of the right mouse button will zoom out one

step. The zoom out feature is always made relative to the center of the existing zoom block.

In layer and section views one can select the zooming area freely by defining the opposite

corners of a zooming rectangle with two clicks of the left mouse button. In this case the "third

dimension" of the zoom box is not altered. If the zoom area is freely defined the zoom out

feature (right mouse click) always resets back to 1:1 scale.

While the panning items in the View menu shift the position of the zoom area a fixed amount,

the Panning button gives a better possibility to focus the position of the zoom area inside the

super-block. The Panning button is active only when the user has already zoomed in the

model. After pressing the Panning button the cursor will change to a cross above the graph

area. A click of the left mouse will move the center of the zoom area below that position. The

program will stay in the panning mode as long as a right mouse button is not used. Note that

when zooming in or panning around the limiting layer and section numbers will be redefined

and the program will automatically change the index number of the current layer/section so

that it can never locate outside the zooming block. Note also that minor-blocks whose center

locates outside the zoom area are not plotted at all, thus producing white areas at the sides of

the zoom-block sometimes.

In geophysical models in general, the depth extent of the 3-D block models is usually much

smaller than its horizontal dimensions. The list widget Depth zoom is used to increase the

length of the depth axis in cross-section graphs and 3-D model views. Thus, it gives a

Page 30: Bloxer_manu.pdf

30

possibility to better see the parameters in cross-section graphs, which would otherwise be

plotted in 1:1 scale. The depth zoom ranges from 1:1 to 10:1.

The five text fields above the Change button define the current parameter:

As discussed in the Parameter editing section, the Param# text field is used to define the

index number of the parameter that is currently shown in the graphs.

The Min and Max text fields define the minimum and maximum parameter values of the

color scale. Normally these values should provide the definite lower and upper limit of the

model parameters, because they are also used to scale the parameter values when model is

saved in 2-byte integer format.

The Scale text field defines a (multiplying) scaling factor, which is used to reduce the

number of digits in the parameter labels shown in layer and section graphs.

The Value text field defines the current parameter value used in model editing.

The Change button is used to update the changes made to the abovementioned text fields.

Important: If the model file contains multiple parameters, then to change the view from one

parameter to another the user first needs to provide the index number of the second parameter

on the Param# text field and then press the Change button.

The horizontal slide controls at the bottom of the right control panel are used to change the

viewing point of the 3-D model views. The topmost slide control rotates the 3-D view

horizontally, the second control rotates the view vertically, and the third control changes the

relative distance of the viewing point (as if zooming in and out).

The bottom-most slide control changes the density with which the parameter labels are drawn

into the layer and section views. From 1 to 50 the label density defines that every n.th label is

drawn into the maps. From 50 to 100 the label density increases linearly from 50 to N, where

N is the number of blocks in the current layer or section.

Page 31: Bloxer_manu.pdf

31

6. Input file formats

6.1 Input model file

The following example illustrates the format of the input file (e.g., BLOXER.INP):

1

System parameters are currently missing

0.0 0.0 0.0 100.0 100.0 50.0

10 10 3

1 1 0

1

300 1 1

1 0.500000E-01 0.100000E-03 0.100000E+01 0.100000E+04

The 1.st line defines the number of successive lines that contain the computational

parameters, which BLOXER skips over. For example, in the input files of the MAGBLOX

program there will be four lines that contain the coordinates of the computation grid, the

parameters of the geomagnetic field and some auxiliary parameters. When reading a model

file BLOXER stores these "extra" lines into memory and saves them back into the model

file. The maximum amount of header lines is 50 and each line can contain up to 100

characters.

Since the example above is generated by BLOXER the 2.nd line is just a comment line,

which will be skipped over.

The 3.rd line (in this case) contains the x, y, and z coordinates of the top-south-western

corner of the super-block, and the size of the super-block in x, y, and z directions.

The 4.th line defines the discretizations (number of blocks) in x, y, and z directions.

The 5.th line contains parameters that define the block file:

The 1.st parameter defines the block (*.BLX) file format (IFO):

0 = The *.BLX file does not exist. In this case the super block will be discretized

automatically and the default parameter value is given to all blocks.

1 = Normal text file and real (floating point) values

2 = Normal text file and 2-byte integer values

3 = Binary file and real (floating point) values

4 = Binary file and 2-byte integer values

Page 32: Bloxer_manu.pdf

32

5 = Binary file and 2-byte integer values, the byte order of which are reversed when the

data file is being read (allows Unix PC conversion).

The 2.nd parameter defines the block type:

1 = All blocks are assumed to have equal size (default)

2 = Block height is increasing with depth. A negative value of this parameter would

mean that block reduction has been used.

The 3.rd parameter is reserved for future use.

The 6.th line defines the zooming level (1, 2, 3, …, 10). If the zooming level if bigger than

1 (1:1 scale, no zooming), the next line would contain the x, y, and z coordinates of the

center of the zoom-block, and the dimension of the zoom-block in x, y, and z directions.

The 7.th line defines the number of blocks (NOB), the total number of characteristic

parameters (NOP), and the column number (NOC) of the parameter to be read from the

block (BLX) file. Note, however, that if the block file was saved using the Save red. model

item in the File menu, the number of actual minor-blocks might be smaller than the value

based on discretization (NOB < nx*ny*nz). Moreover, BLOXER does not use the NOC

value. This parameter allows GRABLOX to use the same model file with several

parameters.

The last line defines the basic values of each characteristic parameters

1. Scale type: 0= linear scale, 1= logarithmic scale

2. Default parameter value (Value)

3. Parameter minimum value (Min)

4. Parameter maximum value (Max)

5. Scaling factor or label multiplier (Scale).

Except for the scale type, which is defined by the Norm/Log param item in Edit menu, the

abovementioned parameters show up at the right control panel. Note that if the example

had included more than one parameter there would have been additional similar lines at the

end of the file.

In principle there is no need to edit model files manually. However, if the *.BLX file is

missing one can still open the model by resetting the file format parameter (IFO=0) on the

7.th line so that a dummy block model will be generated automatically. Also if the *.BLX file

was generated using binary 2-byte integer format on a Unix workstation, then the model can

be read on a IBM/PC by resetting the file format parameter (IFO=5).

Page 33: Bloxer_manu.pdf

33

6.2 Block file format

The following example illustrates the format of the block file (e.g., BLOXER.BLX) when

saved in real-valued (floating point) text format:

10.00 10.00 16.67 5.00 5.00 0.00 100 0.500000E-01

10.00 10.00 16.67 25.00 5.00 0.00 100 0.500000E-01

10.00 10.00 16.67 45.00 5.00 0.00 100 0.500000E-01

10.00 10.00 16.67 65.00 5.00 0.00 100 0.500000E-01

10.00 10.00 16.67 85.00 5.00 0.00 100 0.500000E-01

10.00 10.00 16.67 5.00 15.00 0.00 100 0.500000E-01

10.00 10.00 16.67 25.00 15.00 0.00 100 0.500000E-01

...etc

...until

10.00 10.00 16.67 45.00 95.00 33.33 100 0.500000E-01

10.00 10.00 16.67 65.00 95.00 33.33 100 0.500000E-01

10.00 10.00 16.67 85.00 95.00 33.33 100 0.500000E-01

The first three columns (1-3) define the x, y, and z size (width, length and height) of each

minor-block. The next three columns (4-6) define the x, y, and z position coordinates of the

minor-blocks. The horizontal xy position of a minor-block is fixed to the center of the

rectangular block area, but the vertical z position is fixed to the top of the block. Moreover,

the positive z axis points downwards. The seventh column (7) is an integer value, which

defines the parameter fix/free status (PF) used in the inversion (0= fixed block, 100= totally

free). The next (NOP) column/columns defines/define the values of the characteristic

parameters in each block. The maximum number of characteristic parameters is ten:

max(NOP)= 10.

Please, note that when creating compatible block files with external software (without

BLOXER), the do-loops are made in z-y-x order: the outer do-loop (z) goes through each

layer, the middle do-loop (y) goes through each section from south to north, and the innermost

do-loop (x) goes through each section from west to east. In other words, for each horizontal

layer (from top to bottom) and for each y coordinate value (from south to north) the data are

stored along x axis (from west to east).

Page 34: Bloxer_manu.pdf

34

The fix/free status is also used to represent hidden blocks, reduced blocks and weight factors.

A negative value from -1 to -101 means that the block is totally hidden, that is to say the

block is used neither in the visualization (blank blocks) nor in GRABLOX computations. The

absolute value still defines the weight factor between 0 and 100 (WGH= PF+101). A negative

value smaller than -101 means that the block is made hidden because of block-reduction. In

this case the absolute value of the fix/free status defines the host block that covers the reduced

block(s). Normally fix/free values between 0 and 100 are interpreted as weight factors, which

define the freedom of the blocks in the inversion. The weight factors are useful, for example,

when well data is available, because the surroundings of the totally fixed block can be made

rigid.

One can save disk space if the block file is saved in 2-byte integer format. In this case the

minimum and maximum parameter values (Min & Max text fields) are used to scale the data,

because the absolute range of 2-byte integers is limited between -32000 and 32000. First the

mean, (pmax+pmin)/2, is subtracted from the parameter value. Then they are divided by the

difference, pmax-pmin, which scales the data between -1 and 1. Finally the values are

multiplied by 10000 to provide reasonably accurate INT*2 values. This scaling affects only

parameters that are defined on a linear scale. If the parameter is defined on a logarithmic

scale, the log10 value of the parameter is simply multiplied with 1000.

Important: Because the 2-byte integer numbers cannot store large values, the 2-byte integer

format cannot be used if block reduction has been made and the model has more than 32000

elements. Large models should be stored as 4-byte real (floating point) numbers.

File I/O operations become faster if the block files are saved in binary format. Binary files are

also slightly smaller than the equivalent text files. Note, however, that binary files that are

generated on DOS/Windows environment have different byte order than files on

Unix/Linux/MacOS systems. The block format parameter value 5 (see previous chapter)

provides a method to read binary (2 byte integers only) block files created on different

operating system. However, one needs to manually edit the *.INP file before opening the

model file to enable byte swapping.

Page 35: Bloxer_manu.pdf

35

6.3 Import file formats

Important: The BLOXER program does not read any information about the discretization

from the import file. When importing parametric data, the values are imposed on the current

block model. This means that the model position, size and discretization must be set

appropriately before reading in the data.

Importing is possible in two ways. If the data file contains xyz coordinates, they are used to

interpolate the parameter data onto the minor-blocks of the current model. In this case the

order in which the data are stored into the file is not important, but one needs to be able to

define the correct columns of the xyz coordinates. If the model file does not contain the

coordinates, the parameter data are read directly into the minor-blocks of the current model in

the same order in which they are stored into the file. In this case it is important that the do-

loop order with which the data was stored in the file is known beforehand.

Usually the import (and export) operation involves the use of a separate header (*.HEI) file

column-formatted (*.XYZ) file that contains the actual parameter data. The following

example illustrates the format of the header file.

Header file for exported parameter data (BLOXER generated)

N:o lines, n:o columns, format, column

420 4 1 4

Name of the parameter file:

D:\Bloxer\Bloxer.xyz

The 1.st and the 2.nd line are used merely for comments and can be left empty. The 3.rd line

defines: 1) the number of lines, 2) the number of parameters (data columns) contained in the

file, 3) file format parameter, and 4) the column from which the parameters are to be read.

The 4.th and the 5.th line are not used and the name of the data file is provided on the (last)

6.th line.

A positive value of the format parameter indicates that the first three columns of the data file

contain the xyz coordinates. Format parameters 1-5 define text and binary file formats (which

are the same as in the case of a BLX file), where the first three columns contain the x, y, and z

Page 36: Bloxer_manu.pdf

36

coordinates (in that order). Format parameters 11-51 define different column orders of text

files. A negative value of the format parameter means that the data file does not contain the

coordinates but only the parameter values.

1= text file, x,y,z columns OR do-loops are made in x-y-z order (-1)

2= text file, x,y,z columns (test format), 2-byte integer values

3= binary file, x,y,z columns, 4-byte real (floating point) values

4= binary file, x,y,z columns, 2-byte integer values

5= binary file, x,y,z columns, 2-byte integer values + DOS/Unix byte swapping

11= text file, x,z,y columns OR x-z-y order (-11)

21= text file, y,x,z columns OR y-x-z order (-21)

31= text file, y,z,x columns OR y-z-x order (-31)

41= text file, y,z,x columns OR z-x-y order (-41)

51= text file, z,y,x columns OR z-y-x order (-51)

As discussed earlier, the parameters are normally stored so that do-loops are made in z-y-x

order. When importing parameter data without the xyz coordinates, the format parameter

defines the order of the do-loops used to store the data (eg. format parameter -51: do i=1,nz;

do j=1,ny; do k= 1,nx; read p(i,j,k)).

Please, note that only one parameter can be imported (and exported) at a time. If multiple

parameters are to be read, one must first change the current parameter in BLOXER, then

manually edit the corresponding column parameter in the header file, and finally make the

import operation again. Note also that when dealing with large models, the importing can be

terribly slow, particularly if 3-D interpolation is used instead of simple insertion.

Applying the normal Open model command will replace the whole model. However,

importing can be made also from *.INP and *.BLX files. In this case, only one parameter is

read and the NOC parameter of the *.INP file must be used to define which parameter column

is read if the *.BLX file contains multiple parameters.

Page 37: Bloxer_manu.pdf

37

6.4 Importing data

When importing data that contains the xyz coordinates, the program assumes that the data are

irregularly spaced and will use a 3-D interpolation algorithm to determine the parameter

values inside the minor-blocks. The 3-D interpolation method consists of two phases:

1. The first phase browses through the imported data points and assigns values for those

minor-blocks that contain at least one data point. If multiple data points fit inside a single

minor-block their mean is used to represent the new value. At this point, the actual

imported data is lost altogether, and the interpolation uses the "raw", partially filled block

model where some of the minor-blocks are blank and some are not.

2. The second phase assigns values for all those blocks that did not contain any data points at

the first phase. The method uses the indices of the regular block model to search the

neighborhood of each blank minor-block for a non-blank (filled) block. The search range is

increased one section or one layer at a time (see anisotropy values below) until at least one

non-blank minor-block is found. If multiple values are found then their inverse distance

weighted mean will be used.

After choosing the *.HEI file for data importing, BLOXER asks the user if only simple

insertion (i.e., phase 1) is sufficient or if interpolation (and extrapolation) will be used to

complete phase two. Depending on the data it is sometimes necessary to update only the

coincident blocks. For example, simple insertion is sufficient if the data has already been

interpolated on a grid that is consistent with the model discretization. For example, the

PETROCK program (Pirttijärvi, 2011) can be used for lithologically constrained gridding of

unevenly spaced petrophysical data.

At the second phase BLOXER uses the weight factor (WGHT), inverse distance power

(RPOW), scaling distance (RDIS) and the horizontal and vertical anisotropy ratios (H.ANISO

and V.ANISO). The weight factor is used to determine the importance of existing model

values when new data points are imported. If the weight factor is zero, then the existing data

are ignored totally and all the blank blocks are derived from the filled blocks using inverse

distance weighting. If weight factor is non-zero then the old values of the empty blocks are

added to the inverse distance weighted mean that determines the new value. This means that

Page 38: Bloxer_manu.pdf

38

one can update portions of the block model using for example data from drill-holes or from

1-D or 2-D interpretations from sounding sites or profiles.

Important: If WGHT is non-zero it is used also in the first phase. In other words, the

weighted mean of existing and imported values will be used in the simple insertion.

The power of the inverse distance weighting is determined by the RPOW parameter.

Typically RPOW is between 0.5 and 3. The higher the power is, the shorter is the distance the

imported data point affects the remaining model. The inverse distance weights are computed

using equation w=1/(1+r/d)a, where r is the distance between the data point and the block

center, d is the scaling distance (RDIS), and a is the power of inverse distance weighting.

Note that according to this formula, w= 1.0 when r= 0, and w= 0.5 when r=d and a=1. This

means that RDIS defines the distance where the weights get half the importance of the

singular blocks. In practice, RDIS defines the effective range of the inserted points.

Usually, RDIS should be equal to the block spacing but it can be increased if imported data

are sparsely spaced and greater distance is wanted for the immersion effect.

At the second phase BLOXER increases the search range around a blank block until at least

one filled block is found. The horizontal and vertical anisotropy values define the shape of the

search ellipsoid. If H.ANISO and V.ANISO are equal to one, then the search range increases

symmetrically (circularly) in all directions. If H.ANISO = 2, the search range increases twice

as fast in x direction as in y direction. If V.ANISO = 0.5 the search range increases half as fast

along the z axis as horizontally. Note that currently, the immersion does not take use of

anisotropy angles.

When the Preserve mode is used and the model is updated, the new parameter values in the

dislocated blocks are determined using an algorithm similar to the one described above. In

this case, WGHT=0 and the new data are re-computed using the old discretization. Note that

RPOW, RDIS, H.ANISO and V.ANISO are used also in parameter redistribution and point

data immersion.

The use of indexed search makes the 3-D interpolation faster compared with full search when

the block model has lots of minor-blocks. However, the user should be cautious when

Page 39: Bloxer_manu.pdf

39

importing parameter data, because fine details of the data can be lost if the discretization of

the block model is too coarse.

6.5 Export file formats

When exporting parameter values the program exports either:

1. Parameters of the current (zoom) block with the xyz coordinates.

2. Parameters of the current (zoom) block without the xyz coordinates.

3. Parameters of the current layer or section with the xyz coordinates.

4. The depth to a certain parameter value over the whole model.

5. Parameters interpolated values on a vertical cross-section along a profile.

Export operation creates a header (*.HEI) file and a column-formatted data file (*.XYZ)

similar to those discussed in chapter 6.3. In cases 1 and 2 the program uses the current file

format parameter (which is shown in the plot information text) to define the main format of

the XYZ file (1= real text file, 2= 2-byte integer text file, 3= real binary file, 4= 2-byte integer

binary file). The file format parameter can be changed using the Swap bin/txt item in the Edit

menu. Note also that the export operations 1 and 2 limit the data to the current zoom box if it

has been defined.

If normal (real-valued) text file format is used the program will separately ask for the index

number of the do-loop (storage) order. Note that unlike in import operations the x, y, and z

coordinates (if enabled) in export operations are always stored in to the first three columns in

that order. The special t3d option, which is possible when only the parameter values are

stored, allows storing the data into a format that can be imported into the T3D program

(Fortner Research Inc) for more advanced 3-D plotting.

When exporting the depth to a certain parameter value, the program first asks for the

parameter value and then with linear interpolation computes the depth at which that value is

exceeded. The operation is performed for each horizontal grid location. The resulting file can

be used to plot the topography of parametric data when the model is such that the parameter

values are increasing with depth.

Page 40: Bloxer_manu.pdf

40

When exporting the data on a profile, the program asks if the profile coordinates are to be

read from a file or if the start and end points of the profile are to be given manually. If file

input is used, the program brings up the standard open/save dialog and the user should locate

the input file. The following example illustrates the format of the profile file:

120

3186.0,6710.0

3186.3,6710.4

3186.6,6710.8

3186.9,6711.2

...

etc

The first line contains the number of points and the remaining lines contain the x and y

coordinates of the profile. After reading in the profile points the program will ask for the

vertical point spacing before performing the export operation.

If the profile is defined manually, the program will first ask for the x and y coordinates of the

start and end points of the profile and then the horizontal and vertical point spacing. Note that

manually given profile is always a straight line, whereas the file input can be used to define a

wiggling profile. However, in the latter case the file must contain suitable spacing of x and y

coordinates, because the horizontal spacing depends on the given xy values. Bi-cubic spline-

interpolation is used to interpolate the 3-D data on 2-D cross-sections.

6.6 Topography data

The Import topo menu item can be used to resize the height of the blocks automatically. This

option also allows importing the surface topography into the model. Starting from BLOXER

version 1.5 the top and the bottom of the super block can be resized vertically. Therefore, the

blocks above the surface (in the air) do not need to be made hidden anymore. Note however,

that the effect of multiple stacked block models can be difficult to combine if the

topographies of the models do not match. Therefore, the user is recommended not to resize

the bottom of the super-block. Instead, to compute the gravity effect of depth variations of

layered structures, for example, the topography should be imported into the second last layer

Page 41: Bloxer_manu.pdf

41

boundary and the bottom layer should be made hidden. For the same reason the import

topography option does not change the bottom topography of the model.

The topography data is read from a text file, the format of which is:

1 0

6 1 2 3

3300 6900 26

3300 7000 20

3300 7100 23

3400 6900 20

3400 7000 27

3400 7100 20

The 1.st line defines the number of different topography units (NOT) and the type of data the

file defines (ITT). The amount of topography units (NOT) is not restricted since each unit is

handled before the next one is processed. The four topography data types (ITT) are:

0= Surface data: the blocks are resized based on a topographic surface, which goes

through the given points and extends horizontally through the whole model. In this

case the blocks are resized so that their boundaries fit with the given surface layer.

1= Surface data: similar to the one above but assumes implicitly that the surface data

represent the top topography of the model. In this case the topmost blocks are shifted

so that they fit the data and all the other layers are adjusted below the first one..

2= Line data: the blocks are resized only near to the lines defined by the topography data.

This allows bringing in information from 2-D interpretations, for example.

3= Point data: only those blocks the topography data coincide with are resized. This

allows bringing in information from 1-D soundings, for example.

4= Well data: similar to the point data option, but the depth of a given layer is fixed to the

depth point. This also allows adjusting the fix/free status of the block and its

surroundings which is useful in two-layered interpretation of gravity data, for

example.

The 2.nd line is the header of the first unit and it defines the number of points in the unit

(NTP), and the column indices of the x, y, and z coordinates. The following (six) lines define

the x, y, and z coordinates of the topography data. The xyz coordinates can be given

Page 42: Bloxer_manu.pdf

42

irregularly. If the number of points is a negative value (NTP<0), then the topography unit will

be skipped over and the next unit will be read. The header line of the second topography unit

should follow immediately the last point of the first unit (and so on).

When importing surfaces the block model might not be able to represent rapid depth

variations. The BLOXER program first uses inverse distance weighting to evaluate the depth

values on a regular grid, which covers the whole super-block horizontally. The actual resizing

operation is based on a bi-cubic spline interpolation of the gridded values.

A special case of surface importing is when the top topography of the model is adjusted

(NOT=1). In this case the vertical position of the super-block is changed if needed. The

vertical positions of the blocks of the top layer are then resized to fit the topography data.

Note that normal importing of surface, line, or point data does not allow resizing the top

topography. The bottom of the super-block is resized only if needed.

The importing of line (or point) data affects only those blocks that coincide or locate near the

line segments (or individual points) connecting the topography points. The depth variations

will not be distributed horizontally fat away from the data lines (or points). In its simplest

form the topography unit would contain a single point. If surface option were assumed, the

nearest layer boundary would be shifted to a constant depth level and the blocks above and

below the layer boundary will be adjusted accordingly.

The well data (ITT= 4) has slightly different file format.

1 4

6 1 2 3 4

3300 6900 26 1

3300 7000 20 1

3300 7100 23 1

3400 6900 20 1

3400 7000 27 1

3400 7100 20 1

The column number of the layer indices (ICL) is given as the fifth parameter on the 2.nd line.

The file must contain an additional data column that defines the layer the bottom of which

should be resized to match the given z coordinates.

Page 43: Bloxer_manu.pdf

43

Page 44: Bloxer_manu.pdf

44

Important: Normally, topography data are equal to the z coordinate values from the

reference (sea) level. Thus, they do not represent depth values from the surface. Quite often,

however, well data is defined as depth values (e.g., depth to the bedrock = thickness of the

overburden soil) and not as z coordinates. In this case giving a negative value for the index of

the column number of the z-coordinates (e.g. replacing column index 3 with -3 in the example

above) will change the meaning of topography data from z coordinates to depth values. This

option, however, works only when importing point or well data.

Importing of well data is usually needed in two-layer gravity interpretations, where the

topography of the basement is interpreted using a fixed density contrast between the basement

and the overburden layer. In this case the depth values refer to the thickness of the overburden

layer (layer index = 1). Importing of well data differs from the point data importing, because

in the latter case the two blocks that are the nearest to the depth point are resized. Well data

importing however, shifts the given layer to the given depth value. This means that all the

blocks between the given depth point and the original position of the bottom of the block must

be resized.

A special feature when importing well data and point data is that the program asks (on the

console window) if the fix/free status of the blocks will be changed automatically. This option

allows fixing the depths of the blocks based on a priori data. This is essential when

performing two-layer gravity interpretation. When importing well data the fix/free status can

be immersed into the model (see Point immersion) so that the fix/free status of the

surrounding blocks gets adjusted as well.

Another special case of the topography importing concerns the Occam inversion method in

the GRABLOX program. The discontinuity (model roughness) information can be set

automatically when topography data is imported. To enable this mode one needs to add a

second parameter into the model (Add parameter item in Edit menu) and to set its minimum

and maximum values to 0 and 126, which refer to fully continuous and fully discontinuous

blocks. After these preconditions, BLOXER performs the vertical block resizing like before

but the blocks above and below the topography depth to be marked discontinuous downwards

(32) and upwards (64), respectively.

Page 45: Bloxer_manu.pdf

45

Note that currently the vertical boundaries (horizontal size) of lithological units cannot be

resized in a similar manner. For this task one should open the lithological BNA map over the

horizontal layers and edit the geological boundaries manually.

6.7 Atlas BNA file format

Geographical information, such as coastlines, rivers, roads, and borderlines, can be read into

BLOXER and displayed over horizontal layer views and 3-D model view (see Appendices A

and B). To provide compatibility with Golden Software Surfer, BLOXER uses text based

Atlas BNA file format for the map overlays. The following example illustrates the BNA

format:

'Pname','Sname',-4

3186.8,6710.8

3187.1,6711.0

3187.1,6711.1

3187.0,6711.1

'Pname','Sname', 5

3186.8,6710.8

3187.1,6711.0

3187.1,6711.1

3187.0,6711.1

3186.8,6710.8

The example contains a line (polyline) and a polygon. As a matter of fact, they both represent

the same object, because BLOXER shows only the outline of the polygonal areas (no filled

polygons). Each object has a header line that contains two character variables, which are

normally used to identify different objects but (currently) ignored by BLOXER. The absolute

value of the parameter on the header line defines the number of (vertex) points of each line or

polygon. A negative value means that the object will be a line and a positive value means that

the object will be interpreted as a closed area (polygon, sphere or ellipse). The polygon must

be closed, so that the last vertex point is equal to the first one. The lines below the header line

contain the x (easting) and y (northing) coordinates of the points of map line segment.

Note that BLOXER works only with rectangular coordinates. Map data defined using latitude

and longitude values must first be converted into rectangular coordinates (eg. GMT2BNA

Page 46: Bloxer_manu.pdf

46

utility program). Note also that only a single BNA file can be used at a time. However,

multiple BNA files (e.g., lakes and rivers) can be combined manually using any text editor.

6.8 Graph options

Several graph parameters can be changed editing the BLOXER.DIS file. If the format of the

file should become invalid, one should delete the file and a new one with default parameter

values will be generated automatically the next time the program is started. The format of the

BLOXER.DIS file is shown below.

36 30 24 24

250 480 0.90 0.85

110. 40. 3. 0.70

1 1 0 1 0 0

3-D block model editing

Parameter

Log10(Param)

X / East

Y / North

Z / Depth

The 1.st line defines the four character heights used for 1) the main title and the graph axis

titles, 2) the axis labels, 3) the labels in the auxiliary 3-D model view, 4) and the numeric

labels of the parameter values in layer and section views.

The 2.nd line defines the 1) x (horizontal) and 2) y (vertical) distance of the origin of the

main graph (in pixels) from the bottom-left corner of the page, and the length of the 3) x

and 4) y axis relative to the size of the remaining (origin shifted) width and height of the

plot area. The total plot area is either 29702100 (landscape A4) or 21002970 pixels

(portrait A4) depending on the graph and/or the lengths of its axes. Note that the size

values can be used when reading the plot files stored in WMF format.

The four parameters on the 3.rd line define 1) horizontal and 2) vertical viewing angles and

3) a perspective viewing distance for the 3-D model view and 4) the aspect ratio for

widescreen displays.

Page 47: Bloxer_manu.pdf

47

The 4.th line defines three options: The first value defines if the parameter labels are to be

plotted to the graphs (1) or not (0). The second value defines if the grid lines of the minor-

blocks are to be plotted to the graphs (1) or not (0). The third value defines the index

number of the color scale used in the graphs: 0= rainbow, 1= reverse rainbow, 2=

grayscale, 3= reverse grayscale, and 4= temperature (red) scale. The fourth parameters

defines whether or not widescreen mode is active or not (1/0). The last two parameters are

reserved for future use.

The 5.th line should be left empty.

The following lines define various text items of the graph (max. 70 chars). These are: the

main title of the graph (not used at the moment, though), the two titles of the parameter

color scale (linear and logarithmic), and the three axis titles (x, y and z).

7. Additional information

I started to make the BLOXER program at the University of Oulu in year 2002, when I started

to work for the 3-D crustal model project funded by the Academy of Finland. The program is

written mostly in standard Fortran90 but contains some extensions of Intel Visual Fortran 11.

The user interface and the graphs are based on DISLIN graphics library (version 10) by

Helmut Michels (http://www.dislin.de). To prevent incompatibility issues, please, use the

DISLIN.DLL file included in the program distribution package.

Since the DISLIN graphics library is independent form the operating system the program can

be compiled and run on other operating systems (Solaris, Linux, MacOSX) without major

modifications. This requires that proper versions of DISLIN (and Motif) libraries have been

installed and a suitable Fortran90 compiler is available. However, the source code of

GRABLOX is not publicly available at the moment. If you find bugs or you have suggestions

for improvements, please, inform me and I will take them into consideration.

Because the BLOXER program is under development, this user guide may not describe all the

latest changes and additions made to the software. Additional information may be obtained

from Author's website at: https://wiki.oulu.fi/display/[email protected]

Page 48: Bloxer_manu.pdf

48

8. References

Pirttijärvi, M., 2009. GRABLOX2, Gravity interpretation and modeling software based on a

3-D block models, User's guide to version 2.0, University of Oulu, Department of Physics,

62 p. <https://wiki.oulu.fi/download/attachments/20678029/Grablox2_manu.pdf>

Pirttijärvi, M., 2011. PETROCK, Lithologically weighted interpolation of petrophysical data.

User's guide, Version 1.1, Department of Physics, University of Oulu, 23 p.

<https://wiki.oulu.fi/download/attachments/26053010/Petrock_guide.pdf>

9. Terms of use and disclaimer

The program is provided as is. The Author, University of Oulu and Geological Survey of

Finland disclaim all warranties, expressed or implied, with regard to this software. In no event

shall the Author, University of Oulu or Geological Survey of Finland be liable for any indirect

or consequential damages or any damages whatsoever resulting from loss of use, data or

profits, arising out of or in connection with the use or performance of this software.

10. Contact information

Markku Pirttijärvi

Department of Physics

P.O. Box 3000

FIN-90014 University of Oulu URL: https://wiki.oulu.fi/display/[email protected]

Finland E-mail: markku.pirttijarvi(at)oulu.fi

Page 49: Bloxer_manu.pdf

49

Appendix A: 3-D view with layer view

Example of a 3-D view of the block model in the xyz coordinate system. The 3-D view shows

the 5.th layer (above the Moho depth) of the Finnish density model. Note that the mean depth

defined in the title (30 km) is that of the top of the 5.th layer. The 3-D view does not contain

any color scale and it does not utilize hidden line removal. The vertical scale is exaggerated

2,5 times. Boundary (*.BNA) file defining the geological map units (scale 1:10 million) as

well as the borders, coastline and islands of Finland is laid over the view.

Page 50: Bloxer_manu.pdf

50

Appendix B: Layer view

Example of 2-D layer view plotted as color-filled contour map. The model is the same as in

Appendix A. The (rainbow) color scale ranges between 2.60 to 2.77 (g/cm3), where blue color

denotes small parameter values. The plot labels mark original density values (g/m3) multiplied

by 1000 (kg/m3). Boundary (*.BNA) file defining the geological map units (scale 1:10

million) as well as the borders, coastline and islands of Finland is laid over the view. Note

that BLOXER does not display any units for the coordinates and parameters.

Page 51: Bloxer_manu.pdf

51

Appendix C: Section view

Example of a 2-D vertical cross-section plotted as an image map with visible grid lines

between block elements. The model is the same model as in Appendices A and B. The

Y-section runs along the x coordinate 3412.5 (units) showing the 13.th slice. The dotted line

in the auxiliary 3-D view shows the position of the Y-section. The model uses alternative

block height method, where the height increases downwards by the height of the topmost

block. The boundary between the 5.th and 6.th layer defines (Moho) topography and the

bottom (6.th) layer is hidden. The vertical scale is exaggerated 2,5 times.

Page 52: Bloxer_manu.pdf

52

Appendix D: Reduced model

The figure shows a 2-D horizontal layer of an irregular reduced block model. The original

model is the same model as in Appendices A, B and C. The neighboring cells having (almost)

the same parameter value have been combined to form an irregular mesh. The original model

consists of 5616 blocks of size 2525 km. The reduced model contains only 3291 blocks

indicating about 40% reduction (also in the computation time). The block reduction has been

made layer-wise (not in 3-D). The vertical scale is exaggerated by 4:1.

Page 53: Bloxer_manu.pdf

53

Appendix E: Two-layer model

The figure shows a 2-D vertical cross-section of an irregular two-layer block model. The

strike length of the 2.5-D model is ±1500 m (along y axis). By keeping the density contrast

(2.1:2.7 g/cm3) fixed during the inversion the boundary between the 1.st and the 2.nd layer

has been optimized using the GRABLOX v.1.6. The model has no topography but it could be

easily set based on original data z coordinates when creating the initial model in GRABLOX.

Although they are not visible, margin bloxk have been added to the model so that the density

contrast between the background and the first layer would not generate a gravity "jump" at the

side of the model. See GRABLOX manual for more information about two-layer

interpretation.

Page 54: Bloxer_manu.pdf

54

Appendix F: 3-D view & layer

The figure shows a 3-D volumetric view with a horizontal layer at the bottom. The (rainbow)

color scale has been set according to the min/max values between 2.607 to 2.798 (g/cm3). The

volumetric view shows values less than 24% and greater than 56% of the color scale. The

corresponding parameter values are 2.653 and 2.714 (g/cm3) that can be computed using

formula (2.607+x%*(2.798-2.607)/100%). The BNA-file corresponds to the geological map

of Finland (scale 1:10 million) of Geological Survey of Finland. The 3-D view always shows

either a layer (default), X- or Y-section depending what was previously viewed. Pressing the

3D view button would rotate the layer or section to the next or previous one depending on the

current swap direction.