Главная страница Visual 2000 · Общий список статей

Новая версия Surfer 7.0

Андрей Колесов, Ольга Павлова

© 1999, Андрей Колесов, Ольга Павлова
Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале "КомпьютерПресс" № 2/2000 (компакт-диск).

Загрузить все (кроме 6,7,8) рисунки, прилагаемые к статье (архивный файл — 284 Кб)



В "КомпьютерПресс" N 10/99 мы как бы подвели черту...

В "КомпьютерПресс" N 10/99 мы как бы подвели черту под обзорами программных продуктов американской компании Golden Software, которые публиковались в течение нескольких месяцев (на компакт-диске октябрьского номера журнала находятся все наши статьи о пакетах Surfer, Grapher, Didger и MapViewer). Однако сейчас мы решили продолжить эту тему по очень простой причине: в сентябре прошлого года стало известно о выпуске новой, седьмой версии программы Surfer — популярного средства обработки и визуализации данных, описываемых двумерными функциями.

Surfer 7.0 сделал довольно значительный шаг по сравнению с предыдущей версией 6.0, появившейся четыре года назад. Помимо расширения функциональных возможностей для конечных пользователей (с точки зрения собственно обработки данных) в пакете реализован на современном уровне механизм автоматизации на основе технологии ActiveX. Приятно отметить, что в целом все это достигнуто при том же уровне требований к техническим средствам, что и в Surfer 6.0.

Полный перечень новшеств Surfer 7.0 можно найти на русскоязычном сервере www.visual.2000.ru/golden, а в этом обзоре мы остановимся только на наиболее существенных с нашей точки зрения отличиях.

В начало статьи

Обработка данных

К шести уже реализованным ранее типам карт в Surfer 7.0 добавлен еще один — векторные карты (рис. 1). Благодаря им можно быстро показывать ориентацию и наклон поверхности с помощью скалярных векторов, то есть отображать производные двумерных функций (направление и величину потока). Такая возможность крайне необходима всем, кто занимается изучением динамических физических процессов. Но, честно говоря, не очень понятно, почему разработчики не реализовали ее раньше — с точки зрения математики и программирования расчет производных и рисовка их значений в виде векторов является довольно тривиальной задачей.

В пакете появился еще один современный метод интерполяции — Natural Neighbor. Кроме того, модифицированы два уже давно знакомых алгоритма: Minimun Curvature и Modified Shepard's Method. Таким образом в распоряжении пользователя сейчас имеется 9 разных вариантов математических моделей.

Одним из наиболее популярных методов интерполяции при обработке широкого круга данных (особенно в сфере наук о Земле) является метод Кригинга (Kriging), основанный на расчете вариограмм. В новой версии Surfer расширилось число моделей вариограмм, а самое главное — пользователь теперь может работать с ними в интерактивном режиме (рис. 2). Это существенно повышает возможности исследователя при анализе и интерпретации исходных и результирующих данных. Следует также отметить, что в документации (бумажной и электронной) появилось описание математических основ используемых методов (ранее имелись только ссылки на научные труды).

Для оценки качества интерполяции весьма полезным является построение карты распределения ошибок Кригинга (рис. 3). На рисунке хорошо видна в общем очевидная ситуация — чем дальше от пунктов замеров параметра, тем выше ошибка интерполяции. Но теперь эту понятную на качественном уровне ситуацию можно увидеть в виде количественных оценок.

Очень необходимым для построения карт параметром является возможность использования границ для раздельной интерполяции данных по различным зонам территории (рис. 4). В Surfer 7 реализованы два варианта границ, разделяющих такие зоны: Breakline, граница первого рода (заданное значение функции) и Fault, непроницаемая граница (частный вариант границы второго рода). В обоих случаях граница задается в виде BLN-файла, но в первом случае (Breakline, нижнее изображение) для каждой точки на линии обязательно задается значение функции, которое используется в расчетах. Граница не обязана пересекать всю территорию, то есть с ее помощью можно, например, имитировать различные искусственные инженерные сооружения (для гидрогеологических задач, в частности, дрены или непроницаемые защитные преграды).

В начало статьи

Оперативность обработки

Повышение оперативности обработки данных имеет особую важность при проведении многовариантных исследований. Данная проблема включает два аспекта: увеличение быстродействия расчетов и улучшение логики работы пользовательского интерфейса. В обоих вопросах Surfer претерпел существенные улучшения.

В версии 7.0 произведен переход на вычисления данных с двойной точностью, что обеспечивает обработку 15 десятичных знаков мантиссы (переход к 32-разрядной архитектуре был выполнен еще в предыдущем варианте программы). Это очень важно для применения алгебраических методов расчетов (в отличие от приближенных вычислений), которые широко применяются в Surfer. Но что приятно — при этом время проведения самих вычислений (на первый взгляд) в некоторых режимах даже сократилось. Сами разработчики объясняют это модернизацией алгоритмов, а также повышением скорости чтения-записи двоичных файлов.

