Введение в геоинформационные системы
Работа с векторными данными
<<< предыдущая глава | оглавление | следующая глава >>>
Теоретическая часть
Основной метод получения векторных данных это так называемая векторизация (иногда также не совсем корректно называемая оцифровкой), т.е. перевод растровых данных в векторные. В процессе векторизации объекты представленные на растровом изображении только визуально (на них можно посмотреть, но с ними нельзя работать) становятся отдельными векторными объектами. В качестве источника данных чаще всего используются растровые топографические данные, данные дистанционного зондирования (космические и аэроснимки).
Векторизация может проводиться в ручном, автоматическом и полуавтоматическом режиме. Как уже говорилось в разделе "растровые и векторные данные" (ссылка), векторные объекты состоят из точек-узлов (vertex, node) и линий их соединяющих (arc, sketch, line).

Специфика создания векторной информации различается в зависимости от типа редактируемых объектов (точек, линий, полигонов). Точки самые простой для создания объект требующий одного нажатия клавиши мыши, линии более сложный объект, у них есть начало, конец и направление, полигон - по сути является линией точка начала которой совпадает с точкой окончания.
Большое значение при создании данных должно уделяться различным параметрам, которые могут попросту быть не видны, если рассматривать создаваемые данные как картинку, а не как предмет дальнейшего географического анализа. Например, важным условием является направление редактирования (оцифровка рек должна вестись от истока к устью), а также связность объектов (одна дорога должна точно заканчивать на другой, без "перехлестов" или "недолетов", изолинии не должны прерываться).
Соблюдение правил векторизации является необходимым условием возможности дальнейшего анализа этих данных, например получения гидрологически корректных цифровых моделей рельефа (моделей учитывающих направления стока, высотные характеристики русел рек, плоскую поверхность озер и т.д.).
Для больших объемов векторизации предназначены специальные программные пакеты, например EasyTrace, однако и сам ArcMap также предоставляет большое количество удобных инструментов для векторизации (см. например модуль ArcScan).
Необходимо отметить, что автоматическая векторизация, хотя и является более производительным процессом, не рекомендуется для небольшого количества оцифровки, так как стадия подготовки растров для векторизации и "чистки" результатов может занять большее время, чем ручная векторизация небольшой карты. Рассматривать возможность автоматической или полуавтоматической векторизации стоит, если необходимо оцифровать большое количество картографического материала.
Редактирование
Если векторизация растра может быть разовой задачей, выполняемой на этапе подготовки данных, к которой потом можно не возвращаться, то редактирование векторных данных - повседневная необходимость (редактирование так же, как правило, необходимо для «доводки» результатов векторизации, особенно автоматической).
Векторные объекты могут быть удалены, перемещены, разделены, объединены, буферизованы, может быть изменен их размер и положение отдельных узлов (изменена форма объекта). Вместе с редактированием объекта могут изменяться и его атрибутивная информация, например при разделении векторного объекта на 2 части вместе с новым, дополнительным объектом в атрибутивной таблице также создается новая запись, требующая заполнения.
Топология
Комплекс требований (правил) взаимного отношения объектов называется топологией, а данные, выполняющие все эти правила - топологически корректными. Топологическая корректность может достигаться как за счет использования специальных форматов, "следящих" за топологией, одним из таких форматов является формат геобазыданных (geodatabase), в этом формате данных объектам в одном слое и объектам разных слоев можно задавать свои правила взаимоотношений, такие как например:
- полигоны не могут пересекаться;
- между полигонов и внутри них не может быть пустого пространства (за исключением внешнего периметра);
- линии не могут иметь висячих узлов (должны заканчиваться на другой линии);
- линии не могут пересекать сами себя;
- точки должны находится внутри полигонов и т.д.
Эти и другие правила помогают контролировать геометрическую точность данных и поддерживать взаимоотношения между ними близкие к взаимоотношениям объектов в реальном мире (например: река - линия, впадает в другую реку - заканчивается на другой линии, без перелетов или недалетов, появляющихся при оцифровке).
Для облегчения привязки одних объектов к другим в режиме создания или редактирования данных может использоваться режим привязки (snapping) новых или изменяемых узлов друг к другу (в соседних объектах) или к линиям или к конечным точкам (endpoints) линий.
Практическая часть
Скачать учебные материалы для этой главы.
В практической части этой главы Вы научитесь:
- Создавать различные типы векторных данных используя растровые в качестве основы;
- Использовать различные инструменты векторизации.
Упражнение 1. Создание векторных данных - точки
- Откройте ArcMap, создайте новый проект с именем ex-19.mxd.
- Загрузите в проект фрагмент топографической карты topo.tif.
- С помощью ArcCatalog создайте новый точечный шейп-файл point.shp и задайте географическую систему координат WGS84.
- В атрибутивной таблице shape-файла создайте поле Height (высота) целочисленного типа.
- Загрузите созданный точечный слой в Вид и измените условное обозначение на более отчетливое.

