Найти тему

LAS 3.0 Детали структуры. (часть 2)

Оглавление

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

Разделы

Разделы ~Version и ~Well должны появляться в каждом файле версии LAS 3.0 как первый и второй раздел соответственно.

Другие разделы сгруппированы по типу данных. Каждая группа состоит из двух или трёх секций в указанном ниже порядке:

  1. Раздел "Данные параметра" (Parameter Data) (необязательный раздел для всех данных, кроме данных журнала).
  2. Раздел "Описание столбца" (Column Definition).
  3. Раздел "Данные столбца" (Column Data).

Например, данные анализа керна будут состоять их трёх следующих разделов:

~Core_Parameter
~Core_Definition
~Core_Data

В каждом файле LAS 3.0 должна существовать, по крайней мере, одна группа или тип данных из определённых типов данных в LAS 3.0 или пользовательского типа.

Разделы "Описания столбца" (Column Definition) и "Данные столбца" (Column Data) для каждого типа данных являются согласованными наборами и должны отображаться в указанном порядке. Соответствующий раздел данных параметров является необязательным (за исключением данных протоколирования), но если он используется, он должен стоять перед соответствующим разделом описания столбца.

Формат LAS 3.0 описывает ШЕСТЬ конкретных хорошо связанных типов данных и названия их родительских разделов:

~Ascii (или ~Log)
~Core
~Inclinometry
~Drilling
~Tops
~Test

Дополнительные типы данных могут быть определены и описаны пользователем, а правила оформления содержимого могут описывать другие заголовки разделов. Описание пользовательских типов данных будут представлены дальше.

В секцию «Данные параметров» (Parameter Data) могут быть добавлены отдельные пользовательские разделы. Необходимо проявлять осторожность в использовании автономных разделов в секции «Данные параметра» (Parameter Data) и использовать это только в том случае, если содержащиеся в них данные не подходят в любой из других определенных типов данных.

При использовании описания, порядок разделов каждого набора из трех разделов для каждого типа данных должен быть таков: «Параметр» (Parameter), «Описание» (Definition) и затем «Данные» (Data).

Пустые строки и строки комментариев могут быть описаны в разделах «Данные столбца» (Column Data), но могут отображаться только ПЕРЕД первой строкой данных столбца этого раздела или после ПОСЛЕДНЕЙ строки данных столбца этого раздела. Таким образом, в середине раздела пустых строк и строк комментария быть не должно.

Названия каждого канала могут дополнительно отображаться над каждым каналом в виде строки комментария, непосредственно перед, после или на строке заголовка раздела этого раздела, если позволяет место.

Нельзя использовать раздел ~Other, распознаваемый в LAS 2.0. Он больше не разрешен в LAS 3.0. Любые данные, которые могут быть сохранены в таком разделе, теперь должны храниться отдельно в пользовательском разделе «Данные параметра» (Parameter Data) или «Данные столбца» (Column Data).

Строки внутри разделов

Строка заголовка раздела.

Первым символом в строке заголовка раздела должен быть символ ~ (тильда, ASCII код 126). Далее набор символов до следующего пробела, следующей | (вертикальной черты) или конца этой строки является идентификатором заголовка раздела.

Заголовки разделов данных параметров должны быть названы путем добавления суффикса _Parameter к заголовку родительского раздела, например: ~Core_Parameter.

Заголовки разделов определения столбцов должны быть названы путем добавления суффикса _Definition к заголовку родительского раздела, например: ~Core_Definition.

Заголовки разделов данных столбцов должны быть названы путем добавления суффикса _Data к заголовку родительского раздела, например: ~Core_Data.

Есть разделы, которые являются исключением из общих правил из обязательных добавлений суффикса. К таким разделам относятся разделы ~Parameter, ~Curve и ~ASCII, которые подразумевают регистрацию данных.

Строка заголовка раздела данных столбца должна включать в себя ассоциацию с соответствующим разделом определения столбца.

Например, первый символ ~ (тильда, ASCII код 126), за тильдой идёт заголовок раздела, за заголовком раздела идёт символ | (вертикальная черта, ASCII код 124), за которым идёт заголовок раздела определения (без тильды):

~Core_Data | Core_Definition

Этот способ позволяет быстро узнать, какой раздел определения относится к какому разделу данных столбца.

Ни какие другие строки заголовка раздела, кроме строки заголовка раздела данных, не могут использовать разделитель ассоциации | (вертикальная черта, ASCII код 124), за которым следуют другие заголовки разделов.

Строка "Заголовок раздела" должна содержать как минимум символ ~ (тильда, ASCII код 126). Символ сразу за тильдой не должен быть пробелом (пробел, ASCII код 32). Таким образом, название раздела должно начинаться сразу после знака тильда.

Если есть знак | (вертикальная черта, ASCII код 124) и есть соответствующий заголовок раздела столбца, то раздел определения столбца должен существовать в LAS файле. Любое число пробелов может разделять заголовок раздела и вертикальную черту, и вертикальную черту и заголовок раздела определения столбца.

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

Каждая строка данных параметра состоит из минимум ЧЕТЫРЁХ полей с разделителями (в некоторых случаях минимальное количество полей может составлять ШЕСТЬ). Каждое поле имеет определённое имя. Некоторые поля могут содержать знак пробела (пробел, ASCII код 32) только в том случае если они не нужны. Например, поле UNIT.

MNEM .UNIT VALUE : DESCRIPTION {FORMAT} | ASSOC1, ASSOC2 ...