Однако наиболее заметные изменения произошли в интерфейсе пользователя. В первую очередь следует отметить появление окна Object Manager, которое позволяет управлять формируемыми картами с помощью иерархического дерева объектов (рис. 5). Один щелчок мыши по флажку переводит соответствующий объект в состояние "видимый/невидимый", что сразу же отображается на карте (рис. 6). Щелчком правой кнопки мыши пользователь получает доступ к управлению самим объектом.

Полезным новшеством диалогового интерфейса стало появление кнопки Apply в диалоговых окнах управления параметрами карт (рис. 7). Щелчок этой кнопки вызывает автоматическое преобразование карты в соответствии с установленными в окне параметрами. При этом пользователь остается в самом окне, поэтому может оперативно изменить параметры и сразу увидеть новый вариант карты (рис. 8).

В Surfer 7.0 расширен также состав поддерживаемых форматов файлов: список экспортируемых файлов пополнился вариантами SHP, PNG и 3D DXF. Кроме того, Surfer 7.0 позволяет использовать файлы USGS SDTS DEM и DLG. При этом файлы SDTS DEM обрабатываются точно так же, как и любой GRD-файл.

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

В начало статьи

Автоматизация с помощью технологии ActiveX

Поддержка технологии ActiveX появилась в Surfer еще в 1994 году (версия 5.0). В новой версии реализован новый вариант объектной модели, который в целом соответствует структуре модели MS Office 97/2000, ставшей стандартом де-факто. Во всяком случае в Surfer 7.0 и Grapher 2.0 применяются единые подходы к использованию принципов автоматизации задач пользователя на базе ActiveX (рис. 10).

В статье о Grapher мы уже отмечали, что компания Gonden Software реализует отличный от Microsoft вариант механизма создания пользовательских приложений — более упрощенный, но весьма удобный в работе.

Для создания и исполнения скриптов в самом пакете применяется автономное приложение Scripter 3.0, функциональные возможности которого существенно расширены по сравнению с имеющейся в составе Surfer 6.0 аналогичной программой Gsmac. Фактически Scripter является облегченным вариантом Visual Basic 6.0, но реализован не по лицензии Microsoft, а на базе технологий независимых разработчиков — компаний Sax Software и Polar Engineering and Consulting. Внутренний язык Sax Basic полностью совместим c VB 6.0 и имеет некоторые полезные расширения.

Написание довольно простых программ на Basic может автоматизировать решение разнообразных задач (рис. 11).

Естественно, управление Surfer, как ActiveX-сервером, может быть реализовано с помощью любого инструментария, который поддерживает технологию ActiveX-контейнера (VB, VC++, Delphi, Office/VBA и пр.).

Однако следует иметь в виду, что сам Surfer не может быть таким контейнером, то есть из среды этого приложения нельзя обратиться, например, к объектам MS Word или Grapher. (Ведь у Surfer нет внутренней среды программирования)

На наш взгляд, Scripter 3.0 представляет вполне самостоятельную ценность в качестве хорошей альтернативы VB для создания управляющих приложений-контейнеров (для любых приложений, которые являются ActiveX-серверами, а не только Surfer и Grapher). Хотелось бы особо отметить очень удобную, методически правильно построенную (в отличие от продуктов Microsoft) встроенную справку по используемой системе программирования (рис. 12).

В начало статьи

Заключительные замечания

В целом мы считаем, что в новой версии Surfer 7.0 пользователи найдут довольно много полезных новшеств. В то же время нужно быть готовым к тому, что в ней изменились форматы двоичных файлов, которые могут быть импортированы (но далеко не все) в Surfer 6.0 только с помощью ASCII-файлов.

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

Мы уже говорили о том, что несмотря на расширение функциональности Surfer 7.0, его требования к техническим средствам остались в целом на уровне предыдущей версии. Пример этого пакета очень хорошо показывает ложность тезиса о том, что гигантизм современных пакетов предопределяется увеличением их возможностей. (Это особенно хорошо видно на примере сравнения двух пар: Surfer версий 5.0 и 7.0 и соответственно MS Word 6.0 и 2000.)

В связи с высказанными в нашем обзоре MS Office 2000 (см. "КомпьютерПресс" 12/99) претензиями к справочной системе офисных пакетов Microsoft, хотелось бы привести пример продуктов фирмы Golden Software, в которых объем справки также растет, но без снижения скорости доступа к ней, без потери функциональности и с обеспечением удобной и простой работы (рис. 13).

В начало статьи