A Hierarchical, Extendable, Object-Based Boolean Training

Preview:

Citation preview

SCRF 2009

A Hierarchical, Extendable, Object-Based Boolean Training-Image Generation

Methodology

Alexandre Boucher

Addy Satija

SCRF 2009

Outline

Design and architecture

Building geological objects

Spatial interactions of depo-shapes

XML Parameterization

SCRF 2009

Design Constraints

Expandable and Flexible

Aim:• Allow parameterization of complex geometries and rules• Strong core algorithm with expandable libraries• Mix and match modules (combinatorial possibilities)

Avoid: • Long procedural algorithm (no long list of if - else)• Code repetition (difficult to maintain)

SCRF 2009

Agreed Hierarchy

Level 1 : Zone of deposition Very large scale Not to be simulated with MPS

Level 2 : Geological object or set of objectse.g. Carbonate mound, channel and levees

Level 3 : Building blocks of Level 2e.g. Sphere, ellipsoid, cuboid, ...

Non-geological terms to avoid confusion

e.g. Level 2 may not mean the same for clastic or carbonate systems

SCRF 2009

Design

Extent, form, configuration of an objectGeometry

Positioning Control the interactions between depo-shapes

Three categories of modules:

SCRF 2009

Modules :: Geometries

depoShape: Represent a geological object

e.g. carbonate mound

Modules to build the Geological Objects

A depoShape is built from geometrical objects (Shape)

Shapes

EllipsoidHalf-Ellipsoid Cuboid Kernel

Radial Kernel

SCRF 2009

set< Coordinates >

Coordinates are stored in a set :

where Coordinates = { i, j, k } is a triplet

Module :: Shape

Operations on Coordinates:

shear( dx/dz, dy/dz )

rotate( az, ax, ay )

translate( dx, dy, dz )

Operations between Shapes:

difference( Shape )

merge( Shape )

intersection( Shape )

Needed: A library of shapesA mechanism to create new shapes

A shape is a set of relative coordinates (i,j,k) from a centroid

No geological meaning

SCRF 2009

XML Parameterization of Shape<ShapeManager name = "Union">

<ShapeManager name="HalfEllipsoid"><Dimension>

<dx> Parameters </dx><dy> Parameters </dy><dz> Parameters </dz>

</Dimension><Shear>

<dx_dz> Parameters </dx_dz><dy_dz> Parameters </dy_dz>

</Shear></ShapeManager>

<ShapeManager name=“Cuboid"><Dimension>

<dx> Parameters </dx><dy> Parameters </dy><dz> Parameters </dz>

</Dimension><Translation>

<dx> Parameters </dx><dz> Parameters </dz>

</Translation></ShapeManager>

</ShapeManager>

There are no restrictions on the complexity of the shape builder

ShapeOperation 1

ShapeOperation 2Shape Mgr 1 Shape Mgr 2

Shape Mgr 3 ShapeOperation 3

Shape Mgr 4 Shape Mgr 5

SCRF 2009Gaussian Kernels

Building complex Shape

Union : 6 rotated and translated kernels1 Sphere

Exponential Kernels

SCRF 2009

Creating a Geological Object (Level 2)

inner = HalfEllipsoid( 20,20,20 ) outer = HalfEllipsoid( 30,30,15 )

inner.intersection( outer ) outer.difference( inner )

Resulting depoShape

SCRF 2009

Building Level2 Object from shapes

<Level2Manager name = "Jurassic">

<L3Object name="Inner" value="1" file="InnerShapeJurassic.xml"/> <L3Object name="Outer" value="2" file="OuterShapeJurassic.xml"/>

<operationLevel2 type="Intersection" modifiable = "Inner" modifiers = "Outer"/><operationLevel2 type="Difference" modifiable = "Outer" modifiers = "Inner"/>

…</Level2Manager >

<Level2Manager name = “Permian">

<L3Object name="Inner" value="3" file="InnerShapePermian.xml"/> <L3Object name="Outer" value="4" file="InnerShapePermian.xml"/>

<operationLevel2 type="Difference " modifiable = "Outer" modifiers = "Inner"/> ...

</Level2Manager >

A XML file contains the operations to assemble the Level2 Objects from the shape objects

SCRF 2009

depoShape :: Asymmetrical mound with drapes

inner = HalfEllipsoid( 10, 25, 40 )outer = HalfEllipsoid( 30, 30, 35 )inner.shear( 0,0.3 )outer.shear( 0,0.5 )

// Create the Drapesdrapes_top = HalfEllipsoid( 40, 40, 15 )drapes_bot = HalfEllipsoid( 35, 35, 9 )drapes.shear(0,0.5)drapes_bot.shear(0,0.5)drapes.difference(drapes_bot)

inner.intersection( outer ) // Constraint by the envelopeouter.difference( inner ) // Remove the core from the envelopedrapes.difference( inner ) // Remove the core from the drapeouter.difference( drapes ) // Remove the drape from the envelope

