Você está na página 1de 34

Introduction to ArcGIS and Geomodeling with

GOCAD
c Marcus

Apel & Peggy Hielscher

Geoscience Mathematics and Informatics,


Freiberg University of Mining and Technology, Germany

Contents
1 Fundamental Concepts

2 General Features

3 PointsSet and General Object Features

1.1 Discrete Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


1.2 Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Discrete Smooth Interpolation (DSI) . . . . . . . . . . . . . . . . . . . . . .
2.1 User Interface Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 General Terms and Features . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Project Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4

Data Import . . . . .
Properties . . . . . .
Regions . . . . . . . .
Property Script . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

3
4
5

6
7
8

. 9
. 10
. 10
. 11

4 Curves

11

4.1 Curve Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


4.2 Digitizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Surfaces
5.1
5.2
5.3
5.4
5.5
5.6

New Surface with Direct Triangulation . . . . . . . . . . . . . .


New Surface with Discrete Smooth Interpolation . . . . . . . . .
Adapting a Surface to Honor Well or Point Data . . . . . . . . .
Draping Images on Surfaces . . . . . . . . . . . . . . . . . . . . .
Surface Topology . . . . . . . . . . . . . . . . . . . . . . . . . . .
Y - Fault from Various Data . . . . . . . . . . . . . . . . . . . . .
5.6.1 Import of Elevation Points and Outcrop Sampling Points
5.6.2 Working with Orientation Data . . . . . . . . . . . . . . .
5.6.3 Import of Well Data . . . . . . . . . . . . . . . . . . . . .
5.6.4 Georeferencing a Seismic Section Voxet . . . . . . . . . .
5.6.5 Model Building. . . . . . . . . . . . . . . . . . . . . . . .

6 SGrids

6.1 SGrid from Well Markers and Porosity Log . . . . .


6.2 Working with SGrid Regions . . . . . . . . . . . . .
6.2.1 Create a SGrid Region from Property Range
6.2.2 Create a SGrid Region from Surface . . . . .
6.3 Creation of SGrids Between Multiple Surfaces . . . .

7 Introduction into ArcGIS

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

7.1 Basic Principles . . . . . . . . . . . . . . . . . . . . . . . . . .


7.2 Exercise: Modelling of the Matterhorn in Switzerland - Data
in ArcGIS and Modelling in Gocad . . . . . . . . . . . . . . .
7.2.1 Georeferencing of Raster Datasets . . . . . . . . . . .
7.3 Digitizing of Contour Lines . . . . . . . . . . . . . . . . . . .
7.4 Data Export to Gocad . . . . . . . . . . . . . . . . . . . . . .
1

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. . . . . . . .
Preparation
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

13

13
14
15
15
16
16
16
17
18
19
20

22

22
23
23
24
25

26
26

27
28
30
31

A Calculation of Georeferencing Parameters

32

Fundamental Concepts

Geometry and properties of geological objects are accurately only known at certain sampling locations and have to be interpolated, estimated or simulated for the remaining
object. Following Jean-Laurent Mallet, "Geomodeling consists of the set of mathematical
and computer science methods allowing to model in an unied way the topology, the geometry and the properties of geological objects while taking into account any type of data
related to these objects".
This implies, that a modeling geologist has to
1. subdivide the volume of interest into a set of geoobjects according to the project
motivation, like a set of fault blocks, horizons, reservoirs, ore bodies . . . .
2. compile all data related to these geoobjects in order to constrain the topology, geometry and properties in an optimum way. Such data can be of heterogeneous type,
certainty, and spatial distribution.
3. use appropriate methods to create self-consistent 3d geomodels composed of geoobjects. These need to honor available data. Examples are interpolation, estimation
and simulation methods.
1.1

Discrete Model

In order to store spatial data and geoobjects in a computer, a discrete data model is
required. Discrete geoobject representation is based on regular or irregular tessellations to
model the spatial extent of geoobjects using surface partitions or volume partitions.

Figure 1: Discretization of the Model Space into Regions Corresponding to Geoobjects


(Model3d, left), and Discretization of a Geoobject into 3d Cells (SGrid, right)

Discrete topological model. The Boundary Representation (BRep) approach models

the spatial extent of geoobjects by a discretization of their boundary. Using this technique,
the geological space can be partitioned into regions. The radial edge Weiler representation
implemented in Gocad Model3d objects maintains a hierarchy of topological elements.
Each level of the hierarchy corresponds to various stages of the discretization process as
one moves from a geomodel down to a mesh with its associated numerical properties. The
abstraction hierarchy is comprised by the following models:
1. discrete model (geometry and property model).
2. discrete topological model. It is composed of
3. volume region decomposition
3

4. face decomposition
5. border decomposition
6. triangulated mesh

Discrete model. A discrete model stores besides the topological information the geom-

etry, constraints, and properties. In Gocad, such information is stored at the nodes of
Model3d, Surfaces, Solids, Curves, or PointsSets objects. By denition, a discrete model
M n (, N, , C) consists of a graph G(, Ni ) dening the topological neighborhood Ni of
the set of nodes , vectorial functions v dening the geometry and properties of each
node a set of linear constraints Ci , which can be chosen and weighted in order to let v
honor data and geological concepts.
1.2

Data Model

The most primitive model object available is the PointsSet, which is composed of a set of
points which possess properties such as geometry (XYZ coordinates) and arbitrary vectorial
properties. Curves are nodes which are connected by linear Segments. Each Node has
two or one (in the case of an extremity) neighbor nodes. Curve objects can be composed
of a set of isolated Curve Parts.

Triangulated Surfaces are most important for modeling geological boundary surfaces.

Between a set of connected nodes planar triangles are interpolated. A Surface object is
composed of a set of isolated Parts (faces). Parts possess topological features like Border
(boundary) and BorderStones. From a set of intersecting Surface Parts a sealed Model3d
(BRep model) can be built. The geometrical and property information of Surfaces is stored
at the points.

Solids are composed of connected tetrahedra. That way a volume region which represents

a geoobject can be discretized which allows to model properties in 3d volumes. Again, the
properties are stored at the nodes and interpolated between them. SGrids and Voxets
are regular grids. Numerical properties can be carried by the cell nodes or the cell center.
SGrids can be deformed and cut in order to ll the volume region of a geoobject. Such
curvilinear SGrids are commonly used for property modeling in geoobjects, like hydrocarbon reservoirs. Parallelepipedic Voxets are similar to SGrids and often used for property
modeling in gross volumes, like seismic cubes.

