5.3.1.4 Array Data
Topic Version | 1 | Published | 11/11/2016 | |
For Standard | WITSML v2.0 |
The measured values in a log channel are often a single number or string for a given index value, but it could also be an array. Common log channels which are arrays are array resistivity types like FMS and wave data from a sonic tool (where the sonde listens for a period of time at a given depth). These are simple 1D arrays but an array type sent as a log channel could be multi-dimensional. To support multidimensional arrays sent as log channels, the Channel object has member class, which defines the meaning of the axes of that array and how it will be serialized into XML (or on a wire if ETP is being used).
This LogChannelAxis class contains metadata which defines the array structure of the compound value. A single instance of LogChannelAxis defines one axis of an array type used in a Log Channel. An axis can have a name, and must have a property (time, measured depth, etc.) and a unit of measure (meters, seconds, etc.).
Note that the index of the log channel itself is not one of these axes. The multidimensional array is given at an occurrence of the primary index of the log channel. So to continue the previous example, the measured depth for the sonic wave data is not part of an array; the array is a vector (1D array) of evenly-sampled sonic intensity values.
Each axis must be a regularly sampled floating point number, so there are attributes for the starting axis index value, the increment along the axis, and the number of elements along this axis (dimension) of the array (AxisCount).
Here is a sample array:
The identifier of any of these points is the coordinate stated as an x,y pair, or in this case a time/angle pair like (1.0, 10.0) [the value .9] or (2.0, 30.0) [the value .77]. If we generalize the example, an address in an array is like a spreadsheet with x being a column and y being a row. So instead of calling the value .9 as (1.0, 10.0) in a spreadsheet we would call it A1 or the .77 value would be B3. For the benefit of computer programs the column and row indexes are referred to as integers, rather than letters for columns and integers for rows. The start and increment are floating point numbers, and the count is an integer.