<<< предыдущая глава | оглавление | следующая глава >>>
При работе с пространственными данными очень часто возникает задача создания векторных данных на основе растровых. Такая задача может возникать как для линейных, так и для полигональных данных. Кроме того, не менее часто, приходиться сталкиваться с обратной задачей – получения растровых данных на основе векторных. Хорошим примером такой задачи может служить процесс создания цифровой модели рельефа на основе векторного слоя изолиний. ГИС GRASS включает широкую функциональность в области конвертации данных из одного формата в другой.
В ГИС GRASS растровые данных могут быть автоматически сконвертированны в векторную модель представления данных. Конвертировать растровые данные можно как в полигональные векторные слои, так и в линейные. Кроме того, на основе растровых данных пользователь может создавать векторный слой изолиний.
Рисунок 27: Модули конвертации растровых данных в векторные
Векторизация в линии и изолинии
GRASS предлагает два модуля для автоматической
конвертации растровых линейных данных в векторный формат. При этом выходной
тип векторных данных может быть различным. Это могут быть линии или изолинии. Для
каждого типа конвертации разработан соответствующий модуль: r.to.vect
и r.contour
.
Для конвертации в векторный линейный слой
необходимо использовать команду r.to.vect
.
Данный модуль поддерживает такие типы геометрии как линии, полигоны и точки.
Тип линия установлен по умолчанию. В случае, если линия представленная в
растровом слое слишком широка (состоит из группы пикселей), необходимо
использовать инструмент r.thin
. Этот модуль позволяет получить линейный
растровый слой, где ширина линии будет равна одному пикселю:
r.thin in=raster out=raster_thin r.to.vect in=raster_thin out=raster_vect feature=line
Создать слой изолиний, например с использованием
растра ЦМР, можно с помощью команды r.contour
. В
таком случае, изолинии будут рассчитаны и отвекторизованы исходя из величины
шага (расстояние между изолиниями), устанавливаемого пользователем.
Этот шаг должен быть выбран исходя с одной стороны, от разрешения растра, и с другой стороны - желаемого масштаба выходной карты.
Векторизация полигональных объектов
Для векторизации растровых данных, представляющих полигоны, можно
использовать модуль r.to.vect
, который включает параметр
feature=area
r.to.vect in=raster_thin out=raster_vect feature=area
Сглаживание линейных и полигональных векторных слоев
В процессе конвертации растровых данных в векторные,
пользователь практически всегда сталкивается с эффектом «ступенчатости»
векторных линий. Эта ступенчатость зависит от разрешения растровых данных.
GRASS включает специальный модуль позволяющий сглаживать этот
эффект - v.clean
. Этот модуль требует задания дополнительного
параметра prune
, определяющего степень сглаживания.
Рисунок 28: Сглаживание векторных данных
Эффект «ступенчатости» зависит от исходного разрешения растра. Его появление связано с тем, что при конвертации растра в вектор, векторизатор «двигается» не по центрам пикселей, а создает линию по краю каждого пикселя.
На рисунке 28 показан эффект сглаживания линии. В
данном случает порог сглаживания установлен достаточно высоким, чтобы
лучше продемонстрировать эффект сглаживания. Исходная линия показана
красным цветом, линия сглаженная с использованием модуля v.clean
,
показана голубым
В данном примере уменьшение количества вертексов (узлов) не нарушает топологию исходных данных. Более того, визуальное представление данных остается в пределах допустимого, а размер файла значительно уменьшается.
Необходимо еще раз отметить, что в процессе векторизации может меняться геометрия объектов. Именно поэтому, использование модуля векторизации должно осуществляться вдумчиво. Часто, определение оптимального порога сглаживания требует нескольких попыток.
Конвертация точечных данных
В силу реорганизации архитектуры представления
векторных данных в GRASS 5.4 «точка» как отдельный формат
(sites-format) более не существует. Точечные данные теперь обрабатываются библиотекой
векторных данных. Конвертация точечных растровых данных в точечные векторные
может осуществляться с помощью модуля r.to.vect
с параметром feature=point
.
Для конвертации векторных данных
(полигональных, линейных и точечных) в растровую модель представления данных
необходимо использовать модуль v.to.rast
. При конвертации нужно указать ряд
параметров, которые будут использованы для представления выходного растра.
Рисунок 29: Модули конвертации в векторных
данных в растровые [5]
Доступны следующие варианты:
attr -> Колонки атрибутивной таблицы
cat -> Значения для категорий
val -> Заданное значение
z -> Z-координата (доступна только для точечных слоев и слоев изолиний)
Для того, чтобы результирующий растр наследовал
значения определенной колонки атрибутивной таблицы векторного слоя, нужно использовать
параметр attr и указать колонку, значения из которой необходимо
использовать. Точность конечного растра будет зависеть от указанного разрешения
(задается заранее). Изменить разрешение можно с помощью модуля g.region
GRASS содержит специальный инструментарий для создания растров на основе точечных данных. В таком случае, будут использованы алгоритмы интерполяции, подробно описанные в разделе 14.1.
<<< предыдущая глава | оглавление | следующая глава >>>
Обсудить в форуме Комментариев 5
Последнее обновление: March 23 2009
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).