Андрей Колесов (декабрь 1999 года)
После публикации нашего предыдущего обзора мы получили несколько писем читателей, которые просили "на пальцах" еще раз объяснить, какие задачи решаются с помощью Surfer ("что имеется в качестве исходной информации и что получается в конце") и чем он отличается от других графических пакетов для автоматизации инженерных и научных работ. Сравнительный анализ с другими программами — дело для нас просто неподъемное, но тем не менее мы попробуем ответить на этот вопрос на качественном уровне, учтивая также мнение экспертов, которые продолжают заниматься активной научной деятельностью.
Как мы уже отмечали ранее, основным назначением Surfer является обработка и визуализация двумерных наборов данных, описываемых функцией типа z=f(x,y), а логику работы с пакетом можно представить в виде трех основных функциональных блоков:
а) построение цифровой модели поверхности;
б) вспомогательные операции с цифровыми моделями поверхности;
в) визуализация поверхности.
Действительно, возможности графической визуализации выглядят очень эффектно и являются крайне полезными, но все же ключевой функцией Surfer является создание цифровой модели поверхности. Наиболее актуальная постановка данной задачи формулируется как переход от набора значений функции Z в произвольных (неупорядоченных) точках плоскости (N точек с координатами X,Y) к значениям этой функции в узлах некоторой регулярной сетки. В более общей постановке та же задача сводится к возможности вычисления значений функции в любой точке поверхности (а значит, и в узлах сетки) по исходному набору данных.
В качестве иллюстрации приведем следующий пример из нашей прошлой научной деятельности. На некоторой территории имеется некоторое число наблюдательных гидрогеологических скважин, в которых производятся замеры уровня подземных вод (УГВ). Зачем нам нужен переход к значениям в регулярной сетке? Скорее всего, для решения двух задач: 1) построения непрерывной поверхности (например, в виде карты), по которой можно было бы узнать УГВ в любой точке территории; 2) представления этих данных в виде математической цифровой модели, с помощью которой, к примеру, можно было бы, решая дифференциальные уравнения, прогнозировать динамику изменения УГВ под воздействием тех или иных факторов.
Задача же перехода от набора данных в произвольных точках к регулярной сетке (фактически непрерывной поверхности) является совсем нетривиальной и чисто математический аппарат тут не работает. Конечно, можно взять набор исходных данных, формально обработать их по некоторому алгоритму и получить значения в сетке. Но при этом возникает вопрос — а в какой степени полученные результаты соответствуют действительному положению дел?
Тривиальный пример: если у вас есть три скважины в вершинах равностороннего треугольника со сторонами 20 м, то достоверность математического расчета значения УГВ в центре фигуры будет весьма высока. А если сторона треугольника будет 1 км? А если вы с помощью формул посчитаете значение УГВ в 10 км от этих скважин? Посчитать-то можно, но вряд ли кто-то рискнет принимать такие результаты за истину.
Проблема заключается в том, что выполнение такого преобразования данных является довольно серьезной исследовательской задачей, в которой ключевую роль играет квалификация и опыт специалиста. Вычислительный аппарат, при всем своем могуществе, играет в целом вспомогательную роль. Что бы ни посчитал компьютер, ответственность всегда остается за человеком. Смысл этого тезиса выражается в частности и в том, что если специалист по каким-либо причинам не согласен с расчетными данными, то он имеет право напрямую скорректировать результаты. (Другое дело, что он должен обосновать такие свои действия.) Необходимость подобных операций определяется, тем, что математическая модель порой просто не может адекватно отразить сложности реальных природных процессов.
Самый простой пример: нужно построить карту параметра по значениям в N точках. Какой метод аппроксимации выбрать? Попробуйте 8 методов Surfer и вы получите 8 разных результатов. Профессионал для начала сразу уточнит, какие это данные: УГВ, отметки поверхности земли или замеры радиоактивности? Ведь для разных природных параметров требуется использовать разные методы (почему и какие — это отдельная тема).
Вернемся к Surfer. Пакет предоставляет пользователю довольно широкий набор математических методов интерполяции, которые позволяют выбрать наиболее оптимальную модель для решения конкретной прикладной задачи. Но еще более важным достоинством Surfer является его возможность не только получить цифровую модель поверхности, но и провести оценку качества исходных данных и получаемых результатов. А это обеспечивает необходимые предпосылки для решения обратных задач, которые по большому счету и являются целью исследовательских работ.
В нашем примере с гидрогеологическими скважинами получается, что можно проводить выявление "подозрительных" данных (проблемы с работой измерительных приборов или просто некачественные замеры довольно частое явление), определять места территории, где наблюдается излишек или недостаток наблюдательных пунктов. Таким образом, речь идет уже о классической исследовательской задаче (имеющей прямое экономическое значение) — выбрать оптимальную конфигурацию размещения сети наблюдательных пунктов, обеспечивающую необходимое качество получения информации (с помощью интерполяции) на некоторой территории. В Surfer 7.0 решение подобных задач обеспечивается расчетом и построением карт значений погрешностей интерполяции, а также расширенными возможностями моделирования с использованием вариограмм.
Однако, как известно, корректных математических методов решения обратных задач в общем случае просто не существует. Довольно часто они выполняются тривиальным методом перебора разных вариантов (вот тут-то и должен пригодиться опыт исследователя). Поэтому очень важно обеспечить возможность интерактивной коррекции исходных данных и оперативного анализа результатов. В Surfer 7.0 этот механизм стал гораздо удобнее благодаря использованию Object Manager и возможности перерасчета модели без закрытия диалоговых окон, в которых задаются исходные параметры. Очевидно, что при этом просто необходимо обеспечивать высокое быстродействие алгоритмов.
Разумеется, расчетом цифровой модели поверхности исследовательская работа обычно не заканчивается. И в этом плане широкий набор вариантов визуализации с использованием многослойных карт, а также различные вспомогательные методы обработки полученных цифровых моделей, имеющиеся в Surfer, представляются достаточно полными для широкого круга практических задач. В этой связи особенно хотелось бы отметить появившуюся в версии 7 крайне необходимую функцию, предназначенную для получения векторных карт скоростей (расчет производных двумерной функции). Впрочем, посчитать производные по данным оцифрованной поверхности дело не очень сложное.
(В свое время мы написали такую программу еще для Surfer 4.0, которая строила графический PLT-файл в виде векторов, накладывавшийся затем на карту изолиний. Но иметь такое решение в фирменном варианте, тем более и для трехмерных изображений — гораздо удобнее.)