4.2.3 ChannelMetadata Message
Topic Version | 1 | Published | 10/16/2017 | |
For Standard | ETPW20 v1 |
The producer replies to ChannelDescribe message with the following ChannelMetatdata message; below, see the tables that show mappings for channel and index metadata and the domain object XML. NOTE: As shown in the example, a channel must be unique within the context of a server, so the channel URI requires a UUID. The channel index refers to the type of index for the channel (either time, depth or both) so the channel index URI does not require a UUID.
// [91e2682e-5f0a-44bc-86fb-2ba708e78f7f] Message received at 2017-08-12 10:47:59.2218{
"protocol":1,
"messageType":2,
"correlationId":9,
"messageId":25,
"messageFlags":3}{
"channels": {
"channelUri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(06dd54c2-1e9d-442c-80da-7b15768f31ce)",
"channelId": 0,
"indexes": [ {
"indexType": "Depth",
"uom": "m",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "MD",
"description": "MD",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(MD)",
"customData": {},
"scale": 3,
"timeDatum": null }, {
"indexType": "Time",
"uom": "s",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "TIME",
"description": "TIME",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(TIME)",
"customData": {},
"scale": 3,
"timeDatum": null } ],
"channelName": "ROP",
"dataType": "double",
"uom": "m/h",
"startIndex": 900,
"endIndex": 8800,
"description": "ROP",
"status": "Active",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"source": "MWD",
"measureClass": "Velocity",
"uuid": "06dd54c2-1e9d-442c-80da-7b15768f31ce",
"customData": {},
"domainObject": {
"resource": {
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(06dd54c2-1e9d-442c-80da-7b15768f31ce)",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"name": "ROP",
"channelSubscribable": true,
"customData": {},
"resourceType": "DataObject",
"hasChildren": 0,
"uuid": "06dd54c2-1e9d-442c-80da-7b15768f31ce",
"lastChanged": 0,
"objectNotifiable": true },
"contentEncoding": "gzip",
"data": [ binary data truncated for readability ] } }, {
"channelUri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(ef87b732-a9c6-44ba-bc72-9f40386fecea)",
"channelId": 1,
"indexes": [ {
"indexType": "Depth",
"uom": "m",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "MD",
"description": "MD",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(MD)",
"customData": {},
"scale": 3,
"timeDatum": null }, {
"indexType": "Time",
"uom": "s",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "TIME",
"description": "TIME",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(TIME)",
"customData": {},
"scale": 3,
"timeDatum": null } ],
"channelName": "HKLD",
"dataType": "double",
"uom": "klbf",
"startIndex": 900,
"endIndex": 8800,
"description": "HKLD",
"status": "Active",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"source": "MWD",
"measureClass": "Force",
"uuid": "ef87b732-a9c6-44ba-bc72-9f40386fecea",
"customData": {},
"domainObject": {
"resource": {
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(ef87b732-a9c6-44ba-bc72-9f40386fecea)",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"name": "HKLD",
"channelSubscribable": true,
"customData": {},
"resourceType": "DataObject",
"hasChildren": 0,
"uuid": "ef87b732-a9c6-44ba-bc72-9f40386fecea",
"lastChanged": 0,
"objectNotifiable": true },
"contentEncoding": "gzip",
"data": [ binary data truncated for readability ] } }, {
"channelUri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(ff9615df-1fb5-45fe-9157-1a7f4ef4e9ae)",
"channelId": 2,
"indexes": [ {
"indexType": "Depth",
"uom": "m",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "MD",
"description": "MD",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(MD)",
"customData": {},
"scale": 3,
"timeDatum": null }, {
"indexType": "Time",
"uom": "s",
"depthDatum": null,
"direction": "Increasing",
"mnemonic": "TIME",
"description": "TIME",
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/ChannelIndex(TIME)",
"customData": {},
"scale": 3,
"timeDatum": null } ],
"channelName": "GR",
"dataType": "double",
"uom": "gAPI",
"startIndex": 900,
"endIndex": 8800,
"description": "GR",
"status": "Active",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"source": "MWD",
"measureClass": "Gamma_Ray",
"uuid": "ff9615df-1fb5-45fe-9157-1a7f4ef4e9ae",
"customData": {},
"domainObject": {
"resource": {
"uri": "eml://witsml20/ChannelSet(21b0c388-5a5d-4153-9759-b112e3042339)/Channel(ff9615df-1fb5-45fe-9157-1a7f4ef4e9ae)",
"contentType": "application/x-witsml+xml;version=2.0;type=Channel",
"name": "GR",
"channelSubscribable": true,
"customData": {},
"resourceType": "DataObject",
"hasChildren": 0,
"uuid": "ff9615df-1fb5-45fe-9157-1a7f4ef4e9ae",
"lastChanged": 0,
"objectNotifiable": true },
"contentEncoding": "gzip",
"data": [ binary data truncated for readability ] } } ]}
Channel Metadata Record:
Metadata Property |
Channel Property |
Example |
---|---|---|
channelUri |
Channel URI |
eml://witsml20/Channel(4a403536-ebf2-490f-a2c2-ae3a38713aa6) |
channelId |
Unique channel identifier, per session |
0 |
channelName |
Channel.Citation.Mnemonic |
GR |
dataType |
Channel.DataType |
double |
uom |
Channel.Uom |
gAPI |
startIndex |
Channel.StartIndex.Depth |
0.0 |
endIndex |
Channel.EndIndex.Depth |
0.0 |
description |
Channel.Citation.Description or Channel.Citation.Title |
GR1AX |
status |
Channel.GrowingStatus |
active |
contentType |
Channel Content Type |
application/x-witsml+xml;version=2.0;type=Channel |
source |
Channel.Citation.Source |
ACME Drilling Company |
measureClass |
Channel.ChannelClass.Title |
Gamma_Ray |
uuid |
Channel.Uuid |
4a403536-ebf2-490f-a2c2-ae3a38713aa6 |
indexes |
See Index Metadata Record below |
[ ] |
domainObject |
DataObject with Resource and Data. While this property is optional in ETP, for WITSML v2.0 you must send the domain object. The Channel Metadata message does not have elements for all necessary WITSML elements (for example, AxisDefinitions); therefore, you must always send the domain object. |
{ } |
customData |
n/a |
{ } |
Index Metadata Record:
Metadata Property |
ChannelIndex Property |
Example |
---|---|---|
indexType |
Channel.Index.IndexType |
ChannelIndexTypes.Depth |
uom |
Channel.Index.Uom |
ft |
depthDatum |
Channel.Index.DatumReference |
KB |
direction |
Channel.Index.Direction |
IndexDirections.Increasing |
mnemonic |
Channel.Index.Mnemonic |
MD |
description |
Channel.Index.Mnemonic |
measured depth |
scale |
n/a |
3 |
uri |
n/a |
eml://witsml20/Channel(4a403536-ebf2-490f-a2c2-ae3a38713aa6)/MD |
Domain Object XML:
<Channel schemaVersion="2.0" uuid="4a403536-ebf2-490f-a2c2-ae3a38713aa6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.energistics.org/energyml/data/witsmlv2">
<Citation xmlns="http://www.energistics.org/energyml/data/commonv2">
<Title>GR1AX - 170115-141020-039</Title>
<Originator>DataGenerator</Originator>
<Creation>2017-01-15T20:10:20.039Z</Creation>
<Format>PDS.Witsml, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=null</Format>
</Citation>
<Mnemonic>GR</Mnemonic>
<DataType>double</DataType>
<Uom>gAPI</Uom>
<GrowingStatus>active</GrowingStatus>
<Source>MWD</Source>
<TimeDepth>depth</TimeDepth>
<ChannelClass>
<ContentType xmlns="http://www.energistics.org/energyml/data/commonv2">application/x-eml+xml;version=2.1;type=PropertyKind</ContentType>
<Title xmlns="http://www.energistics.org/energyml/data/commonv2">Gamma_Ray</Title>
<Uuid xmlns="http://www.energistics.org/energyml/data/commonv2">b0512912-439f-447d-a780-158cc2e46406</Uuid>
</ChannelClass>
<StartIndex xsi:type="DepthIndexValue">
<Depth>0.9</Depth>
</StartIndex>
<EndIndex xsi:type="DepthIndexValue">
<Depth>8.8</Depth>
</EndIndex>
<LoggingMethod>MWD</LoggingMethod>
<Index>
<IndexType>measured depth</IndexType>
<Uom>m</Uom>
<Direction>increasing</Direction>
<Mnemonic>MD</Mnemonic>
<DatumReference>MSL</DatumReference>
</Index>
<Index>
<IndexType>date time</IndexType>
<Uom>s</Uom>
<Direction>increasing</Direction>
<Mnemonic>TIME</Mnemonic>
<DatumReference>MSL</DatumReference>
</Index>
</Channel>