Petrosys v16.8+ now offers the ability to draw maps from within surface modeling workflows and perform enhanced grid processing with its new grid arithmetic operation. This allows formulae to use conditional processing and have multiple grid outputs. The benefits to users include:
A new option Tools/Draw-Map allows maps to be created as part of a Petrosys gridding and contouring task list. Maps are created as .dbm files for subsequent replay in Petrosys mapping and optionally as one of a selection of publication options, including direct display to a raster file or the use of a Petrosys 'plot queue'.
The initial map style and content are determined by a pre-existing dbm file that serves as a template. By using workflow scripting, the content - such as grid and contour files used - and selected elements of the style can be dynamically linked to other tasks in the workflow. Creation of maps from within workflows allows the complete automation of routine workflows such as the periodic updating of reservoir maps to reflect new drilling and the standardization of map production for a range of workflows.
The draw map option opens up a wide range of possibilities for using Petrosys to rapidly explore ranges of scenarios such as variants of velocity models and to automatically refresh corporate map catalogues.

The example (above) shows a workflow which has been looped and which consists of gridding up the Net-to-Gross values for 5 different horizons. The subsequent grids are used to automatically produce 5 separate map files in raster format. Click here to see a practical example and further detail on this functionality.
The Grid/Processing/Arithmetic option has had a significant upgrade, introducing a lot of the functionality previously only available in the function lists module.
The most striking difference is that functions can now have more than one statement, so that it is possible to have conditional (IF) statements, enabling multiple grids to be created in a single function. Functions are now automatically analyzed to determine their component variables and the user can choose whether a given variable is to be associated with data from a grid, a constant value, or an XY lookup table.
The new formulae require two additional elements, an assignment (a=) and a semicolon at the end. A simple function previously coded as 'TWT * 1900' now needs to be coded in a form such as 'depth = TWT * 1900;'.
Thanks to the changes it is now possible to run a formula to create a new grid with a constant value, using a formula such as 'base = 100.0;'.
A simple conditional formula takes the form 'if( depth < 2000 ) { vel = 1500; } else { vel = 1600; }' with segments of statements grouped within braces {}.
Function and operator names, such as 'if', are now case insensitive so that it does not matter if you enter 'IF' or 'if'. Instead of having to enter the variable names of your function manually, as in the past, an analysis button now checks your formula and lists the variables in a table. You can then specify which variables are to be grids, constants or XY lookup lists. Complex formulae may include variables that are transient and which don't have to be saved beyond the run.
Standard templates are provided for many commonly used functions and there have been significant upgrades to the online help related to the grid arithmetic.
Advanced users familiar with PGC scripting will appreciate that each variable can now be accessed individually from the scripting, so that it is easier to link individual grids and constants in the arithmetic with inputs and outputs to other tasks or interactive runtime input.
Grid arithmetic tasks from Petrosys versions before v16.8 will be automatically upgraded to being compatible with the extended functionality of v16.8. However, changes made in v16.8 will not be backwards compatible with earlier versions.
Users may notice that: