3.3.16.8 Record: IndexMetadataRecord

Topic Version1Published10/31/2016
For StandardETP v1.1

Metadata for an index.

Avro Schema

{

      "type": "record",

      "namespace": "Energistics.Datatypes.ChannelData",

      "name": "IndexMetadataRecord",

      "fields":

     [

         { "name": "indexType", "type": "Energistics.Datatypes.ChannelData.ChannelIndexTypes" },

         { "name": "uom", "type": "string" },

         { "name": "depthDatum", "type": ["null", "string"] },

         { "name": "direction", "type": "Energistics.Datatypes.ChannelData.IndexDirections" },

         { "name": "mnemonic", "type": ["null", "string"] },

         { "name": "description", "type": ["null", "string"] },

         { "name": "uri", "type": ["null", "string"] },

         { "name": "customData", "type": { "type": "map", "values": "Energistics.Datatypes.DataValue" } },

         { "name": "scale", "type": "int" },

         { "name": "timeDatum", "type": ["null", "string"] }

     ]

}

Attribute

Description

Data Type

Min

Max

indexType

Main type of the index (time, depth, etc.) as defined by ChannelIndexTypes enumeration.

ChannelIndexTypes

1

1

uom

The units of measure for the index.

  • For time or relative time indexes, this value is ignored, because the units are implicit from the index type (i.e., micro-seconds).
  • For depth indexes, it must be a valid LengthUom from the Energistics UOM Specification. This is the UOM of the index AFTER scaling is applied to the long value in the index field of data points.

string

1

1

depthDatum

Describes the vertical datum for depth indexes. For WITSML channels, this MUST be supplied as a URI to the relevant well datum in the store associated with the channel. This can normally be a relative URI, in the form of a uid string for the referenced datum. For example, if we have a well with a datum with the uid 'KB', either of the following URIs would be correct:

'eml:///witsml14/well(1d8af245-8da9-4ece-86cd-e115e9c88a3e)/wellDatum(KB)'

'KB'

The second form assumes that it is clear to the consumer what is the reference well for the channel involved. ETP itself, as a pure exchange protocol, has no knowledge of wells, etc. However, it normally is the case for a WITSML implementation that URIs of channels make clear the well context.

string

0

1

direction

The direction of the index values, increasing or decreasing. Must remain constant for the life of a channel.

IndexDirections

1

1

mnemonic

A mnemonic description of the index. This is an optional field; in the absence of a value, the string representation of the indexType enumeration SHOULD be considered the mnemonic.

string

0

1

description

Optional human readable description of the index.

string

0

1

uri

A URI for the index. Optional field that allows an index to reference a permanent object on the producer or server.

string

0

1

customData

Key-value map of additional index information. Currently there are no standardized keys, and this is used only for vendor-specific information. Standard keys and values may be defined in the future.

DataValue

0

n

scale

For depth indexes only. Defines a power of 10 scale that is applied to the long integer value in the index field of all data points. For example, using a depth index whose UOM is feet, with a desired precision of hundredths of a foot, the scale is 2. The integer value 12345 represents a depth of 123.45 ft and a value of 12300 is used to represent exactly 123.00 ft. This value is used in all messages that reference a depth channel.

int

1

1

timeDatum

If the indexType is time, then this field can provide a datum for all time values in the channel. If supplied, it MUST be a UTC time in ISO 8601 string format (i.e., must have a trailing 'z' as the time zone. If it is null, then the datum is assumed to be the epoch of 12 AM Jan 1, 1970. The time of a given data point is determined by taking this datum in microseconds and adding the value of the index for that data point.

string

0

1