- Подключите панель редактирования данных Editor. Для этого щелкните мышью в верхней части окна ArcMap и выберите из выпадающего списка Editor. После этого должна активироваться панель Editor.

- В главном меню выберите Selection - Set Selectable Layers. В тех случаях, когда в Вид загружено более одного слоя, необходимо указать тот слой, который вы собиратесь редактировать и отключить все остальные слои

- В панели Editor нажмите кнопку Editor и выберите Start Editing. Как вы видите, остальная часть панели Editor стала активной. В поле target необходимо указать слой, который будет редактироваться, если во фрейм данных загружена только одна векторная тема, она и появится в списке.

- Поле task определяет операцию которая будет проводиться во время редактирования. Для создания нового объекта необходимо указать задание Create New Feature, эта опция также появляются по умолчанию.
- На панели Editor выберите кнопку Sketch Tool
.
- С помощью этого инструмента поставьте несколько точек соответствующих, например отметкам высот.

- После создания точки, используйте инструмент Attributes (аттрибуты)
для ввода информации о высоте.

- Сохраните изменения в созданном shape-файле с помощью Editor\Stop editing
- Сохраните проект.
Упражнение 2. Создание векторных данных - линии
- Если вы только что закочили Упражнение 1, оставайтесь в созданном проекте (ex-19.mxd). Если вы решили пропустить Упражнение 1, вам придется вернуться и пройти пункты 1-2 этого упражнения, чтобы создать этот проект.
- С помощью ArcCatalog создайте новый линейный шейп-файл Line.shp и задайте ему географическую систему координат WGS84.
- В атрибутивной таблице shape-файла создайте поле Name (названия) текстового типа шириной 50 единиц.
- Загрузить только что созданный слой в проект и измените условное обозначение для линейных объектов на более контрастное по сравнению с объектами на карте, например такое:

- В панели Editor нажмите кнопку Editor и выберите Start Editing. Как вы видите, остальная часть панели Editor стала активной. В поле target необходимо указать слой Lines.

- Поле task определяет операцию которая будет проводиться во время редактирования. Для создания нового объекта необходимо указать задание Create New Feature, эта опция также появляются по умолчанию.
- На панели Editor выберите кнопку Sketch Tool
.
- Увеличьте северо-западный фрагмент карты и с помощью инструмента Sketch Tool отрисуйте несколько линейных фрагментов рек, до их впадения в реку представленную как площадной символ.

- Подобно тому, как мы это делали для точек, для рек, в заранее созданное поле Name можно ввести необходимые атрибуты, например названия. Это можно сделать с помощью инструмента Attributes
располагающегося на панели инструментов редактирования. Если окно атрибутов пустое, это означает, что ни один из созданных объектов не выбран. Выбрать объект можно с помощью инструмента Select Features 

- Сохраните изменения в созданном shape-файле с помощью Editor\Stop editing
- Сохраните проект.
Упражнение 3. Создание векторных данных - полигоны
- Если вы только что закочили Упражнение 1 или 2, оставайтесь в созданном проекте (ex-19.mxd). Если вы решили пропустить Упражнение 1, вам придется вернуться и пройти пункты 1-2 этого упражнения, чтобы создать этот проект.
- С помощью ArcCatalog создайте новый полигональный шейп-файл Polygon.shp и задайте географическую систему координат WGS84
- Для этого, отройте ArcCatalog и выберите директорию, в которой хранится урок 19 (chap19). Затем, в закладке Content, в правой части окна ArcCatalog щелкните правой кнопкой. Перед вами появится меню вида:

Выберите New и из появившегося списка выберите Shapefile.
- В диалоговом окне создания нового шейпфайла, укажите его называние (поле Name) - Polygon, тип данных (Feature Type) – polygon.

