ИСТИНА |
Войти в систему Регистрация |
|
ИСТИНА ПсковГУ |
||
Первообладателями программы являются авторы программы, Московский государственный университет имени М.В. Ломоносова, Научно-учебный Музей землеведения. Subroutine MIN8MAX строит объемное изображение функции под разным углом зрения.УДК 550.8S1:681.3 О. K. ЛИТВИНЕНКО, А. В. ТЫГЛИЯН, М. Д. РУКИН ГРАФИЧЕСКОЕ ПОСТРОЕНИЕ ГЕОФИЗИЧЕСКИХ КАРТ С ПОМОЩЬЮ ЭВМ В настоящее время в разведочной геофизике широко применя¬ются ЭВМ второго поколения для обработки и интерпретации геофизических данных и намечается переход к ЭВМ третьего поколения серии ЕС. Одна из важных проблем при реализации систем обработки для машин третьего поколения состоит в разработке математи¬ческого обеспечения графического построения карт. Авторы ставили цель - проанализировать имеющиеся программы на ФОРТРАНЕ и дать их сравнительную оценку для построения геофизических карт на серийных графопостроителях серии ЕС. В настоящей работе линии уровня вычерчивались с помощью шагового графопостроителя «Са1сошр-565» (Калькам-565) ру¬лонного типа с минимальным шагом пера 0,127 мм. У серийного графопостроителя ЕС-7053 шаг пера 0,1 мм. Размеры рабочего поля вычерчивания у обоих графопостроителей одинаковы. Поэтому при эксплуатации графопостроителя ЕС-7053 c использованием описанного математического обеспечения рас¬сматриваемой задачи качество изображаемых карт будет таким же, как и на приводимых рисунках. Постановка задачи. Значения F(x, у) измеряемой величины заданы в узлах квадратной сетки с шагом h: xn = nh; Ym= mh, где /гит — число шагов по сети X и У. Значения функции F(X, У) содержат случайные погрешности. В плоскости X, У с помощью графопостроителя требуется изобразить линии уровня (изолинии) функции F(X, К), т. е. линии, на которых функция F(X, У) принимает постоянные значения С, и следовательно, их координаты связаны соотношением. F(X, У) = С. Линии уровня необходимо провести через равные интерва¬лы значений С. Алгоритмов решающих эту задачу, достаточно много [2, 3, 5]. Поэтому авторы не задавались целью приба¬вить еще один новый алгоритм к уже имеющимся. Важнее было выяснить, какие результаты дают существующие программы на массивах, специфичных для гравиметрической разведки. Работа программ сравнивалась сначала на аналитически полученных массивах F (Хп, Ут), а затем на тех же массивах с наложенной, нормально распределенной случайной погрешностью. Средняя квадратическая погрешность (0,07) соответствует фактически существующим погрешностям при съемках определенного масштаба. В качестве аналитических массивов использовались данные, полученные по программе подготовки теста [1]. Графическое изображение всего теста приводится в указанной моно¬графии. В настоящей работе дан графический материал для центральной части тестового поля [1]. Результаты работы программ сравнивались по следующим принятым нами критериям: 1) гладкость линии уровней (от¬сутствие изломов); 2) отсутствие пересечений изолиний разных значений; 3) точность передачи всех деталей поля. Краткое описание и опробование алгоритмов. Наиболее простыми являются алгоритмы [3, 5], которые обеспечивают ли¬нейную интерполяцию заданной сеточной функции F(Xn, Ут), заменяя ее кусочно-гладкой. В алгоритме гладкой интерполяции [2] функция приближается кубическими по X и У многочленами, коэффициенты, которых вычисляются из условия непрерывности функции и ее первых производных в тринадцати соседних узлах сетки. При необходимости этот алгоритм обеспечивает приближение функции многочленами более высокого порядка, что позволяет добиваться непрерывности вторых и третьих производных. Алгоритм рассматриваемой задачи включает следующие этапы: поиск /начала линии уровня; определение координат этой начальной точки; проведение изолиний изложенным ниже способом. Рассмотрим их содержание. Начало линии уровня определяется как точка пересечения уровня с границей области или горизонтальными прямыми сетки. Координаты этой начальной точки вычисляются по формулам линейной интерполяции алго¬ритмом [3], а в алгоритме гладкой интерполяции она опреде¬ляется численно как корень неявного уравнения F(X0, У) = С для горизонтальных полос и F(X, У0) = С для вертикальных полос. В методе [5] с помощью линейной интерполяции определяются координаты точек пересечения линии уровня со сторонами и диагоналями прямоугольных ячеек сетки и далее последовательно определяются координаты всех следующих точек изолинии. В методе гладкой интерполяции поиск следующей точки, лежащей на линии уровня, реализуется так: координаты Рис. 1. Изображение изолиний по алгоритму линейной интерполяции (В. Я. Карпов, Н. Н. Тюрина) начальной точки получают приращение S (S - шаг пера графопостроителя) по трем разным направлениям. В этих точках вычисляются значения по формулам гладкого восполнения, в качестве координаты следующей точки линии выбирается та из трех, для которой отклонение функции от заданного значения изолинии минимально. Таким образом, в алгоритмах [2, 5] в цикле описываются все заданные линии уровня. Применяя формулы гладкой интерполяции и уменьшая шаг пера S, мож¬но в этом алгоритме получить точное восстановление изолиний. Алгоритмы, основанные на линейной интерполяции, являют¬ся наиболее экономичными с точки зрения затрат машинного времени. Они дают хорошие результаты, если можно произ¬вольно уменьшать шаг сетки h, например, если сеточная функ¬ция F(Xn, Уm) вычисляется по известной аналитической зави¬симости величины F от X, У и наблюдения проводятся с неко¬торым заданным: шагом, но в геофизических наземных съемках такое условие отсутствует. Если измеряемая величина реги¬стрируется непрерывно, например при морских или воздушных съемках, то в этих условиях рассматриваемой алгоритм дает весьма хорошие результаты. На рис. 1 изображено поле, координаты изолиний которого вычислялись по точному (невозмущенному) массиву с по¬мощью программы [5]. Как видно, на карте наблюдаются изло¬мы, которые удалось бы устранить, уменьшив шаг сетки h. Лучшие результаты на т'ом. же исходном массиве данных дает алгоритм гладкой интерполяции сеточной функции. При том же шаге сетки h изломы на кривых отсутствуют, как это видно из рис. 2. Более того, качество изображения не становится хуже при наложении на сглаженный массив случайной погрешности со средним квадратическим отклонением, соответствующим 14% от приращения значения функции F на соседних изолиниях (рис. 3). Рекомендуемая авторами к использованию в практике геофизических работ программа описана в [2] под названием CONDEK (Кондек) (LX, LYX, Y, F, STEP, К , N, С). При обращении к ней следует задать параметры: LX — длина мас¬сива X (число узлов сетки по оси X). ЬУ — длина массива У (число узлов сетки по оси У); X — одномерный массив, задаю¬щий координаты X узлов сетки (должен быть упорядочен по возрастанию); Y — одномерный массив, задающий координаты У узлов сетки (должен быть упорядочен по возрастанию); F — двумерный массив размеров LX, ЬУ, задающий значения функ¬ции F в узлах сетки; STEP — шаг движения пера при ведении изолиний в см; К— целое положительное число, равное чис¬лу полос, на которые делится вся область вычерчивания; N — длина массива С (т. е. число линий уровня); С — одномерный массив значений изолиний. Рис. 2. Изображение изолиний по алгоритму гладкой интерполя¬ции — невозмущенный массив (Ю. М. Баяковский и др.) На основании опыта применения программ в задачах построения геофизических карт можно дать следующие практиче¬ские рекомендации. 1. Для получения гладких изображений изолинии шаг веде¬ния изолинии STEP следует взять достаточно малым. На рис. 2 и 3 принят шаг 0,127 мм, соответствующий минимальному шагу графопостроителя. 2. Параметр К равен числу полос сетки вдоль оси Y, на границах которых отыскиваются линии уровня. Минимальное его значение может быть равно единице, в этом случае область вычерчивания не делится на полосы. Для точности передач всех деталей поля параметру К следует присвоить его максимальное значение LX= 1 и тогда при работе алгоритма будут обнаружены все заданные линии уровня. 3. Число линий уровня N и одномерный массив значений изолиний С следует задать по формулам: Рис. 3. Изолинии изображены по алгоритму интерполяции - возмущенный массив (Ю. М. Банковский и др.) N = [(Fmax -Fmin)/DC]+1 Ci = Fmin+DC x(i-1); i = l,2, , N-l, N, где DC= (Ci+1 – Ci) – интервал между соседними изолиниями. Величина сечения DС зависит от погрешностей функции F и может быть выбрана как DС ³ Зs, где s - средняя квадратическая погрешность функции F. Fmax, Fmin - максимальное и минимальное значения функции в заданном массиве F. Указать Fmах и Fmin заранее трудно, так как исходный цифровой материал весьма велик и хранится на магнитной ленте, поэтому мы рекомендуем просмотреть исходные данные с помощью следующей несложной программы, которая служит для определения Fmax и Fmin: SUBROUTINE MINMAX (LX, LY, F, FMIN, FMAX) DIMENSION F (LX, LY) FMIN=F(1, 1) FMAX=F(l, 1) D06I = 1, LX D06I = 1, LY IF (F (I, J)—FMIN) 2,3,3 2FMIN=F(I, J) G0T06 3IF (F(I, J)—FMAX) 4,4,5 4G0T06 5FMAX=F(I, J) 6CONTINUE RETURN END Авторами проведено сравнение методов линейной и гладкой интерполяции при построении карт для машин третьего поколения с программой стандартного матобеспечения «Атласа». Широко известная программа Л. Г. Перфильева [4] дала результаты, близкие к результатам программы В. Я. Карпова и Н. И. Тюриной [4], поскольку обе построены по алгоритму линейной интерполяции. Изолинии имеют изломы и неплавный рисунок. Существующие программы графического построения данных для машин третьего поколения обеспечивают объемное представление Карт на плоскости. Такие достаточно наглядные и интересные результаты, представленные на рис. 4, получены автором программы объемного изображения карт В. В. Кобелевым в Институте точной механики и вычислительной техники АН СССР. Как видно, программа позволяет расположить изображаемую поверхность под разным углом к зрителю. Это даег возможность выбрать наиболее удачную точку зрения, которая позволяет рассмотреть все детали поля. Очевидно, что данная модель наилучшим образом: видна на рис. 46. На рис. 5 изображена карта по тому же массиву. Если поле осложнено погрешностями, алгоритм В. В. Кобелева позволяем, проводить их эффективное сглаживание (см. рис. 5). Возможность такого объемного представления функций особенно перспективна при построении структурных карт и объемном картировании. СПИСОК ЛИТЕРАТУРЫ 1. Автоматизированная система обработки и интерпретации гравиметри¬ческих измерений/ О. K. Литвиненко, Ю. Г. Русьянов, М. Д. Ружин, 3. Л. Са¬фонова. М., Недра, 1973. 2. Банковский Ю. М., Сорвачов А. М. Графор: комплекс графических программ на ФОРТРАНЕ. Препринт ИПМ АН СССР, № 102, 1977. 3. Власюк М. П., Васин В. Г., Музыченко Е. Н. Две подпрограммы для машинного построения изолиний. Препринт ИПМ АН СССР, № 20, 1973. 4. Инструкция к пользованию программой «Вычерчивание карт изоли¬ний на ЭЦВМ БЭСМ-4 с помощью устройства «Атлас»/ Л. Г. Перфильев, А. Бахраимова, В. Ф. Дружинина, Р. Султанбекова. Алма-Ата, изд. Каз. ВИРГа (ротапринт), 1970. 5. Карпов В. Я., Тюрина Н. И. Ярограмма изображения линий уровня с помощью графопостроителя. Препринт ИПМ АН СССР, № 127, 1976. Рис.4 Объемное изображение функции по программе В.В. Кобелева (Ин-т ТМ и ВТ). А-З – изображение под разным углом зрения.