1.3

Discrete Smooth Interpolation (DSI)

In order to create geomodels which honor available data, a unique interpolation method is
available in Gocad named discrete smooth interpolation. This method allows to interpolate
the functions of the discrete model, like geometry or properties, while honoring a set of
constraints Ci . Several kinds of constraints can be distinguished. So-called hard equality
constraints are Control Nodes, which are not allowed to move. Soft equality constraints
are Control Points, these are nodes of another object which should be honored in a least
squares sense. Other possible constraints are for example vectorial links between nodes,
range constraints, gradient constraints. The DSI algorithms converges towards a solution
R () =

() R(|) + ( $)

$c (|c)

(1)

cC '

where, R(|) is the local roughness at node , (|) is a constraint dened for node ,
is a stiness coecient, and $c , $ are weight coecients. This generic method allows the
usage of heterogeneous data as constraints for the interpolation. It is always reproducible,
on what primary data an interpolated object is based on. In Gocad, a comprehensive
5

set of constraints are implemented. Simultaneously, DSI guarantees that the interpolation
result, is as smooth as possible.

General Features

2.1

User Interface Layout

Figure 2: Gocad User Interface


The User interface is subdivided into the following areas:
1. Main Menu Bar - data load and save, general settings, general data management,
data analysis applications, help access
2. Command Menu Bar - used for object creation; topology, geometry and property
editing, interpolation and computations. Upon start-up, the bar appears in General
Mode, which can be changed to particular object modes (Surface Mode etc.) with
respective functionality.
3. Digitization Selection Bar and Digitization Editing Bar
4. Camera Settings Bar - Here you can setup the camera position, AutoSetup will
direct the camera towards all selected objects. The dialog at the very right (default
value: "1") allows to scale the Z-Axis for vertical exaggeration.
5. Panel Selection Panel - for Panel 6, chose between Workow Panels, Object Panel,
Attribute Panel, or Camera Settings Panel
6. Object Panel - list tree of all loaded objects and resources. By opening the tree,
object properties and regions can be acccessed .Using the RMB, context menues
allow to access the attributes, apply scripts, create new objects or properties, and
more.
7. 3d Camera - shows the objects select in in the Object Panel in a cartesian coordinate
system; manipulation: LMB - spin, MMB - pan, RMB - zoom. If the Camera
Controller Panel is activated using the Panel Selection Panel (5), Camera settings
6

can be changed like the increment of spin/pan/zoom actions carried out using the
arrow keys (pan), numerical keys 2,4,6,8 (orbit) or numerical keys 2,4,6,8 and "+"
(zoom) of your keyboard. Also in this panel, selected objects can be ltered according
to many criteria.
8. Camera Tools - pick objects in the camera and get their properties or attributes;
slicer
9. Attribute Quick Edit Bar - depending on the currently highlighted object in
the Object Panel (6), this bar dynamically changes and allows to set the objects
graphical attributes. General hint: many command actions correspond to standards:
drag&drop, multiple selections of objects in the camera or dialogs: Ctrl or Shift key,
undo: Ctrl-Z, save: Ctrl-S, repeat command: Space.
2.2

General Terms and Features

Attribute: Attributes include all graphical properties of objects, like color.


Coordinate System: Geometrical data are represented in a cartesian coordinate system,

