Подавляющее большинство алгоритмов обработки данных каротажа представляет собой способ построения дискретной числовой последовательности реализующей зависимость выходного параметра от одного, или нескольких входных. Сама зависимость обычно существует в виде уравнения или в виде сетки условий или в виде комбинации (иногда очень запутанной) того и другого. Иногда, для упрощения процесса ручной интерпретации, для таких зависимостей строится их графическое представление. Получается палетка, к которой все привыкли. Но, если формула доступна и может быть использована, мы постараемся пользоваться формулой. Отсюда следует, что палетками, для построения которых использовались доступные математические формулы, мы предпочитаем не пользоваться. Все-таки лучше формулы. И работают быстрее и результаты намного точнее.
Но существует все-таки ряд зависимостей, которые имеют только графическое или табличное представление. Это зависимости, которые были получены в результате фактических измерений на макетах или моделях. Тут уже никуда не денешься. И нам пришлось разрабатывать методы для моделирования ручной работы с палетками на компьютере.
У нас есть программа, которую мы пока не рискуем распространять, а используем только для внутренних нужд. Она позволяет ввести зависимость в табличном виде, преобразовать ее в кривые с использованием сплайнов и сохранить параметры сплайнов в файл палетки. Кстати файл палетки представляет собой текстовый файл с цифрами и строками и может редактироваться вручную, если это надо. Если же существует только графическое представление зависимости, то лист вначале сканируется, затем каждая линия на нем оцифровывается и получается две колонки цифр (по сути, то же табличное представление) для каждой линии. А затем все как в начале абзаца. Все, доступные на сегодня палетки, могут быть скопированы из раздела «Скачать». Если вы сами пишите управляющие модули и хотите пользоваться своими палетками, отсканируйте такие палетки с разрешением 300DPI и пришлите нам в виде графических файлов. Мы их оцифруем и вернем вам в виде файлов палеток.
Файлы палеток имеют расширение «PAL». Программа «Lasso» распознает такие файлы по расширению и позволяет заносить палетки в базу (если структура файла не нарушена). Палетки всегда заносятся на самый верхний уровень иерархии (распространяются на все скважины всех месторождений). Как вы уже знаете, при создании документа программой «Опиум», в него загружаются все данные из базы, которые относятся к выбранной скважине. Так вот, помимо этого, в каждый документ загружаются и палетки. Уточним, что под объектом палетки мы понимаем лист с одной или несколькими кривыми зависимости на нем. Убедиться в том, что палетки загружены в документ, а заодно и посмотреть на них, можно с помощью сервисного управляющего модуля «Просмотр палеток». Объекты палеток недоступны для модификации и могут только заноситься в базу или удаляться из нее.
В общих чертах все выглядит так. Пишется управляющий модуль. В нем создается объект палетки. Этот объект инициализируется данными одной из палеток, загруженных из базы в документ «Опиум». После этого в распоряжение программиста поступают функции, предоставляемые объектом палеток. Эти функции позволяют получать значение одной из координат по значению другой, подбирать наиболее подходящую для группы точек линию из семейства линий, расширять семейство линий промежуточными линиями методом линейной интерполяции и т.д. Пользуясь этими функциями, автор управляющего модуля получает интересующие его значения, выполняя, таким образом, стоящую перед ним задачу. Более подробно аспекты программирования с использованием объекта палеток освещены в соответствующих статьях из раздела «Программирование».
Небогатый, пока, опыт программирования с использованием палеточных зависимостей, позволяет поделиться с вами наблюдениями относительно положительных и отрицательных впечатлений. К очевидным плюсам следует отнести малые затраты времени на разработку прикладных управляющих модулей. Нет необходимости вникать в физический смысл процесса, отлаживать иногда очень запутанную логику принятия решений в зависимости от условий измерений и т.д. В палетке все уже учтено. Ты ей: «Будь готов!», она тебе — «Всегда готов!». Вот и все программирование. Иногда это очень даже оправдано.
К минусам можно отнести низкую точность получаемого результата. Правда, она еще никогда не была ниже того порога, который удовлетворяет интерпретатора, однако ветхость первоисточников, плюс неточности при сканировании, плюс погрешность при оцифровке… В конце концов все это сказывается и на результате. Хотя, чего греха таить, при ручной интерпретации погрешность все равно больше.
Е.А. Полищук