Skip to content
Snippets Groups Projects
Select Git revision
  • 08630a8d08fbed8b0a3c05eb4d590eb7a4fe8724
  • devel default protected
  • master protected
  • working-default
4 results

voxels.md

Blame
  • user avatar
    Denis Anikiev authored
    995ce761
    History

    Voxels

    ???+ tip "What is a voxel?" A voxel, short for "volumetric pixel," is a three-dimensional pixel element used to represent a value on a regular grid in three-dimensional space. Similar to how a pixel represents a point or an area in a two-dimensional image, a voxel represents a point or a volume element in a three-dimensional space, typically in the context of computer graphics, medical imaging and scientific visualization. Each voxel contains information about properties such as color, density, texture, or other attributes, depending on the application. Voxel-based representations are commonly used in various fields for tasks like modeling, simulation, analysis, and rendering of three-dimensional data.

    The use of voxels is related to the topic of parameter (density/susceptibility) variations. In IGMAS+, a voxel cube is a cube consisting of many sub cubes, or voxels. The size of the cube as well as the size of the voxel can be specified by the user.

    ???+ note Strictly speaking, "cube" is not a correct term here, parallelepiped is the appropriate one. We use cube for historical reasons and simplicity.

    For example, think of a velocity cube in 3D seismic. Quite analogously, the 3D density (or susceptibility) cube is used in IGMAS+. The densities in the voxel cube overlay the densities of the polyhedra/rock bodies in the three-dimensional modeling space. A typical application would be to define a depth-depending or laterally changing density function to a sedimentary body, as shown in the figure below: the grey colors indicate varying densities for the underlying rock density.

    The voxel functionality may also be used to calculate the anomalies of an imported seismic velocity cube, applying a function for the conversion of velocities (normally Vp) into densities. If only the effect of an imported voxel cube has to be calculated, the simplest IGMAS++ model, a cube, might be defined with constant density ρ = 0. Refer to the following figure for basic information and to the IGMAS+ User Manual page 104.

    Import a voxel cube

    ???+ note Only one voxel cube can be loaded in a current modeling. Any existing voxel cube must be deleted beforehand (see Delete a voxel cube).

    Select File in the “TITLE BAR” > click Import > select VoxelCube > click with left mouse button on it.

    Navigate in the new “Open” window to the directory where the file with the voxel cube is stored.

    IGMAS+ provides several possibilities for navigation by the small icons at the right side of the directory pull down menu:

    These icons allow the user to do the following – goto/show:

    • Up on level -
    • Home
    • Create new folder
    • List

    Details:

    Of course, you can also navigate to the desired directory with the ▼ next to the folder name; see next figure.

    The “Open” window provides important information and enable the user to check the input data:

    Most important: Does your voxel file have the extension “xxx.vxo”? If not, rename file before you continue!

    Units: Also important and often neglected Ensure that units of voxel positions (x,y,z = depth) correspond to units of polyhedrons (either in meter or kilometers > or feet). Select units in the pull-down menu “units” on the upper right of the “Open” window.

    Leave all other settings as they are: for “Acceleration” (gravity field), “Gravity Gradient” and/or Magnetic Field.

    In the next menu item of the OPEN window, the user decides how to proceed with any unoccupied voxel cube elements. The default action is "Fill empty cells with nodata value". This means that IGMAS+ inserts numbers with unrealistically high values (e.g. 1039) at the corresponding positions in the cube. If the alternative "Use interpolation to fill empty cells" is selected, corresponding values in the cube are interpolated.

    The use of a CSV setting is strongly suggested. The separation of the values is indicated with "blank" in the example. In the following it is still determined whether a header is placed ahead of the data of the voxel file ("Interprete Header") and/or whether the cube values are separated with quotes ("use Quote for Values").

    A few lines of the voxel cube input is given as an example for visual inspection.

    The columns contain from left to right: x-, y- and z-values (depths) of the voxel elements; note the direction of Z: it is negative downwards . The last column shows densities of voxel cube elements.

    Here all lengths are given in km!!! Click on “km” to select the correct unit.

    Otherwise, the data in the voxelcube file will be read in meters, with the consequence that the size of the voxelcube does not match the size of the density model: the voxelcube becomes too small by a factor of 1000 per unit length.

    If all input boxes are filled in, click on Open with the left mouse button.

    You get the window and sect “Density type” for gravity modelling and “Susceptibility type” for magnetic modelling; click “Next”:

    You get the window “Model Voxellisation” which contains further specifications regarding the use of the voxelcube in the context of combined Polyeder/Voxelcube - modeling. In the following INSET we explain the resulting possibilities for a correct 3D modeling.

    INSET VOXELISATION

    The Voxelisation is an important part of modeling with IGMAS+ and is quite different from other software packages > for modeling potential fields. For example, it is possible to realize very elegantly 3D density changes with depth (for example by compaction). The Voxelization function allows the user to take over a seismic velocity cube 1:1, whose velocities (Vp) in densities are performed by means of self-created or predefined functions in the software.

    We start with a textbook example which was elaborated by Sabine Schmidt (February 15, 2023):

    On the right side of the above figure, a density distribution is given in t/m3 (2.6 - 2.4 - 2.8). This corresponds to reality (blue, Real world). The middle figure shows the modeling conducted for this purpose (yellow, Model: Polyeder). We recognize that the density distribution with 2.9 was modeled at a lower depth - thus outlining a deviation from reality. This deviation can be corrected by blending a voxelcube model with the polyhedron model. This could have been determined from independent measurements and contains the densities 2.4 - 2.6 - 2.4 -2.8).

    IGMAS+ allows the user to blend the voxelcube and polyhedron model with a special input function. The voxel function is called:

    *** "cellvalue - density" ***

    and corresponds to the import of a voxelcube with density differences, which, however, are determined by the software > independently of the user.

    In the voxelcube domain, the "effective" densities are then obtained from the superposition of the polyhedron and voxelcube models: the left side shows the difference formation, the right side the superposition of both for the two models.

    The superimposed density model has the same effect as the "real world" density model. We call this "hybrid modeling" and take advantage of the fact that the total density of all masses corresponds to the superposition principle. By dimensioning the voxel size, extremely fine tuning can be achieved within the 3D density model. The computation of millions of voxels is possible without lasting disturbance of the interactive processing or very long computation time.

    Let's move back to the description of the voxelcube input (voxelization window).

    The window for Model Voxelisation

    For all geological bodies, special procedures for the use of the voxel cube can be defined here. Of course, this is only the case where the voxelcube covers the polyhedra. If this is the case, minus density can be entered directly after "cellvalue"; cellvalue contains the density element of the voxelcube element:

    When entering a function, the user is supported by operators, mathematical functions, and the definition of constants.

    It is also possible to use pre-defined functions (to convert velocities into densities such as the Gardener and/or Nafe & Drake - relations . These are provided for dimensioning the model in "meters/second" or "kilometers/seconds" and are used for the conversion of seismic velocity models into density models. Click the three small dots.

    It is also possible to formulate your own conversions and calculations using the instructions provided.

    In the lower part of the voxelization window there are still three input possibilities to be explained:

    (1) Equation Settings, (2) Unit and (3)

    (1) Equation Settings allows the definition of a voxel function for

    A L L geological bodies in the model. This is only useful if the voxelcube really covers all bodies.

    (2) Unit: Here the units for the voxelcube densities are defined. Attention: the definition must not be forgotten, otherwise the model gravity field will not be calculated correctly.

    (3) Here all those bodies can be hidden altogether (or switched on again), which are not covered by the voxelcube.

    When all is defined**,** click FINISH

    Modification of voxel cube functions

    Regardless of the equation specified when importing the voxel (refer to the explanations before), the original cellvalue is always saved and can be changed manually for each body independently later.

    Select in Interfaces of the OBJECT TREE the body whose the cellvalue function should be changed (29_Mantle in the example) and click:

    In the PROPERTY EDITOR body 29 is displayed with the

    Body name

    Voxel equation: cellvalue-density. If the user will change this function, click on the three small dots and an other window for the new input will be opened. If you like, change cellvalue by the definition as before.

    Export a voxel cube

    Select File in the “TITLE BAR” > click Export > select VoxelCube > click with left mouse button on it.

    In the Save window select the folder where the voxel cube will be stored under the user specified file name. Press “save” .

    Delete a voxel cube

    If you want to delete a voxel cube or replace it with a new (updated) one, click with the right mouse button on the letters of "VoxelCube" in the "OBJECT TREE": the "Remove" window opens. Click with the left mouse button in the window and the voxel cube will be deleted from the model visualization (Screen).

    Important:

    However, the gravity effect of the voxel cube is not yet eliminated from the overall gravity field of the model. The next section explains how to delete the gravity effect of the voxel cube from the modeled gravity field. See the section "Use/invert Cube anomaly" at the end.

    Voxel cube effects and their visualization

    Information about the voxel cube can be obtained by clicking on "VoxelCube" in the "OBJECT TREE" and then activating the PROPERTY EDITOR (window at the bottom left). Click on VoxelCube then you see this screen:

    The window shows the name of the used voxel field (in light grey). The “Transparency” slider controls the transparency of the voxel cube in the “WORKSPACE WINDOW”.

    • Cube Type” indicates either a density or susceptibility voxel cube.

    • Algorithm” provides information on the calculation of voxel cube effects. In the example above a Newton Fast Fourier (Newton FFT) method is set calculating on multi cores. This is a fast and normal procedure. More information/other methos are available if you press the three small dots right of “Algorithm”. The “Voxel algorithm Wizard” opens:

    We read that a CPU multicore implementation is active and the (gravity) effects of mass points are calculated in the wave number domain (FFT).

    Again, this is a fast method to calculate the gravity effects. Other methos are also available after clicking the pull-down menu “Algorithm”:

    • Newton mass points calculation by OpenCL or
    • Prism calculation (both multicore and OpenCL) or
    • Gauss Quadrature (both multicore and OpenCL) even
    • Spherical Newton mass point calculations are available if calculations are spherically done.

    One can also extend the FFT grid.

    If you click in the “Voxel algorithm Wizard” on the item “Interpolation Type” (Refer to the last image, left side) the types of interpolation are listed. An interpolation is necessary to transfer the calculated values at the FFT nodes to the measuring stations.

    There are three methods to choose from:

    • Kernel (3x3) Mundry interpolation,
    • Nearest neighbor and
    • Kernel (3x3) average interpolation.

    Kernel (3x3) Mundry interpolation is robust and reliable.

    If stations are located in a constant height, click on “Use Constant Station Elevation”.

    Click “Finish”

    Activate “VoxelCube” and go to the “PROPERTY EDITOR

    The item “Use/invert Cube anomaly” in the PROPERTY EDITOR plays an important role. If it is “true”:

    the gravity effects of the voxel cube and the polyhedrons are calculated at all stations; if it is “false”:

    And the gravity of the polyhedrons will be calculated without the effect of the voxel file.