like UTM. The units and the direction of the Z axis (vertical up or down) can be specied
in the start-up project specication dialog. Objects can be represented in time or depth.
Command History: Somewhat hidden is the log of all Gocad commands executed in
your session, it appear when clicking on the small triangle symbol left above the Attribute
Quick Edit Bar. The history is also stored in the le "history.gsc" in the current project
directory.
Node, Point, Atom: From a user perspective there is no dierence, we will refer to
them as Nodes if we deal with topological objects and as Points if we deal with PointsSets
(Node stores topology, Point stores geometry, Atom is derived from them and stores it all:
topology, geometry and constraints.
Objects represent geological objects and input data, like PointsSets, Curves, Surfaces,
SGrids, and Wells. Objects can possess numerical and geological properties and subregions. Each object has an unique name (without whitespaces). The property at a point
can be picked using the "XYZ?" icon in the Camera Tool Bar (8). The result appears in
the status bar.
Operating system and Plugin development: Gocad is programmed in ANSI C++
and allows to develop custom plugins. As a widget library for user interfaces Qt is used
(www.trolltech.com). Thus Gocad is available for dierent OS: MS Windows, Linux (PC),
Irix, Solaris.
OK-Apply-Cancel Buttons: Note that OK executes a command and closes a dialog,
while Apply keeps it. Sometimes you have to be careful and not press Apply + OK instead
Apply + Cancel, as the command would be executed twice. Particularly, cut operations
may cause troubles here.
Part: Some object types can be composed of isolated topological parts, for example, a
Surface object can be composed of several disconnected triangulated surface parts.
Property: Numerical properties, including the geometry, are generally stored as 32bitoat numbers at the nodes or cells of objects. Properties can be scalar or vectorial. For
example, orientation data can be stored as vectors.
Region: A region is a named sub-set of nodes of a discrete model object. This can be
used for selective object editing or data ltering.
Storage: Gocad objects can be stored either as ASCII les : File - Save Objects and File
- Save Objects as . . . or as binary Gocad Projects File - Save as Project . . .
7

Wizards: Based on the command history of a Gocad session, it is possible to create text

les which contain Gocad commands in a workow-like order, and Gocad creates neat
dialogs in a workow-like style at runtime. Wizards can be accessed via Applications Wizards
Workows: Plugins which guide the user through common tasks, for example StructuralModeling or PropertyModeling.

Figure 3: Gocad with Open Command History Window and Property Pick Result Window
with a Picked Log Property SP of a Well Object Belonging to Group WLDepth
2.3

Project Creation

In Gocad, all objects and settings are stored in a Project directory. Launch Gocad in menu
Start - Programs - EarthDecision - Gocad 2.5.x or using the Desktop short-cut.
These steps are required:
We will now create a New Project in your working directory, name it simply project1. The
next dialog allows to chose required modules. We will select Structural Framework Builder
here. Finally we need to specify the coordinate system and units, set Depth axis positive
values : Upward which determines the direction of the Z-Axis.
When the project has been created, we will set some preferences for convenience: Edit Preferences User level: Advanced, Default working folder ...: your working directory.
On the page Appearance you may set "Show text labels" in order to familiarize with the
icons. Copy the tutorial data to your working directory.

PointsSet and General Object Features

A PointsSet is the most primitive Gocad object. Numerical Properties and Regions are
dened for the whole PointsSet object, and stored with each point. For example, each
point stores its X,Y,Z coordinate and an arbitrary number of additional scalar or vectorial
Properties. Also, each point can contain ags indicating if it belongs to subset Regions of
the PointsSet. Commonly, PointsSets are used as input data, like sampling points with
orientation, geochemical or petrophysical measurements, or simply location data for terrain
models.

3.1

Data Import

We will now load a PointsSet which represents log measurements from wells. Each point has
a Property LogPorosity in %. The points are given just as ASCII table le "wellPoints.dat"
in the following format:
X
Y
Z
logPorosity
8653 3818 1042
10.5853
4700 1233 1288
12.2939
We can import it using the generic Columns as PointsSet lter which you can launch
File - Import Objects - Horizon/Fault Interpretations - PointsSet - Columnbased File

This wizards allow to assign columns to Gocad Properties. Choose the le "wellPoints.dat"
and click "Next" twice and check the radio buttons as follows:

Then comes the page where we can assign our columns to properties. In the Property List
highlight step by step each Property and assign the proper column number. In our case:
X = 1, Y = 2, Z = 3. Then we create a new Property called LogPorosity, which will be
assigned to column 4. Then we are done and click OK.

Figure 4: Import Dialog

Attributes. The loaded objects can be accessed in the Object Panel:

Figure 5: Display of the Property LogPorosity


If you highlight the object name wellPoints as shown above, the Attribute Quick Edit Bar
below the Object Panel changes dynamically and you can set the symbol type, color and
size. Choose cross instead of point. If you want to visualize properties, just check one
and highlight its name. Again, the Attribute Quick Edit Bar changes and you can choose
appropriate graphical property attributes, like color map rainbow. Another way is to access
the Attribute Panel by RMB click on the object name wellPoints, or by selecting Attribute
in the Camera Tool Bar (8) and picking an object. A even more comprehensive attribute
panel appears by clicking on Attributes in the Panel Selection Panel (5).
3.2

Properties

Our wellPoints have default Properties X,Y,Z and one Property LogPorosity. What is the
distribution of this data? RMB on the property name shows a context menu where you
can create a Histogram. You can notice a bimodal distribution which indicates that the
data comes from two dierent sources. Where are the higher values LogPorosity >14.5%
located? You can check it quickly using the color map clip value and transparency settings.
Just set the lower clip value to 14.5, and then Make low clip transparent.

Figure 6: Attribute Quick Edit Bar


3.3

Regions

If we are only interested in points with a LogPorosity > 14.5% we can create a Region from
those points. Th systematic way is to use the PointsSets mode toolbar. Click on General
- PointsSet . The toolbar changes, and you can nd all commands related to PointsSets :
New, Tools, Property, Compute, Region. This menu structure is equivalent for all other
object types which makes it easy to systematically nd the many commands Gocad oers.
Create a new Region highPorosity and initialize it:
PointsSet - Region - Create
PointsSet - Region - Initialize From Property Range

The result can be visualized by checking the Region in the Object Panel, and the appearance
can be changed using the Attribute Quick Edit Bar or the Attribute Panel.
10

Figure 7: Initialize Region Dialog


3.4

Property Script

Now we load a dierent type of data, a simple ASCII table le "DEM.txt" containing
points representing terrain elevation data (X and Y in m, Z in dm).
File - Import Objects - Horizon Interpretations - PointsSets - XYZ "DEM.txt"

You can check it in the Object Panel, but you dont see it yet? Our 3d Camera is still
focused at the wellPoints, and we need to set it up to show our new object which is located
somewhere else. In the Object Panel, deselect wellPoints. Use the Global View auto setup
icon in the Camera Settings Bar (4) or by clicking in the camera and pressing the "End"key. In order to represent the object in real world coordinates we need to convert the
Z-values from dm in m:

PointsSet Mode - Compute - Apply Script - On Object


Select DEM as object and enter the main script: " Z=Z/10; " you can check the syntax
by clicking Check, and watching the Gocad status bar, and then click either OK or Apply
and Cancel. Why? OK executes the command and closes the dialog, Apply executes
the command and keeps the dialog. Pressing Apply and then OK would result in twice
executing the command, which is in our example not wanted. Such property scripts are
very useful tools for various tasks and can be applied for all Gocad objects likewise. A rich
set of mathematical functions is available. For example, scripts may be used to compute
saturation values in SGrids:
Sh = 1-sqrt(30/(resisitivity*pow(porosity,2)));

Finally, delete all objects:


Edit - Delete All

Curves

Curves are often used to import 2d pre-interpreted data like geological maps and proles,
or to digitize data, like seismic reectors, in Gocad.

11

4.1

Curve Topology

Before diving into real examples we will rst have a closer look at the Curve topology.
This gure shows the Curve object ThisIsCurve, which you can load into Gocad: File Load Objects "ThisIsCurve.pl"

Figure 8: Curve Topology


It is composed of three isolated parts. In top view, the left and the right part consist
of 3 nodes, while the middle part consists of four nodes. The dierence is topological:
The left part has two extremities (grey spheres): two nodes have only one neighbor. In
the middle part, two extremity nodes have the same geometry, but are not connected. If
you are curious, you can explore how the topology is stored by having a look at the le
"ThisIsCurve.pl" using an editor.
4.2

Digitizing

We will now create new Curves by digitizing seismic reectors on sections of a seismic cube
Voxet named Seismic. We still learn later more about Voxets, now we will just concentrate
on digitizing just one Curve on the loaded section. Use the third red line from top. Later
we will use these Curves to create a Surface.
File - Load Objects "CurveDigi.mx"

Figure 9: The Dataset "CurveDigi.mx"


Then go to the Camera Settings Bar (4) and setup your Camera using the icon Global
View and exaggerate the z-axis by factor 3. Click to see to the section from south. You
can digitize a new open Curve by clicking RMB in:
Object Panel - Objects - Curve - From Digitized Polyline

or alternatively, select Curve in the Curve Digitization Toolbar (3; now showing: All) and
click the button New Open Curve :
Then the cursor will appear as a crosshair and you can start digitizing about 10 nodes
in the camera with your LMB. When you are nished click RMB and give your Curve a
name: SeisCurve3. Visualize it as follows using the Attribute Panel :
12

Figure 10: Curve Digitization Toolbar


Atom (node) symbol: diamond size: 3 color: red
Line (segment) color: yellow, width: 5
Extremities symbol sphere, color grey, size: 5
4.3

Editing

If you are not satised, you can edit your Curve geometry or topology using the commands
located in Curve mode - Tools - Node/Segment. For example, we see one seismic line
digitized with two parts in SeisCurves. We can connect the extremities by clicking on
them, and the two Parts are merged:
Curve - Tools - Node - Bridge

Also we can merge all digitized parts of SeisCurve3 and SeisCurves by copying into a new
Object AllCurves:
Curve - New - From Curves - Curves Name: AllCurves, Curves: SeisCurve3 and

SeisCurves

Save the current Project - we will use the data later to create a Surface.
File - Save Project

Surfaces

Surfaces are widely used to represent geological boundaries, like faults and bedding planes.
Commonly they are created in Gocad by interpolating input data like PointsSets, Wells
or Curves.
5.1

New Surface with Direct Triangulation

Using the Curve AllCurves we will create a new Surface. While you multiple pick the three
Curve Parts in the camera while keeping the Ctrl-key pressed.
Surface - New - From Several Curves Name: DirectSurf, nb of levels: 4

The argument nb of levels determines how many triangle strips will be inserted between
the copied nodes of the Curve Parts, a low value would result in very narrow triangles and
and thus a rough surface. We can now improve the mesh quality by removing redundant
nodes and switching triangles according to the Delaunay criterion. The Delaunay criterion
states that the minimum triangle angle is maximized, which results in a smoother surface.
The various beautify commands are generally important to obtain nice surfaces - not just
aestetically nice but also smooth and numerical stable for some operations like cut.
Surface - Tools - Beautify - Beautify Triangles

Now you can explore the graphical capabilities associated with Surfaces using the Attribute
Manager. Colorize DirectSurf by its Z-property values using color map ag, and create
default contours for Z.
13

Figure 11: The Directly Interpolated Surface with Colored Property Z and Contours and
the Initial Three Data Curves
If you switch to east view, you will notice that the surface interpolates linear between the
input Curves. Next we will learn how a smooth but input data honoring Surface can be
created.
5.2

New Surface with Discrete Smooth Interpolation

The DSI method allows to smoothly interpolating Properties while taking into account
constraints. We will now create a trend surface with a minimum distance to the Curve
nodes, and then improve this surface.
Surface - New - From PointsSet Medium Plane Name: DsiSurf, AtomSet: AllCurves,

Clip with Voxet: Seismic

The new plane Surface consists of only two triangles; we need to discretize appropriately
in order to t it to our data:
Surface - Tools - Split All Apply+Apply+Apply+OK, or OK + 3x space key

Then we set the nodes of the AllCurves as Control Points :


Surface - Constraints - Control Points - Set Control Points

The DSI method has the side eect that it minimizes the Surface area, thus we set a
Constraint on the Border which xes the Border nodes in the XY plane:
Surface - Constraints- Constraints on Borders - Set On Straight Lines - All
Borders

Now we can interpolate the Surface

Surface - Interpolation - Geometry - On Entire Surface DsiSurf Apply


DSI is a iterative algorithm, you can run more iterations by clicking Apply several times.
You can play with the Fitting factor in the advanced part of the dialog: set it to 0 to
create a very smooth surface, or to 2 in order to honor your data best. (By the way, this
corresponds to the coecient of the global DSI equation in chapter 1.3)
Take a look at the result, you should notice the smoothness dierence between DsiSurf and
DirectSurf. We can compute the thickness between two surfaces as new property dierence,
here we use it just to detect areas with high interpolation dierence of the Z-values.
Surface - Compute - Compute Vertical Thickness Surface: DsiSurf, Thickness:

dierence, Surface Bottom: DirectSurf, IsBottom=On, IsSigned: On

14

5.3

Adapting a Surface to Honor Well or Point Data

We will import three wells with a marker point sandstone_top and set it as an additional
constraint for DsiSurf and re-interpolate.
File - Load Objects "well.wl"

You can nd the imported wells in the Object Panel. Well markers cannot be set as Control
Points directly. Hence, you have to convert the Well markers to a PointsSet.
PointsSet - New From Well - Well Markers
Surface - Constraints - Control Points - Set Control Points
Surface - Interpolation - Geometry - On Entire Surface DsiSurf
Surface - Constraints - Control Nodes - Set - From Control Points Tolerance:

10, then click on sandstoneTopPoints in Camera

Surface - Tools - Beautify - Beautify Triangles for Equilaterality

In both cases, the Well Markers are honored exactly as Control Nodes. The second way has
the advantage that it allows to incorporate further wells and update the surface model.
Remark: We can also manually edit Surfaces. Have a look at the functionality of the
menues Surface - Tools - Node and Surface - Tools - Triangle . We will edit one
arbitrary node and dene as Control Node before interpolating:
Surface - Tools - Node - Translate X: 0 Y: 0 Z: 100 (pick node in camera)
Surface Mode - Constraints - Control Nodes - Set One (pick node in camera)
Surface Mode - Interpolation - Geometry - On Entire Surface

Remark: If the geological feature you want to model has a strong relief, you can adapt the
discretization:
Surface - Tools - Decimate
Surface - Tools - Split Region/Ring

If you have many points (> 1 mio) and little relief, a direct triangulation might be a waste
of memory. Here the DSI approach with adapted discretization can give good solutions. If
you have even more points which are not multi-Z-values, like a large elevation model, you
might consider the usage of regular 2d Grid.
5.4

Draping Images on Surfaces

Images like arial photographie or topographical maps are imported as 2d Voxets or georeferenced image and can be draped on Surfaces.
File - Open Project "ufa.gprj"

Create a digital elevation model as Surface based on the PointsSet Ufa either with direct
triangualtion or DSI.
Surface - New - From PointsSet - PointsSet AtomsSet: Points Ufa

Load the topographical map ufa_topo as 2d Voxet :


File - Load Objects - "Ufa_topo.vo"
The texture is an attribute of Surfaces :
Draping : Visible, Voxet: Ufagoogleearth

15

5.5

Surface Topology

A Surface object can be composed of several isolated Parts. Closed Surface Parts have no
Border, otherwise all triangle edges which are not shared between two triangles belong to
a border. Borders can be subdivided by Extremities (Border Stones).

Figure 12: The surface part shown left has two borders with one red border stone. After a
cut operation (right image), nodes along the cut line are duplicated and four new border
stones are inserted. They have the same location but are not connected. The cut created
two topologically isolated parts. We will apply this in the next exercise
5.6

Y - Fault from Various Data

This exercise emphasizes data import and data preparation, image georeferencing, and data
integration with DSI. The modeling part is mostly a reminder to what you have learned
before. From a set of wells, outcrop points with fault azimut/dip measurements, and a 2d
seismic section we will create two conjugate normal faults masterFault and northFault.

Figure 13: Y-Fault Model

5.6.1 Import of Elevation Points and Outcrop Sampling Points


Create a new Project and load the ASCII table les with XYZ points. Symbolize the data
dierently using the Attribute Quick Edit Bar.
File - Import Objects - Horizon Interpretations - X Y Z "dem.txt", "master-

Outcrop.txt", "northOutcrop.txt".

16

5.6.2 Working with Orientation Data


We can use orientation data as DSI constraint. We will assign orientation measurements
in degree as two new properties to our masterOutcrop and northOutcrop points:
PointsSet - Property - Create azi, dip
PointsSet - Property - Set Constant masterOutcrop azi=0, dip=41, northOutcrop

azi=198.5 dip=43.
Alternatively we could assign individual values to points (PointsSet - Property - Edit
Displayed Property Values ), or import a table le with "X Y Z azi dip" columns using
the Column-based File lter.
Azimuth and dip can not be set as DSI constraints directly - we have to convert them to 3d
vectors using a simple script. In our case we work with fault planes and want to compute
their normal vector. Depending on whether you have linear or planar orientation data you
can use the following approaches.
1. For orientation measurements of planes, we need two temporary vectors strikevec and
dipvec, as we compute the normal from the cross product of two vectors located in the
plane.
PointsSet - Property - Create property name: normalvec, number of elements: 3, Apply, property name: strikevec,Apply, property name: dipvec, OK ; PointsSet - Compute
- Apply Script on Object Load ...: "azidip2normvec.psc"

dipvec[0] = cos(dip*.01745 ) * sin (azi*.01745);


dipvec[1] = cos(dip*.01745) * cos(azi*.01745);
dipvec[2] = -sin (dip*.01745);
strikevec[0] = sin (azi*.01745 + 1.5708);
strikevec[1] = cos(azi*.01745 + 1.5708);
strikevec[2] = 0;
normalvec[0] = dipvec[1] * strikevec[2] - dipvec[2] * strikevec[1];
normalvec[1] = dipvec[2] * strikevec[0] - dipvec[0] * strikevec[2];
normalvec[2] = dipvec[0] * strikevec[1] - dipvec[1] * strikevec[0];

The result 3d vector can be visualized using Attribute Panel - 3d Property - Visible .
Later we can set it as DSI constraint for the faults: Surface - Constraints - Control
Points - Control Points and Slopes .
2. If you have orientation data of linears and want to compute a 3d vector from trend and
plunge:
17

PointsSet - Property - Create property name vec, number of elements: 3


PointsSet - Compute - Apply Script on Object Load ...: "trendplunge2vec.psc"

vec[0] = cos(dip * .01745 ) * sin (azi * .01745);


vec[1] = cos(dip * .01745) * cos(azi * .01745);
vec[2] = - sin (dip * .01745);

5.6.3 Import of Well Data


Wells are commonly stored in relational data bases with dierent formats. Some generic
ASCII formats for well import including well path, markers and logs can be imported to
Gocad, and also standard formats like WITSML and OpenSpirit.
In GOCAD Suite, the depth information of a well is stored into the properties : Z and
Zm:

Z is the True Vertical Depth Sub Sea (TVDSS). TVDSS is dened as the vertical distance

from a point in the well to a point at the surface, usually the elevation of the rotary kelly
bushing (RKB). Z can be positive or negative depending on the orientation of the project
(upward: negative, or downward: positive).
Zm is the Measured Depth (MD). The Measured depth is the length measured along the
wellbore. Whatever the orientation of the project, Zm will be positive.

Figure 14: Gocad's well objects (source: paradigm customer support)


Well paths and markers can be imported seperatly from ascii-les using

File > Import objects > Well Data > Paths...Column-based le
and

File > Import objects > Well Data > Markers...Column-based le.
The paths are imported with the wellname, X, Y and TVDSS values. The name of the
objects should be used from the column containing the wellname. This is necessary to link
path and marker.
The markers are imported with the columns containing MD, wellname and markername.
18

Figure 15: WellPath import (step 3 and 4)


Follow the instructions to import the wells from wells.xls containing the well markers
northFault and masterFault. Before the le can be imported it must be converted to an
asciile (*.txt) and the delimiter must be changed to "point".

5.6.4 Georeferencing a Seismic Section Voxet


Images of many dierent fomats can be loaded - but we still need to georeference them as
the origin is by default XYZ = (0, 0, 0) and the step vectors have unit length. For more
information have a look at appendix A.
We have a depth migrated vertical seismic section in TIF format:
File - Import Objects - Images - As 2d Voxet "seismic.tif"

We know the section begin and end locations at the terrain: point_v (10322.6, 11590,
565), point_x(10102.6, 11890, 542). The resolution of the Voxet can be obtained on the
Attribute Panel -Info page of the seismic voxet: u: 594, v: 277, w: 1. From this information
we can compute the real origin - all that is needed to georeference the Voxet. Note that
the image origin of TIF les is top left, while the Voxet origin is bottom left. We compute
the Voxet vectors axis_u and axis_v in order to obtain the location vectors origin and
point_u:
axis\_u = point\_x - point\_v
axis\_v = |axis\_u| * |v|/|u| * z , z = (0,0,1)t
origin = (point\_v - axis\_v)

19

Figure 16: WellMarker import


WellName

MD

MarkerName

w1

10073,5

11765,5

562,9

0 top

w1

10073,5

11765,5

519,3

43,60 northFault

w1

10073,5

11765,5

489,6

73,30 masterFault

w2

10372

11685,5

593,10

w2

10372

11685,5

529,1

w3

10276

11872,5

586,80

w3

10276

11872,5

379,9

w4

10301,5

11751

591,60

w4

10301,5

11751

533,5

58,10 northFault

w4

10301,5

11751

476,8

114,80 masterFault

w5

10072,5

11686

582,00

w5

10072,5

11686

528,4

w6

10198,5

11749

556,10

w6

10198,5

11749

508,3

47,80 northFault

w6

10198,5

11749

478,3

77,80 masterFault

0,00 top
64,00 masterFault
0,00 top
206,90 masterFault
0,00 top

0,00 top
53,60 masterFault
0,00 top

Figure 17: Wells with the well markers northFault, masterFault and top (surface)
point\_u = origin + axis\_u
point\_w = origin + axis\_u x axis\_v / |axis\_u x axis\_v|
Voxet - Tools - Resize with Points origin 10322.6, 11590, 392, point_u 10102, 11890,

369, point_v 10322.6, 11590, 565, point_w 10323.4, 11590.6., 392


Similarly you can also use satellite or airborne images or scanned geological maps. A
sometimes useful option is the texture draping function for Surfaces, where you can project
an image on an elevation model, for example (Attribute Panel - Texture ).

5.6.5 Model Building.


Digitize the reectors masterCurve and northCurve as new Curves on the seismic Voxet.
Create new PointsSets masterMarkers and northMarkers from the wellmarkers.
To avoid mistakes, show only the objects you want to work with in the camera, and
set graphical attributes consistently for the masterFault and northFault input data. For

20

example, set color red for masterCurve, masterMarkers, masterOutcrop and yellow for
northCurve, northMarkers, northOutcrop.
Build a new bounding box Voxet, and scale any new Surfaces by factor 1.05 (Surface New - From PointsSets- PointsSets Medium Plane ). This will avoid cut problems
later. Model the Surfaces using DSI. By the way, modeling can be more ecient if you
work simultaneously for all three Surfaces.
Before you cut the Surfaces - Save your project! Take care to select the correct Surfaces,
and then use the command
Surface - Part - Keep Selection click on Part to keep

21

6
6.1

SGrids
SGrid from Well Markers and Porosity Log

For property modeling of geological bodies we need to discretize its 3d volume dened by
boundary Surfaces into volume cells. SGrids are regular 3d grids which can be deformed
and cut to t a structural Surface model. We will rst create a simple Surface model from
Well Markers of the previous exercise, t a SGrid to the model, copy the log property
porosity to the SGrid, and interpolate the porosity in the SGrid using DSI.
File - Open Project - "wells2sgrid.prj"

The clay and sand Surfaces are created from the Well markers, which are automatically
set as Control Nodes. Then we improve the mesh and make the Surfaces smoother. For
eciency, you can use the following ve dialogs simultaneously for your clay and sand
Surfaces.
Surface Mode - New - From others - Well Markers Name: clay, Marker name:

clayBase, In Cage: box

Surface Mode - Constraints - Constraints on Borders - Set On Straight Lines


- All Borders
Surface Mode - Tools - Split - All Apply
Surface Mode - Tools - Beautify -Beautify Triangles Apply
Surface Mode - Interpolation - Geometry - On Entire Surface Apply

Repeat the last three steps in this order to obtain a nicely triangulated smooth Surface.

Figure 18: The Modeled Clay Surface and Sand Surface


Then we can create the SGrid from the smallest bounding box of the Surfaces, and specify
the discretization of the U,V,W axis.
SGrid - New - From Objects cage name: grid objects: clay sand, Nu: 35 Nv: 18 Nw:

50

SGrid Mode - Tools - Proportional between Top and Bottom nal horizon: clay,

reference horizon: sand

Have a look at the SGrid geometry: Attribute Manager - Volumes - Full Volume :
On. We copy the porosity log data to a new Curve which we set as constraint for the
SGrid and interpolate:
22

Curve - New - Well Log - Group name: logs


SGrid - Constraints - Set Property Control Points AtomsSet data: logs
SGrid - Interpolation - Initialize Property multigrid, Advanced - Use all values:

On

Have a look at the result by checking the new property porosity in the Object Panel, and
create cross section using the Attribute Manager : Volumes - Full Volume : O, Sections
- axis-1, axis-2: On.

Figure 19: Cross Section of the SGrid


Property interpolation with DSI is often not the best option, if the data allow the usage of geostatistical methods (see SGrid - Geostatistics , the methods are covered by
course "Geostatistics and Reservoir Characterization in Gocad"). But as for geometry
interpolation, DSI honors our data and creates a smooth result.
6.2

Working with SGrid Regions

SGrid regions can be dened based on property ranges or gocad objects like surfaces to
visualize and compute properties.

6.2.1 Create a SGrid Region from Property Range


A new SGrid region can be dened using right mouse click Create from property range,
region: highPorosity, Min: 0.2 - Apply
Check the number of voxels of the region and the entire SGrid. In order to visualize only
this region you must turn o the "volume" button in the Attribute Quickbar.
To calculate the complement of this region. The region must be copied - Copy, name:
complement
Compute the complement with Region-Complement , region: complement (check the
number of cells). Operations like substract regions, union regions or intersect regions are
also available with Region-. . . .
The volume of the region highPorosity can be computed with Compute - Value - Get
region volume.

23

Figure 20: SGrid Region Dention Task

Figure 21: SGrid Region with Porosity Higher than 0.2

6.2.2 Create a SGrid Region from Surface


Create a Surface cutting the SGrid using Digitizing/Editing Toolbar :

Figure 22: Digitized Border Surface

Figure 23: SGrid Region


24

Create the region with Region - Initialize - From Surfaces . Volume solid must be
deactivated.
6.3

Creation of SGrids Between Multiple Surfaces

The modeling of a SGrid between several surfaces requires two conditions:


A bounding box as Voxet object is needed.
The surfaces must be dened as geologic feature.

Add the Gocad object "conglomerate.ts" to your existing project and create the bounding
box with Voxet - New - From Objects Box, name:box. Ensure the box is containing
the three surfaces clay, sand and conglomerate.
To use the surfaces as SGrid boundary they must be dened as geological feature. If the
geologic feature is descend directly from well markers they are created automatically.
Otherwise you have to apply the following steps:

geologic feature with Surface - Tools - Assign AS Geologic Feature with the feature
type Stratigraphic Horizon.
Surface/Tools/Assign geological feature

or drag and drop the surface to the features in the objects task pane. Use the geologic type
"Stratigraphic Horizon" (see g. 24)

Figure 24: Denition of Geological Features


Now you can create the sgrid with
SGrid - New - From Objects Box, Name: sgrid, Object objects: box, Number of voxels

in u-direction: 100, v-direction: 100, w-direction: 100


To ll the sgrid select the option "Volume" and/or "Volume solid" in the Attribute Quick
Bar.
To deform the SGrid geometry proportionally between the surfaces apply the option
SGrid - Tools - Initialze Geometry - Proportional Between Multiple Surfaces

The horizons can be separated into regions with


SGrid - Region - Initialize - From Geologic Feature (Well Marker or Surface)

25

Introduction into ArcGIS

7.1

Basic Principles

ArcGIS Desktop provides several applications, e.g. ArcCatalog, ArcMap, ArcScene,


ArcGlobe and ModelBuilder.

ArcCatalog allows to access and to manage geographic data that are stored in folders
or relational databases. Data can be copied, moved, deleted, and quickly viewed before it
is added to a map. In addition, metadata can be either read or created using this ArcGIS
application.

ArcMap allows the user to display geodata, to perform queries of geodata, to create
quality hardcopy maps and to perform many spatial analysis tasks. ArcMap provides an
easy transition from viewing a map to editing its spatial features.
Data sources

In ArcGIS tables, raster and vector data can be managed in several ways:
In a Filesystem
In a File Geodatabase (Stored as folders in a le system. Each dataset is held as

a le that can scale up to 1 TB in size. This option is recommended over personal
geodatabases.)

In a Personal Geodatabase (All datasets are stored within a Microsoft Access data

le, which is limited in size to 2 GB.)

In a multiuser Geodatabase (Stored in a relational database using Oracle, Microsoft

SQL Server, IBM DB2, or IBM Informix. These multiuser geodatabases require the
use of ArcSDE and can be unlimited in size and numbers of users)

In this course we will work only with data in the lesystem due to the Gocad requirements.
In Gocad, geodatabase datasets can not be imported.
Filesystem

The following formats are supported by ArcGIS:

vector data: shapeles (*.shp), coverages, cadles (*.dwg,dxf,dgn),TINs,. . .

tables: MS excel (*.xls), dbaseIV-tables (*.dbf), textles (*.txt),. . .

raster data:ESRI GRID, ERDAS IMAGINE (*.img), Graphics Interchange Format


(*.gif), JPEG File interchange Format (*.jpg, *.jpeg, *jpe), Tagged Image File
Format (*.tif, *.tiff, *.tff), . . .

26

Personal Geodatabases (PGdb) and File Geodatabases

Geodatabases contain geographic information organized in the form of feature classes,


feature datasets and tables. A feature class is a collection of features with the same type
of geometry and the same attributes. A feature dataset is a collection of feature classes
that share the same spatial reference. Feature classes can be organized in feature datasets
or may exist independently in geodatabases. Additional relationship classes, geometric
networks and topologies can be created as a PGdb. The structure of a PGdb is shown in
gure 25.

Figure 25: Structure of Personal Geodatabases

Figure 26: Selected data source symbols


Toolbars in ArcGIS

The tools of the ArcGIS applications are organized with toolbars. The toolbars can be
opened with View - Toolbars.
Some examples:
Editor: Digitizing and editing of vector objects
Georeferencing: Georeferencing of raster datasets
Spatial Adjustemt: Georeferencing of vector objects
Geostatistical Analyst, 3d Analyst
7.2

Exercise: Modelling of the Matterhorn in Switzerland - Data Preparation in ArcGIS and Modelling in Gocad

Gocad requirements:
27

Vector le format: ESRI Shapele


Cartesian Coordinate System

7.2.1 Georeferencing of Raster Datasets


Raster data are often achieved by scanning maps. In order to use the scanned maps in a
GIS together with other spatial data, they must have a spatial reference information. The
process to link the raster with the spatial reference information is called Georeferencing.
When georeferencing a raster dataset, its location is dened by assigning a coordinate
system to the map coordinates. The reference information is either embedded in the le
(*. geoti) or stored as a separate le (so called world le). There are two possibilities to
georeference a map. Either you use known coordinates or you use a reference map.
In this exercise, we will georeference an image with known coordinates and coordinate
crosses.
+ Open ArcCatalog and go to the folder which contains the Matterhorn dataset

The folder contains an aerial photography with contour lines of the Matterhorn. With
a RC on the raster the raster properties are displayed (g. 27). The properties include
information about the data source, extent, spatial reference, number of columns, rows and
bands, the cell size, format, pixeltype,.... Of course, at this moment the map does not have
a spatial reference and the cell size and extent is not correct.
In order to speed up the display of large rasters you can build pyramids in which the
original data has several levels of resolution. With pyramids, a lower resolution copy of the
data displays quickly when drawing the entire dataset. As you zoom in, levels with ner
resolutions are drawn. The pyramid information is stored in *.rrd-les. It is possible to
activate the building of pyramids in the raster properties or in ArcCatalog with a RC on
the raster/Build pyramids.
The georeferencing tools are contained in the Toolbar Georeferencing (g. 28).

Figure 27: Raster Dataset Properties


28

Figure 28: Toolbar Georeferencing


The image comes with a graticule and the projection information. The projection is Swiss
Grid or CH1903_ LV03.
At rst, we have to assign this projection to the raster dataset:
+ RC on the MatterhornContourLines.tif and open the raster properties to dene

the spatial reference.

We georeference the map with the method Ane Transformation. It is a geometric transformation that scales, rotates, or translates images or coordinates. In an ane transformation, parallel lines remain parallel. The midpoint of a line segment remains at the
midpoint, and all points on a line remain on that line.
For the georeferencing with ane transformation at least three control points are necessary.
Control points are established at horizontal and vertical positions that are used as xed
references for known ground points or specic locations. With four control points residuals
can be calculated.
In order to dene control points choose four coordinate crosses on the map. These coordinates crosses must not be aligned along a line. The best way is to set control points in
each corner of the map.
+ Use the tool Add

Control Points from the toolbar Georeferencing. Zoom to the

rst cross, click once with the left mouse button. Then click with the right mouse
button and Add X and Y.

+ Open

View Link Table (g. 28).

The dened control points are displayed in the table (g. 29). They can be edited or
deleted but it is not possible to change the position of the control point on the map.
Dene at least four control points. In the View Link Table the calculated residuals are
displayed. Depending on the size of the residuals you have to correct your control points.
The real-world coordinates are displayed in the lower left corner of ArcMap.
29

Figure 29: Link View Table, Enter X and Y


+ Save the View Link Table into your home directory and store the georeferencing

in the toolbar with Georeferencing/Update georeferencing.

Now, an auxiliary le (*.aux) and a worldle (*.tfw/*.jgw) was saved. The auxiliary
le contains a pointer to the pyramid le (*rrd), information about the projection, coordinate system, colormap, transformation and statistical information. The worldle is a
separate ASCII le that contains the real-world transformation information used by the
image. World les can be created with any editor. Some image formats, such as ERDAS,
IMAGINE, BSQ, BIL, BIP, GeoTIFF, and grids, store the georeferencing information in
the header of the image le. ArcGIS uses this information if it is present (i.e. a world le
is not necessary).
7.3

Digitizing of Contour Lines

In GIS, the creation of new vector objects is called digitizing.


In Gocad, ESRI Shapeles can be imported just as Curve Objects. In ArcCatalog, a
new shapele must be dened with a RC on the folder where it should be stored. Select the
geometry type polyline and the coordinate system CH1903 LV03. The latter can be
found in Projected Coordinate System - National Grids - CH1903_LV03. After
having created the Shapele, open a new ArcMap project using the tool Launch ArcMap
or from Start - Programs - ArcGIS - ArcMap.
In ArcMap, the data is organized in a Dataframe. Initially, the Dataframe is called
Layers. The properties of the dataframe are launched with a doubleclick or a RC on it.
+ Add the Shapele and the Matterhorn image with

File - Add Data.

The coordinate system of the ArcMap project is automatically dened by the coordinate
system of the Shapele and the image. You can check in the dataframe properties.
In this exercise, we want to digitize the contour lines with the elevation information which
must be entered in the Attribute Table of the shapele.
30

RC on the shapele - Open Attribute Table


and add a new attribute eld with Options - Add Field; Type: Short Integer.

+ Open the attribute table with a

Ensure other applications (e.g. ArcCatalog) using your data are closed. Otherwise
you will get an error message.
To start the digitizing process,
+ Launch the toolbar Editor and start the editing session with Editor - Start Edit-

ing. Choose the right target and editing option (Create New Feature). Digitize

the contour lines and enter the elevation into the new attribute eld in the attribute
table. The digitizing can be saved and stopped with Editor - Stop Editing.

7.4

Data Export to Gocad

In Gocad, GIS data is imported as Cultural data and as Curve. Import the digitzed
shapele with Import Objects - Cultural Data - Shapeles.
+ Start the modelling of the Matterhorn. Work with the options Beautify for Eq., Con-

trol Points in 0;0;1 direction and Control Points in Optimized Shooting Direction.
Interpolate several times and play with these controlling factors to have a reasonable
result.

31

Calculation of Georeferencing Parameters

Notations.
point_v  start of the cross section Proles on the earth's surface
point_x  end of the cross section Proles on the earth's surface
point_u(x,y,z), point_v(x,y,z), origin(x,y,z)  real x,y,z- coordinates of the positions.
|v|  number of voxel in v-direction: 277 (can be found in the voxet attributes (info))
|u|  number of voxel in u-direction: 594 (can be found in the voxet attributes (info))

Statement.

The georeferencing of images with x,y,z coordinates (e.g. seismic prole) can be computed
from
the (x,y,z) coordinates of the origin
the (x,y,z) coordinates point point_u
the (x,y,z) coordinates point point_w

Calculation. In order to compute the georeferencing of an image one has to perform the
following computations:

1. Compute the uaxis:

axis_u = point_x point_v


2. Use the relationship axis_u / axis_v = |u| / |v| to compute the length of the v 
axis:
|v|



axis_v = axis_u

|u|

3. Since the v axis is in the same direction as the z axis, ~z = (0, 0, 1)t we obtain

|u|
~z
|v|

axis_v = axis_u

4. Since origin = point_v axis_v the coordinates of the origin can be computed by

origin = point_v axis_v


32

5. Therefore point_u can be computed by

point_u = origin + axis_u

6. Finally, the coordinates of point_w can be derived from the fact that the vector
point_w origin is perpendicular to the vectors axis_u and axis_v and has length
one. Hence, we have the formula

axis_u axis_v
point_w = origin +
axis_u axis_v

Example Let us consider the following example, where the coordinates of point_v and
point_x are given by

10322.6
point_v = 11590 ,
565

10102.6
point_x = 11890
542

and the number of voxels in u direction is |u| = 594, and number of voxels in v direction
is |v| = 277.
According to step 1 we obtain



220
10102.6
10322.6
axis_u = 11590 11890 = 300 .
23
542
565

Since the length of the vector axis_v is

220

277


= 173
axis_v = 300
594
23

it has the coordinates


0
0

0 .
axis_v = 173 0 =
173
1

Finally we obtain for the origin the coordinates


10322.6
0
10322.6
origin = 11590 0 = 11590 ,
392
173
565

for point_u the coordinates

10322.6
220
10102.6
point_u = 11590 + 300 = 11890
392
23
369

and for point_w the coordinates


220
0

300
0
10322.6
10323.4
23
173
= 11590.6
point_w = 11590 +
220
0

392
392
300 0


23
173

33

Você também pode gostar