The CPI Config
The CPI Config is what houses all the equations, parameters, methods, well log tracks, and modules that are shipped with Danomics Petrophysics. The CPI Config can be modified so that you can add new equations, parameters or even entire modules to your workspace. This is the easiest way to integrate proprietary or non-standard methods into your workflow.
CPI Config Structure
The CPI configuration is split into a number of files, each associated with a module or some other base functionality. You can reach the CPI Config by clicking on your head icon located in the upper right-hand corner of the window and selecting “CPI Config” from the menu.
This will open up a window that has two panels:
- Overrides: This panel is where you will add your modifications
- Config: This is what houses all of the built in equations.
Inside the config you will see several subsections as outlined below.
Parameters
Parameters are the building blocks of the CPI Config. They are, of course, used in the equations, but are also what form the basis of what is displayed in the parameter tables (that are called in the modules later on).
The parameter section in each module is designated by a line the reads: param:
Equations
Equations are what perform all of th calculations. These can utilize functions, operators and call parameters. The equation section in each module is designated by a line the reads: equation:
Named Defaults
Named Defaults allow you to use “presets” such as the Lithology Preset in the Clay Volume and Porosity Modules. Named Defaults can contain as many or few parameters as the user desires. Below is the actual example of the sandstone and limestone presets. These sections are denoted by the line: namedDefaults:
Exports
The exports sections sets what log curves and what petrophysical properties are exported by default, as well as what maps are generated by default. The start of the export section (found in root.yaml) is denoted by the line: export:
The defaultExportCurve is to set the curves that are written during an LAS export without the need for additional selection. The formationSummaryCurve determines what properties are mapped and what properties are exported as part of the CPI export.
Curve Aliases
The curve aliases section is to designate curve alias names. The section is denoted as starting with the line aliasedCurve: and can be found in the file aliases.yaml.
For aliases it best practice to copy all of the mnemonics associated with an alias, paste it into your overrides, and then extend it as needed.
Syntax, Operators & Functions
Within the CPI Config best practice dictates that we differentiate between curve names and parameter names. Curve names are designated with the “@” symbol; for example, “@gr” means that you are using the Gamma Ray curve. Parameter names are designated with the “$” symbol; for example the “$gr_clean” and “$gr_clay” are for the GR Clean and GR Clay parameters for the Vclay from Gamma Ray methodology.
The following mathematical operators are available:
| Operators & Logicals | Description |
|---|---|
| + | Addition |
| - | Subtraction |
| / | Division |
| * | Multiplication |
| ^ | exponent |
| < | Less than |
| > | Greater than |
| <= | Less than or equal to |
| >= | Greater than or equal to |
| == | Equal to |
| != | Not equal to |
| ! | Not |
| && | And |
| || | Or |
In addition to the mathematical operators and logicals listed above, Danomics has a series of functions available for use, as outlined in the table below.
| Function | Description |
|---|---|
| abs(x) | Absolute value of x |
| min(x,y) | Minimum of x,y |
| max(x,y) | Maximum of x,y |
| isnan(x) | Check if x is null |
| clamp(x,y,z) | Clamp x between y and z |
| percentile(p, x) | Percentile p of values x |
| log(x) | Natural log of x |
| log10(x) | Log base 10 of x |
| e | Euler's number |
| average(x) | Mean of values x |
| nonnan_average(x) | Mean of x, ignoring nulls |
| sum(x) | Sum of values x |
| cumsum(x) | Cumulative summation of x |
| byFormation() | Wrapper to aggregate by Formation |
| byStatsWindow() | Wrapper to aggregate by Stats Window |
Hints & Tips
- Spacing matters. You need to properly align your keys and keywords.
- The structure follows YAML standards.
- You have access to the default CPI Config when you subscribe to Danomics. Use it as a guide for extending the parameters, equations, and plots.
- If you get hopelessly lost, just email us at support@danomics.com
- Most error messages you get will likely be due to typos, minor syntax errors, or spacing – just carefully re-read your code in your editor to find out what went wrong.
- Make sure to test our code – if you make a new plot, inspect it closely to make sure that everything is showing up as planned. Test your equations for commonsense. Make sure that results are moving in the direction you expect when you change parameters.
Related Insights
DCA: Type well curves
In this video I demonstrate how to generate a well set filtered by a number of criteria and generate a multi-well type curve. Before starting this video you should already know how to load your data and create a DCA project. If not, please review those videos. Type well curves are generated by creating a decline that represents data from multiple wells.
DCA: Loading Production data
In this video I demonstrate how to load production and well header data for use in a decline curve analysis project. The first step is to gather your data. You’ll need: Production data – this can be in CSV, Excel, or IHS 298 formats. For spreadsheet formats you’ll need columns for API, Date, Oil, Gas, Water (optional), and days of production for that period (optional). Well header data – this can be in CSV, Excel, or IHS 297 formats.
Sample data to get started
Need some sample data to get started? The files below are from data made public by the Wyoming Oil and Gas Commission. These will allow you to get started with petrophysics, mapping, and decline curve analysis. Well header data Formation tops data Deviation survey data Well log data (las files) Production data (csv) or (excel) Wyoming counties shapefile and projection Wyoming townships shapefile and projection Haven’t found the help guide that you are looking for?