Software
Problems with Gridding | The Java Minimum Curvature Gridding (JMCG) Solution | Examples | Cyclical B-Spline Gridding (CBSG) Solution | Why Java
Problems with Gridding
Whether you are a geologist, geophysicist or petroleum engineer working a prospect, field, or basin, your workflow can become tedious without an advanced gridding solution. A major problem with the current state of gridding and surface modeling in the petroleum and earth sciences industries is that the user must make trade-offs between speed, size of model, and handling of faults. As shown in the table below there are solutions in the marketplace, but typically the solution sacrifices one or two of the properties described above. ASM’s solution is effective in all three properties of the problem.
|
Simple Comparison
|
|
|
Handles Faults
|
Models Small
Data Sets Efficiently
|
Models Large
Data Sets Efficiently
|
|
ASM
|
X
|
X
|
X
|
|
Conventional
|
X
|
X
|
|
|
Spline Gridding
|
|
X
|
X
|
|
Shareware
|
|
X
|
|
Of course there is often another way to address these three constraints. The user can simply migrate the problem to a faster computer with more RAM. But this option is tedious, adds complexity to otherwise straightforward workflows, and does not avoid the limitation of Java programs running on Windows to a maximum heap space of 1 gigabyte. With JMCG this hardware change is avoided.
The JMCG Solution
In the area of fault handling, ASM’s Java Minimum Curvature Gridding (JMCG) software was designed from the beginning to work on highly faulted data sets. It assumes there are faults everywhere, then, before any smoothing is done, uses multiple “filters” to determine when faults are nearby. By the time grid smoothing starts every grid node has been assigned one of the 1024 possible minimum curvature stencils for honoring nearby faults and grid voids. Using pre-computed stencils smoothing can be run fast independent of how densely the area of interest is faulted.
JMCG is capable of gridding both small and large data in record time. Typically, grids the size of 10,000 rows by 10,000 columns with 3,000 fault polygons and 10MM data values cannot fit into Jave heap space under Windows. To solve this size problems, JMCG uses a unique solution. Grids are partitioned into overlapping virtual tiles in successive partitioning steps until gridding is complete. Grid execution is fast and can be accelerated with more speed and RAM, but results using a 2.6 GHz CPU on Windows XP is shown below.
|
FAST?
Gridding times in CPU seconds on Windows XP with 2.6 G Hz CPU.
All done in memory.
|
|
Data Size
|
Grid Size
|
Fault Blocks
|
Faults
|
Fault Vertices
|
CPU (Seconds)
|
|
285
|
513 x 641
|
|
30
|
1428
|
10
|
|
285
|
1025 x 1281
|
|
30
|
1428
|
33
|
|
285
|
2049 x 2561
|
|
30
|
1428
|
112
|
|
1,314
|
253 x 218
|
15
|
26
|
280
|
3
|
|
1,314
|
504 x 434
|
15
|
26
|
280
|
9
|
|
1,314
|
2011 x 1731
|
15
|
26
|
|
100
|
|
2,460
|
701 x 661
|
|
|
|
13
|
|
20,000
|
401 x 401
|
4
|
3
|
9003
|
5
|
|
20,000
|
801 x 801
|
4
|
3
|
9003
|
15
|
|
20,000
|
1601 x 1601
|
4
|
3
|
903
|
60
|
|
89,083
|
521 x 661
|
|
51
|
1257
|
12
|
|
89,083
|
1041 x 1321
|
|
51
|
1257
|
39
|
|
89,083
|
2081 x 2641
|
|
51
|
1257
|
136
|
|
500,000
|
401 x 401
|
4
|
3
|
9003
|
9
|
|
500,000
|
801 x 801
|
4
|
3
|
9003
|
19
|
|
6,000,000
|
3201 x 3201
|
4
|
3
|
3003
|
960
|
|
6,000,000
|
3201 x 3201
|
4
|
3
|
9003
|
1062
|
Examples
There are surface model images shown on this page. Figure 1 was created from faulted well data using default JMCG parameters. The surface displays the smooth interpolation one expects from minimum curvature gridding and none of the artifacts often seen when gridding close to faults.
Figure 1: Faulted Data Set Using Default JMCG parameters
Figures 2 and 3 show results produced when using tiling. Figure 2 shows a 1,000 x 1,000 grid created from densely faulted, digitized contour data. The default tiling parameter setting was changed so that this model, which is of a size that normally does not require tiling, used tiling. The final grid was produced by blending 4 overlapping tiles. Figure 3 is a 2,000 x 2,000 grid created from the same contour and fault data. Again the tiling parameter was changed to force “early” tiling. In this example 16 tiles were used. While there always are numerical differences between grids using different amounts of tiling, a visual comparison of the results highlights the robust nature of the tiling algorithm used in JMCG.
Figure 2: 1000 x1000 Grid Blending 4 Tiles
Figure 3: 2000 x 2000 Grid Blending 16 Tiles
The CBSG Solution
ASM’s Cyclical B-Spline Gridding Solution is useful in quickly and accurately gridding very large data sets. The only limitation on the size of the gridding problem undertaken is the amount of disk space available to the user. It is useful for regional and basin modeling and topographic, bathymetric, and general purpose, GIS mapping. Like ASM’s JMCG, it relies on unique and advanced technology to handle very large and cumbersome gridding problems.
Why Java
Java was chosen as the language to use in writing JMCG because it is being rapidly adopted by the E&P industry and is easily deployed in a Windows, Solaris or Linux environment. Further because it is an object-oriented language, it is easily maintainable by our customers and is structured such that its components are reusable. The language supported writing elegant and concise code; the JMCG program is approximately 7000 lines of code and comments.
We know some companies prefer C# to Java for security and/or ease of support reasons. Please talk to us about this possibility.