SCRF 2009

depoShape :: Faulted and Tilted Mound

// Create one Mound : inner and outerinner.shear( -0.2,-0.5 )outer.shear( -0.2,-0.5 )

// Create two Cuboids to partition the Moundinner_faulted = Cuboid( 80,80,50 ) // Partition innerouter_faulted = Cuboid( 80,80,50 ) // Partition outer

inner_faulted.translate( 50,0,25 )inner_faulted.translate( 50,0,25 )

inner_faulted.intersection( inner )outer_faulted.intersection( outer )

inner.difference( inner_faulted )outer.difference( outer_faulted )

inner_faulted.rotate( 0,20,0 ) // tiltouter_faulted.rotate( 0,20, 0 ) // tiltinner_faulted.translate( 0,7,5 ) // throwouter_faulted.translate( 0,7,5 ) // throw

SCRF 2009

Parameterization of the depoShape

Every parameter can be defined as constant or a distribution

Parameter values can be either constant or taken from a locally varying property (LVP)

Include :

Dimension of objectsShearing, rotation, translationMoments of distributions

SCRF 2009

Modules :: GeometryShape library is expandable

The intra and inter-shape operations provide flexibility

Adding new shapes only requires a new set of coordinatesOperations (shear, rotation, union, …) are automatically

available

Level2Manager assembles Level3Object to create geological objects

From a user’s perspective:

When geological objects are variations on a set of shapes (e.g mound) :User only needs to provide the dimensions

For objects without common shapes:Build complex shapes from existing onesUser-defined shapes

SCRF 2009

Spatially variable correlated parameters

-45 0 45

Angles

0.6-0.6 0

Shear

10 15 20

Outer Envelope Size

190 10

Inner Core Size

Steeper angles:Increased shearingDecreasing outer envelopeRapidly decreasing core size

Anticline example :

SCRF 2009

Carbonate mounds on a anticline

Mound Inner part function of the slope

MPS implications : Cannot be solved with a probability fieldGeometric characteristics are spatially dependent

Steeper angles:Increased shearingDecreasing outer envelopeRapidly decreasing core size

SCRF 2009

Building complex inner structuresMimic the building of a carbonate mound through phases of accretion

Flanks are debrissteeper at the

summit gentler at the base

Built stochastically from 8 shapes and 12 operations

Structure is saved in a XML file

SCRF 2009

Positioning and Stacking<positioning type="pFieldStacking" prop="MoundPositioning">

<dx> <Params name="Property" value="dxStack"/> </dx><dy> <Params name="Property" value="dyStack"/> </dy><dz> <Params name="Constant" value="18"/> </dz><nbStacks> <Params name="Property" value="y-trend_stack"/>

</nbStacks></positioning>

Intensity Field

SCRF 2009

Stacking in section

Intra-mound structures

Inter-mound structures (Stacking and positioning)

SCRF 2009

Generating multiple training images

SCRF 2009

Challenges with Locally Varying Parameters

Complexity and specificity are introduced through LVPConsider the geological settings

Every parameter can be locally variableKriging/Simulation are options to generate LVP

Danger of conflicting inputs

Need geologist involvement

SCRF 2009

Stopping Criterion

StoppingCriterion

ProportionCount

Objective function to stop the simulation

Proportion of Level2 objects

Number of Level2 objects

SCRF 2009

Positioning

Position the Level2 objects on the grid

IntensityRandom

Stacking Specialization

Stacker Attacher

AttachmentSpecialization

First level is independent of L2 objects: re-usable

Positioning

SCRF 2009

User perspective

User is shielded from the design

However they need to:Provide Level2 and Level3 parameterizationGenerate locally varying parameters (LVP)

Information from database and local knowledge

When the available shapes/rules are not sufficient:new Positioning classes and/ornew Shape classes and/ormodify the user interface

SCRF 2009

Next

User interface

Expand shape library

Codify common inter-Level 2 interactionsAttachment

Check for parameter inconsistencies

Utilities program (shape maker)

SCRF 2009

depoShape :: Stacked Mound

// Create Mound1 : inner1 and outer1inner1.shear(-0.2,-0.5) outer1.shear(-0.2,-0.5)

// Create Mound2 : inner2 and outer2inner2.shear(-0.5,-0.5)outer2.shear(-0.5,-0.5)inner2.translate(10,10,12)outer2.translate(10,10,12)

// Create Mound3 : inner3 and outer3inner3.translate(5,5,20)outer3.translate(5,5,20)

SCRF 2009

Module :: Geometry :: Shape

• A shape is a set of relative coordinates (i,j,k) from a centroid

• Geometrical transformations are possible: shear, rotation, …

• Union, intersection and difference operations are possible between

Shape objects

• A shape can be parametric or not

• No geological meaning

Needed: A library of shapesA mechanism to create new shapes

Recommended