A Hierarchical, Extendable, Object-Based Boolean Training ...

28
SCRF 2009 A Hierarchical, Extendable, Object-Based Boolean Training-Image Generation Methodology Alexandre Boucher Addy Satija

Transcript of A Hierarchical, Extendable, Object-Based Boolean Training ...

Page 1: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

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

Methodology

Alexandre Boucher

Addy Satija

Page 2: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Outline

Design and architecture

Building geological objects

Spatial interactions of depo-shapes

XML Parameterization

Page 3: A Hierarchical, Extendable, Object-Based Boolean Training ...

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)

Page 4: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 5: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Design

Extent, form, configuration of an objectGeometry

Positioning Control the interactions between depo-shapes

Three categories of modules:

Page 6: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 7: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 8: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 9: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009Gaussian Kernels

Building complex Shape

Union : 6 rotated and translated kernels1 Sphere

Exponential Kernels

Page 10: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 11: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 12: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 13: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 14: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 15: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 16: A Hierarchical, Extendable, Object-Based Boolean Training ...

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 :

Page 17: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 18: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 19: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 20: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Stacking in section

Intra-mound structures

Inter-mound structures (Stacking and positioning)

Page 21: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Generating multiple training images

Page 22: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 23: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Stopping Criterion

StoppingCriterion

ProportionCount

Objective function to stop the simulation

Proportion of Level2 objects

Number of Level2 objects

Page 24: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 25: A Hierarchical, Extendable, Object-Based Boolean Training ...

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

Page 26: A Hierarchical, Extendable, Object-Based Boolean Training ...

SCRF 2009

Next

User interface

Expand shape library

Codify common inter-Level 2 interactionsAttachment

Check for parameter inconsistencies

Utilities program (shape maker)

Page 27: A Hierarchical, Extendable, Object-Based Boolean Training ...

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)

Page 28: A Hierarchical, Extendable, Object-Based Boolean Training ...

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