8.2 Property

Topic Version1Published09/11/2015
For StandardRESQML v2.0.1

In RESQML, all subsurface or surface values tied to specific topological locations (or indexable elements) in a model are carried by any concrete data object that derives from abstract property (contained in the properties package) attached to one or more representations. A representation can have several properties and provides the indexable elements for these lists of values (for more information on indexable elements, see 6.2 Indexing ).

In some cases, geometric information also must be "attached" to a specific location in a model, but the treatment of geometric points is almost identical to that of property values. For more information, see 8.2.3 Mapping Simulator Key Words to Property Aliases .

This section provides an overview of how properties and geometric information are attached to RESQML models.

The value locations are based on three elements:

  • The representation supporting the property values.
  • The type of elements on which the values are stored.
  • One index that uniquely specifies a given element. For a given representation type, each element type is associated with an indexing scheme that allows you to identify any particular element in the representation. The indexing scheme provides a range (0… number of elements) that defines the order inside an array (for more information, see 6.2.2 Multi-Dimensional Arrays and HDF5 Data Storage .
  • When local values are scalar, the array is 1D (in this case, count = 1).
  • Else, the array is 2D and (1) the slowest (first) array dimension is the number of elements in the representation, while (2) the fastest (last) dimension is the number of values per element. The list of element types available is given as a finite list, but this list may be restricted according to the type of representation.

The storage of the value array can be fully explicit inside an HDF5 file, or implicit. Implicit storage can use constant or linear equations based on indexing. The list of values is separated in a patch of values for each patch of the representation. The patch of values contains an index allowing the mapping to the corresponding representation patch.

The stored values are either of type double, integer, character, Boolean or an index that maps to either a string or a table. Each data type corresponds to a specific XML type (Table 8.2-1 ) based on the abstract property value type; below the table are business rules that must be followed.

Table 8.2-1 XML Types Corresponding to Data Types

Type

Corresponding Data Type/Description

ContinuousProperty

Contains double values; most common type of property used for storing rock or fluid attributes.

Stores min and max values so that the value range can be known before accessing all values.

Also contains a unit of measure that can be different from the unit of measure of their property type, but must be convertible into this unit.

DiscreteProperty

Contains discrete integer values; typically used to store any type of index.

Stores min and max so that the value range can be known before accessing all values.

CategoricalProperty

Contains discrete integer values. However these index values are just a proxy for the most complex types, such as string or table.

Associated with a lookup structure:

String lookup associates indices to a string in a table of strings. Example of use: storage of facies properties, where a facies index is associated with a facies name.

Table lookup associates indices to a cell inside a table of values. Example of use: storage of indices associated with empirical tables, such as PVT table.

CommentProperty

Contains strings of character.

Used to capture comments or annotations associated with a given element type in a data object, for example, including comments on specific location on a well path.

The language (e.g., English, French, etc.) used in the comment is included in property values.

BUSINESS RULES:

  • All properties must be associated with a non-abstract property kind (see details below).
  • A continuous property must be associated with a child of standard "continuous" property kind.
  • A discrete property must be associated with a child of standard "discrete" or standard "categorical" property kind.
  • A categorical property must be associated with a child of standard "discrete" or standard "categorical" property kind.
  • A comment property must be associated with a child of non-standard discrete, non-standard categorical, non-standard continuous "RESQML root property."