Block Models
Block models are three dimensional models made up of smaller units called Blocks.
There are two types of block model in the Maptek Python SDK: DenseBlockModel
and SubblockedBlockModel
.
A DenseBlockModel
is a block model where all blocks are the same size. Once you create a DenseBlockModel
, you cannot change its dimensions.
A SubblockedBlockModel
is a block model where the size of blocks varies. A SubblockedBlockModel contains parent blocks and subblocks.
Parent blocks
Parent blocks are defined when the model is created and cannot be changed once they are defined. They are based on the parameters passed to the constructor and are arranged into rows, columns and slices. All parent blocks in a block model are of the same size.
In a SubblockedBlockModel
, each parent block can be split into multiple subblocks that fill its volume. A parent block can also contain no subblocks. A parent block with no subblocks indicates either there is nothing of interest within its volume, or what is within its volume is unknown.
Subblocks
Subblocks are smaller blocks or “child” blocks within a parent block. Note the following properties of subblocks:
-
Subblocks can be added and deleted from the model after it is created.
-
Subblocks can have different sizes.
-
Subblocks must be equal in size or smaller than the primary blocks of the model.
-
There can be multiple subblocks within one primary block.
-
If a primary block contains subblocks, they should completely fill the volume of the primary block.
-
Block attributes have one value for each subblock.
-
Subblocks which are not inside the model extent do not appear when the model is viewed.
When to use a DenseBlockModel
Consider the following scenario:
What would you do if you wanted to generate a block model for data with the following properties?
-
90% of the volume in the model extent requires block properties to be stored at one value for each 0.25 cubic metres.
-
5% of the volume in the model extent contains nothing of interest (e.g. they are air above the area being modelled).
-
5% of the volume in the model extent requires block properties to be stored at one value for each 1 cubic metre.
In this scenario, we would choose to represent the data using a DenseBlockModel
. SubblockedBlockModel
s are only preferable if areas of high detail are relatively rare, allowing for the primary blocks to be larger. If areas of higher detail are common, the simpler DenseBlockModel
provides simpler models.
When to use a SubblockedBlockModel
Consider the following scenario:
What would you do if you wanted to generate a block model for data with the following properties?
-
10% of the volume requires block properties to be stored at one value per 0.25 cubic metres.
-
20% of the volume contains nothing of interest (e.g. air above the area being modelled).
-
70% of the volume in the model extent requires block properties to be stored at one value for each 1 cubic metre.
In this scenario, we would use a SubblockedBlockModel
to represent the data. This would allow high detail to be stored in areas of interest and low detail to be stored elsewhere without compromising file size.