- Далее, нажмите кнопку Edit в разделе Spatial Reference и затем выберите – select. Это меню позволяет выбрать систему координат из списка уже существующих в составе программы ArcGIS.
- Из списка выберите директорию Geographic Coordinate System, далее поддиректорию World и укажите проекцию WGS 1984.prj. Нажмите кнопку Add, затем Применить и ОК и еще раз ОК (уже в окне создания шейпфайла). После этого вы должны увидеть новый шейпфайл в окне Content приложения ArcCatalog.
- Добавьте слой в проект ArcMap (см. предыдущее упражнение).
- Начните редактирование полигонального слоя (Editor -> Start Editing. Не забыть выбрать слой polygon.shp из списка поля target.)

- Оцифровать несколько полигональных объектов речной сети. Постарайтесь оцифровать те объекты, к которым примыкают оцифрованные ранее (см. предыдущее упражнение) линейные объекты (линейная гидрография). Как вы увидите в процесс оцифровки, далеко не всегда удается сохранить правильную топологию между слоями. Так, часть оцифрованных вами линейных объектов будет «недолетать» до оцифрованного полигонального объекта, а часть – оказываться «внутри». Эти ошибки мы откорректируем в Упражнении 4 данного урока.

- После того, как вы оцифровали несколько объектов, закончите редактирование (Editor –> Stop Editing)
- Сохраните проект (ex-19.mxd).
Упражнение 4. Привязка одних объектов к другим при редактировании (snapping)
- Для выполнения этого упражнения вам понадобится проект с созданными линейным и полигональным наборами объектов из Упражнений 2 и 3.
- Как уже указывалось в предыдущем упражнении, при оцифровке речных объектов разных типов (в данном случае линейного и полигонального) появились некоторые неточности (недолеты и перелеты), как это показано на картинке внизу. Для того чтобы провести топологическую коррекцию данных, нам потребуется задействовать несколько специальных инструментов меню Редактирования (Editor).

- Откройте проект ex-19.mxd (в нем должны хранится оцифрованные ранее линейный и полигональный слои – line.shp и polygon.shp соответственно)

- Увеличьте участок карты в том месте, где были оцифрованы объекты гидрографической сети. По мере увеличения, вы будете замечать все большее расхождение между линейным и полигональным слоями.

- Для того, чтобы исправить топологию между слоями в меню Редактирования (Editor), нажмите на пункт Snapping.

- После того, как вы нажмете на пункт Snapping в рабочем окне проекта откроется дополнительные окно – окно выбора параметров Snapping. В этом окне вы можете задавать условия «прилипания» объектов друг к другу. Существует три варианта работы с «прилипанием»: прилипание узлов (Vertex), прилипание дуг (Edge) и прилипание концевых узлов (End) объекта. Чаще всего, вы будете использовать прилипание узлов и концевых узлов.

- В предложенном меню отметьте галочкой для слоя line прилипание узлов (Vertex) и концевых узлов (End), а для полигонального слоя отметьте галочкой прилипание узлов (Vertex) и конечных узлов (End).

- В меню Редактирования (Editor) нажмите на раздел Опции (Options). В этом меню вы можете задавать такие параметры прилипания как «расстояние между узлами и дугами» - snapping tolerance, «автоматическое прилипание при сокращении расстояния между узлами до определенного» - sticky move tolerance и другие параметры.

- Задайте параметры прилипания так, как указано на картинке выше. Эти параметры могут варьироваться в зависимости от того, с какой точностью были оцифрованы объекты. Чем больше расстояние между линейным и полигональным слоем – тем большим надо ставить величину tolerance.
- Начните редактирование линейного слоя. В меню задач (tasks) укажите Modify feature

- Выделите линию для редактирования (это должна быть та линия, которую необходимо прилепить к узлам границ полигонального слоя). Нажмите кнопку Sketch tool и выделите узел линии, который необходимо «прилепить» к границе полигонального слоя.

- Начните сдвигать этот узел в сторону границы полигонального слоя. Через некоторое время вы обратите внимание, что конец линии автоматически «прилепился» к ближайшему узлу на границе полигонального слоя.

- После того, как узел линейного слоя «прилип» к узлу полигонального слоя окончите редактирование линии двойным щелчком мыши.

- Убедитесь, что линия действительно была прилеплена к полигональному слою (увеличьте до максимума этот участок карты).

- Закончите редактирование слоя (Editor -> Stop Editing).
<<< предыдущая глава | оглавление | следующая глава >>>
Последнее обновление: November 29 2008