A Hierarchical, Extendable, Object-Based Boolean Training ...
Transcript of A Hierarchical, Extendable, Object-Based Boolean Training ...
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