[Павлов Д.С.] <Математический алгоритм построения
геологических разрезов> [оглавление]
Для построения разреза необходима геологическая карта. Принимая
во внимание тот факт, что базовый блок алгоритма, реализованный данным
программным модулем, оперирует данными одного структурного домена, в качестве
примера автором выбрана учебная геологическая карта1,
используемая при проведении практик по структурной геологии и геокартированию
для студентов второго курса геологического факультета. Территория этой карты не
осложнена несогласиями, магматическими образованиями и разрывными нарушениями.
Как было сказано выше, в начале мы имеем лишь геологическую
карту, отпечатанную на бумаге. Для того чтобы использовать вычислительные
мощности персонального компьютера для решения любых задач, необходимо
преобразовать исходные данные в цифровую форму. В нашем случае это можно
сделать с помощью сканера. После сканирования геологическая карта может быть
сохранена на жестком диске ПК (или любом другом носителе информации) в виде
графического файла с одним из расширений растрового формата (.bmp, .jpg, .gif,
.png и т.д.). На этом заканчивается первый шаг на пути к возможностям
вычислительной системы.
Теперь мы имеем растровый файл с геологической картой и можем
просматривать его с помощью различного программного обеспечения
предназначенного для этого. Среди наиболее удобных приложений данного типа
можно отметить программу ACDSee от компании ©ACD Systems, Ltd. Растровый файл
описывает цвет, яркость, степень прозрачности для каждой точки в прямоугольной
области изображения. Очевидно, что при таком положении вещей мы не сможем
указать компьютеру, например, на какую либо линию на нашей карте, поскольку для
него такого объекта не существует. А раз так, то нам не удастся и обратится к
такому объекту. Все, что мы сможем сделать, это задать какие-либо из свойств,
перечисленных выше, для какого-то множества точек изображения. Чтобы иметь
возможность работать с геометрическими объектами, необходимо векторизовать наш
файл.
В векторном файле описываются уже не свойства точек изображения,
а графические объекты. Все объекты состоят из базовых геометрических фигур -
примитивов, для которых задаются координаты их вершин. Такими примитивами могут
быть: точка, отрезок, ломаная, треугольник, эллипс и т.д. В дальнейшем с их
помощью могут быть получены любые сложные изображения посредством комбинации
различных примитивов.
Растровые изображения напрямую выводятся на экран монитора,
поскольку в таких файлах содержится вся необходимая информация для прорисовки.
Векторная же графика содержит лишь описание объектов для прорисовки. К примеру,
чтобы описать отрезок достаточно лишь знать координаты двух точек - начала и
конца отрезка, а все точки лежащие между ними будут вычислены и прорисованы на
экране программой, предназначенной для работы с векторной графикой. Здесь
кроется причина меньшего размера векторных файлов в сравнении с растром. Но
главное отличие между растровым и векторным форматами заключается в следующем.
Векторный формат с помощью соответствующего ПО обеспечивает гибкость работы с
объектами, описанными в файле - перемещать, копировать и удалять отдельные
вершины и целые геометрические объекты, а также изменять их размеры, форму и
т.д.
Векторизовать растровый файл можно разными способами. Для этого
существует множество программ2.
Они позволяют произвести векторизацию в ручном или полуавтоматическом режимах
(в зависимости от конкретной реализации). Форматы векторных файлов, в которых
сохраняются результаты, зачастую поддерживаются многими приложениями. К тому же
существует достаточно большое количество служебных утилит, конвертирующих файл
из одного формата в другой.
Для нашей задачи используется векторизатор3,
написанный автором, который интегрирован в программу для построения
геологического разреза и сохраняет данные в своем формате. Это обусловлено
следующими причинами. Во-первых, изучить в принципе можно только тот формат,
разработчики которого предоставили в открытый доступ его формальное описание,
что резко сужает спектр выбора векторного формата. Во-вторых, чтобы
использовать уже существующий формат, необходимо затратить достаточное
количество времени и нервных ресурсов на изучение его структуры, что не
является целью в данном случае. И, наконец, в-третьих, многие форматы
спроектированы для своих специфических задач, что наложило бы дополнительные
ограничения и трудности на решение нашей задачи.
Многие программисты сначала реализуют свой внутренний формат
файлов, с которым удобно работать, а в дальнейшем разрабатывают утилиты для
экспорта/импорта из/в формат файлов для ПО, решающего сходные задачи.
Определим теперь, какие данные на геологической карте нам
необходимо векторизовать. Учитывая поставленные перед программой задачи, такими
данными являются две системы кривых линий - система геологических границ и
система горизонталей. Таким образом, для векторизации геологической карты
необходимо задать объекты-кривые. Естественным будет представить кривую как
одномерный массив (цепочку) точек, через которые она должна проходить, о чем
упоминалось в разделе 3.3 предыдущей главы диссертации.
После сканирования карты и сохранения ее на диске в виде
растрового файла, этап подготовки исходных данных можно считать завершенным.
Перед тем, как продолжить описание программного модуля построения стратоизогипс
внутри структурного домена, необходимо познакомиться с его интерфейсом
пользователя.
1 - Данная карта представлена
среди графических приложений диссертации.
2 - Примерами таких программ
являются CorelDraw, AutoCAD, EasyTrace и т.д.
3 - Векторизатором называется
ПО, предназначенное для конвертирования растровых файлов в векторный формат.
[назад] [оглавление] [далее]
|