Разделительные символы используются для разделения полей, как более расширенный вариант формата LAS 2.0. Зачастую используют выравнивание пробелами параметров для удобного чтения, однако это не является обязательным и носит только рекомендательный характер.

Запрещено использовать символы табуляции (TAB, ASCII код 9) для разделения элементов данных параметров. Табуляция зарезервирована для использования в качестве символа-разделителя и может использоваться только в строках данных параметров в качестве разделителя между несколькими элементами данных поля значения или для разграничения параметров ассоциации.

MNEMONIC (MNEM)

Длина поля МНЕМОНИКА должны быть более 0 символов. Имя поля не должно содержать знаки: точка, двоеточие :, пробел, табуляция, фигурные скобки {}, прямоугольные скобки [], вертикальной черты |. Первые и последние пробелы игнорируются. Поле обычно оканчивается пробелом, который не включается в имя поля. Иногда поле может оканчиваться точкой, точка также не включается в имя поля.

UNIT

Поле ЕДИНИЦА ИЗМЕРЕНИЯ присутствует, если данные имеют единицу измерения, поле не обязательное, длина поля может быть нулевой. Имя поля не должно содержать знаки: двоеточие :, пробел, табуляция, фигурные скобки {}, прямоугольные скобки [], вертикальной черты |. Поле начинается с первой точки в строке и заканчивается (но не включает) первый пробел или первый знак двоеточия (первый знак двоеточия после первой точки в строке).

VALUE

Длина поля ЗНАЧЕНИЕ может быть любая (даже нулевое). Имя поля не должно содержать: двоеточий :, фигурных скобок {}, прямоугольных скобок [], вертикальной черты |. Если присутствует поле UNIT, то между первым символом поля VALUE и полем UNIT должен быть минимум один знак пробела. Поле VALUE (Значение) заканчивается (но не включает) последним символом двоеточия в строке. Поле VALUE может содержать более одного фрагмента метаданных. Каждый фрагмент должен быть отделён от другого фрагмента символом, который определён в параметре DLM (DELIMITER, символ разделитель) описанный в разделе ~Version.

Отдельные элементы данных, которые сами в себе содержат символ разделитель, должны быть полностью заключены в пару кавычек " " (каждая кавычка ASCII код 34).

DESCRIPTION

Поле ОПИСАНИЕ может быть любой длины. Раздел начинается с последнего символа : (двоеточия) в строке (но не включает его) и заканчивается символом { (левая фигурная скобка) или заканчивается символом | (вертикальная черта) или символом конца строки, в зависимости от того что встречается первым.

FORMAT

Поле ФОРМАТ является не обязательным. Значение поля находится внутри в последнем наборе совпадающих пар фигурных скобок {}. Неверное использование фигурных скобок обычно приводит к ошибкам чтения данных.

Если поле ФОРМАТ отсутствует, то это означает, что любые числовые данные, на которые ссылается эта строка, должны быть в формате с плавающей запятой.

ASSOCIATION

Поле АССОЦИАЦИЯ является необязательным полем. Поле АССОЦИАЦИЯ содержит одну или несколько МНЕМОНИК из других частей LAS файла в строках данных параметров или определений столбца. Эти строки содержат информацию, связанную с данными найденными в этой строке.

МНЕМОНИКИ АССОЦИАЦИЙ перечислены после последней вертикальной черты |, и разделены (если ассоциаций несколько) символом, указанным в параметре DLM раздела ~Version. Каждая используемая мнемоника ассоциации должна присутствовать где-то в LAS файле как допустимая мнемоника в строке данных параметра или строке определения столбца.

Строки раздела данных столбца и комментарии не могут содержать связанные параметры.

Строки определения столбца.

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

Строки данных столбца.

Строки данных столбца содержат значения данных с разделителями в каждой строке раздела данных столбца. Строки данных столбцов могут иметь любую длину и содержать любое количество элементов данных. Если в определении столбца для любого элемента данных указан ФОРМАТ {} (с плавающей запятой, целое число или другое), то все элементы данных должны быть отформатированы с использованием указанного формата.

Каждая строка должна содержать одинаковое количество символов-разделителей, что на один меньше, чем количество данных. Количество элементов данных должно совпадать с количеством строк определения столбца, которые находятся в соответствующем разделе определения столбца.

Каждый столбец данных должен быть разделён только одним символом-разделителем, указанным в поле параметра DLM раздела ~Version. Если символом-разделителем является пробел (SPACE), то непрерывные символы пробела рассматриваются как один символ-разделитель.

В файлах, в которых символ-разделитель является запятая или табуляция в этих файлах элементы данных могут отсутствовать на любом уровне. При отсутствующем элементе данных указываются два последовательных символа-разделителя. Значение этого элемента данных должно быть идентифицировано как NULL, описанное в разделе ~Well с помощью параметра NULL. Для файлов, у которых символ-разделитель пробел, элементы данных отсутствовать не могут, необходимо использовать значение NULL описанное в разделе ~Well.

Элементы данных, которые сами по себе содержат символ-разделитель, должны быть полностью заключены в одну пару кавычек " " (ASCII код одной кавычки 34). Ни один элемент данных не может содержать пару символов двойных кавычек "" (дважды ASCII код 34). В случаях, когда встречаются два и более последовательных символа-разделителя (за исключением пробелов), каждый символ-разделитель должен интерпретироваться как значение NULL описанное в разделе ~Well.

Например, если значение параметра NULL определено как -9999.25 то запись:

1000.00,13.45,,46.0985,,,

эквивалентна записи

1000.00,13.45,-9999.25,46.0985,-9999.25,-9999.25,-9999.25

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

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