Найти в Дзене

LAS 3.0 Многомерные массивы. (часть 5)

В прошлой публикации была описаны форматы и типы данных LAS 3.0. В этой публикации продолжу описание многомерных массивов в альтернативной интерпретации. Трехмерные массивы естественным образом не вписываются в явно двухмерный формат ASCII файла. LAS 3.0 предоставляет один из способов определить третье измерение. Рассмотрим пример раздела ~ASCII, содержащего классические двухмерные данные. В этом примере, с двумя каналами данных, которые замерены на указанных глубинах, выделены разным шрифтом (для наглядности). А теперь рассмотрим случай, когда канал Chan1 измерял значения пять раз, при этом каротажный зонд был неподвижен, на каждом уровне глубины. Эти пять измерений являются элементами данных в третьем измерении, и в данном случае с индексом по времени. Первое измерение - это глубина (первый столбец). Второе измерение - это временной индекс каждой выборки данных на этой глубине, а третье измерение - это каждое измерение каждого канала на этой глубине на каждом временном шаге. LAS 3.0
Оглавление

В прошлой публикации была описаны форматы и типы данных LAS 3.0. В этой публикации продолжу описание многомерных массивов в альтернативной интерпретации.

Трехмерные массивы естественным образом не вписываются в явно двухмерный формат ASCII файла. LAS 3.0 предоставляет один из способов определить третье измерение.

Рассмотрим пример раздела ~ASCII, содержащего классические двухмерные данные. В этом примере, с двумя каналами данных, которые замерены на указанных глубинах, выделены разным шрифтом (для наглядности).

Пример описания двухмерного массива.
Пример описания двухмерного массива.

А теперь рассмотрим случай, когда канал Chan1 измерял значения пять раз, при этом каротажный зонд был неподвижен, на каждом уровне глубины. Эти пять измерений являются элементами данных в третьем измерении, и в данном случае с индексом по времени. Первое измерение - это глубина (первый столбец). Второе измерение - это временной индекс каждой выборки данных на этой глубине, а третье измерение - это каждое измерение каждого канала на этой глубине на каждом временном шаге.

LAS 3.0 определяет соглашение, позволяющее хранить трехмерные данные как двухмерные. В приведённом выше примере, где в канале Chan1 производили пять различных измерений во время "остановки" на каждой из глубин (первый столбец), пять измерений просто перечислены как дополнительные каналы рядом с первым каналом.

Значение данных канала Chan1 (1.23) - это первое измерение, которое ожидается для канала, а остальные четыре - оставшиеся измерения, выполненные во времени на указанной глубине. Другой канал данных, Chan2 обычно располагается после пяти измерений указанного трехмерного массива канала Chan1.

Пример формирования трехмерного массива.
Пример формирования трехмерного массива.

Раздел "Определения столбца" для этого раздела "Данные столбца" используется для указания того, какие каналы являются элементами трехмерного массива, а какие - обычными двухмерными компонентами. Необходимо просто добавлять дополнительную информацию в каждую строку каналов массива в разделе "Определение столбца", которая определяет, какие каналы являются членами трехмерного массива. Эту дополнительную информацию необходимо записывать в виде фрагментов информации:

  1. Этот канал является членом трехмерного массива.
  2. Индекс интервал для этого канала. Каждая выборка может быть представлена по времени, расстоянию или углу поворота или может быть просто не индексированным списком.

Вместо введения нового индикатора используется поле Формат {}. Используется специальный символ формата A (ASCII код 65), чтобы указать, что канал является членом массива. Если требуется указать символ обычного формата (F, I, SE или дата/время), то нужная спецификация формата добавляется сразу после символа A, например {AF10.4}. Символ A всегда должен быть первым символом в спецификации формата, если она используется.

Индекс или интервал каждого члена массива могут быть записаны в спецификации формата. Необходимо использовать символ ; (точка с запятой, ASCII код 59) как разделитель перечисления интервала и его единиц измерения после символа A и спецификации формата, например: {AF10.4;5ms}. Это говорит о том, что этот элемент массива расположен через 5 миллисекунд после первого элемента массива. Возможно использование дополнительных индексов. Для этого необходимо разделять их знаком ; (точка с запятой, ASCII код 59), например: {AF10.4;5ms;10ft}.

Имя каждого канала одинаково для каждого элемента массива, поскольку каждый элемент массива является одним и тем же каналом. Чтобы указать разницу, каждое имя имеет суффикс индекса [], к которому в скобках добавляется порядковый номер индекса.

Пример описания последовательности измерений одного канала
Пример описания последовательности измерений одного канала

Этот маркер - [], не является частью имени канала. Это ещё один способ показать, что этот канал является членом массива. Число в прямоугольных скобках указывает счетчик массива, частью массива которого оно является. Каналы, являющиеся элементами трехмерного массива, должны располагаться последовательно от [1] до [n], без содержания между ними данных других каналов. Различные наборы каналов трехмерного массива могут встречаться как ДО, в сочетании с обычными каналами двухмерных данных, так и ПОСЛЕ них, но каждый набор должен быть непрерывным внутри себя.

Массивы заголовков разделов.

В версии LAS 3.0 можно иметь более одного раздела, исключение составляют разделы ~Version, ~Well, ~Parameter, ~Curve и ~ASCII. Чтобы иметь несколько разделов с тем же заголовком, что и у другого раздела, необходимо чтобы каждый заголовок раздела имел суффикс с индексом в прямоугольных скобках, содержащим порядковый номер начинающийся с единицы, например:

  • ~Log_Data[1] | Log_Definition
  • ~Log_Data[2] | Log_Definition

Обращается внимание, что в данном случае оба раздела "Данные столбца" используют один и тот же раздел "Определение столбца". Это означает,что они имеют одинаковый тип данных в каждом столбце. Нет необходимости иметь один раздел данных столбца для каждого раздела определения столбца, если данные, содержащиеся в каждом столбце, действительно идентичны во всех разделах данных столбца.

Если бы у них была какая-либо разница в порядке столбцов, имени, единицах измерения, форматах, то каждому из них понадобился бы свой собственный раздел определения столбца. В этом случае для каждого раздела определения столбца потребуется использовать индексные суффиксы, например:

  • ~Log_Data[1] | Log_Definition[1]
  • ~Log_Data[2] | Log_Definition[2]

Если существуют совпадающие разделы данных параметров для каждого раздела данных столбца, то они так же должны получить один и тот же суффикс индекса [x], например:

  • ~Log_Parameter[1]
  • ~Log_Parameter[2]
Внимание! Для раздела данных журнала логирования или ASCII требуются разделы данных параметров.

Эти правила применяются к любому заголовку раздела (за исключениями указанными выше).

Массивы строк данных параметров.

Если есть две одинаковые мнемоники в одном и том же разделе данных параметров, то есть два варианта:

1. Добавить различные параметры ассоциации, например, для дифференциации прогонов, если это является причиной наличия нескольких вхождений.

Использование ассоциаций при нескольких вхождениях мнемоник.
Использование ассоциаций при нескольких вхождениях мнемоник.

2. Добавить к каждому суффикс последовательного индекса [n]. Параметры ассоциации в этом случае являются необязательными и должны использоваться, если они требуются.

Использование сквозного суффикс при нескольких вхождениях мнемоник.
Использование сквозного суффикс при нескольких вхождениях мнемоник.

Номера индексов должны начинаться с единицы [1] и должны идти последовательно. Однако они не обязательно должны появляться последовательно в файле. Дополнительный подробности находятся в разделе Ассоциации LAS 3.0.

Продолжение описания в следующей публикации.