Глава 4. Проектирование и построение базы пространственных данных В этой главе: ► Внутри базы геоданных ► Свойства пространственных объектов ► Как сделать пространственные объекты «разумнее» ► Проектирование базы пространственных данных ► Создание топологии в БГД и использование ее для устранения ошибок данных ► Создание слоев данных с помощью базы геоданных ► Построение геометрической сети ► Вопросы и указания для самопроверки ► Контрольные вопросы и задачи Термин база геоданных (БГД) является сокращением от географическая база данных, реляционная база данных, содержащая географическую информацию. БГД в общем случае является репозитарием пространственных данных внутри СУБД и содержит все векторные и растровые данные, таблицы и другие объекты ГИС. БГД могут иметь самые разные размеры и любое число пользователей. Они могут изменяться от маленьких, однопользовательских баз данных до больших рабочих групп и производственных баз геоданных, используемых одновременно многими пользователями. ArcSDE позволяет реализовать многопользовательскую базу геоданных любого размера в СУБД по Вашему выбору: Oracle, Microsoft SQL Server, IBM DB2 и Informix. Но поскольку модель персональной БГД является вполне самодостаточной, в данной книге многопользовательские варианты не рассматриваются. Модель БГД поддерживает объектно-реляционную модель векторных данных. В этой модели сущности представлены как объекты со свойствами, поведением и отношениями. Внутри базы геоданных Объекты реального мира существуют в богатом контексте. Они находятся в некотором местоположении, имеют некоторую протяженность и плоскость; соседствуют с другими объектами; могут выступать в качестве потребителя или производителя ресурсов по отношению к окружающим объектам; обладают атрибутами, представляющими измеримые характеристики объектов, их количества, категорию или описания; могут иметь предсказуемую реакцию на внешнее воздействие. Векторные данные в базе геоданных Векторы являются универсальным и часто используемым представлением географических данных, хорошо подходящих для представления пространственные объекты с дискретными границами, такими как колодцы, улицы, реки, городские кварталы и земельные участки. Обычно пространственные объекты представляются как точки, линии или полигоны. Приводим обобщение векторного содержания в базе геоданных. Объектный класс. Таблица базы данных, с которой Вы можете связать поведение. Строки в таблице являются экземплярами объектов, которые имеют специальное поведение в ГИС. Примером объектного класса является “владельцы” для “земельных участков”. Вы можете установить отношение между полигональными пространственными объектами для земельных участков и объектным классом владельцев. ► Класс пространственных объектов. Коллекция пространственных объектов одного и того же типа. Пространственный объект (ПО) является просто объектом, который имеет местоположение, хранящееся как одно из его свойств или полей в строке. Типам и геометрии ПО обычно являются точки, линии полигоны или аннотации. Примерами классов ПО являются потоки, административные области и районы. Классы ПО могут быть независимыми один от другого или могут быть связаны с другими классами ПО. При связывании друг с другом классы ПО совместно организуются в набор классов объектов, о которых Вы узнаете больше в следующих разделах. ► Атрибуты пространственного объекта. Свойства хранятся как поля в таблице класса ПО. Атрибуты определяют стандартные и пользовательские свойства ПО и могут быть числовыми, текстовыми или описательными идентификаторами. ► Пространственная привязка. Связанная с Землей система координат, в которой представлен набор данных. Она указывает местоположение набора данных в реальном мире. Пространственная привязка включает такие свойства как проекция карты, датум, допустимый диапазон координат (например, диапазон для x,y или x,y,z), и т.п. ► Подтипы. Множество классов для членов класса ПО. Класс ПО может содержать пространственные объекты, которые имеют одинаковое общее поведение и свойства, но имеют различный смысл или роль в модели данных. Например, в то время как полезно отличать железные трубы от полихлорвиниловых труб и ту роль каждого типа, которую он играет в Вашей модели данных, более подходящим оказывается проектирование единого класса ПО «трубы» и различение разных типов труб как подтипов. ► Набор классов объектов. Коллекция классов ПО с одной и той же пространственной привязкой. Классы ПО в наборе классов объектов могут быть организованы в сети или плоские топологии. Если Вы хорошо знакомы с ArcInfo, набор классов объектов является аналогом покрытий, которые являются коллекциями связанных классов ПО; однако, наборы классов объектов являются менее ограниченными и более функциональными, чем покрытия. Наборы классов объектов жизненно важны, когда Ваша ГИС должна моделировать систему пространственно связанных ПО, таких как коммунальные сети, дороги, слои среды окружения (такие как почвы, топография поверхности и растительность), география переписи и т.п. ► Отношения. Ассоциация между двумя объектами. Отношение позволяет Вам работать с ПО и связывает строки в таблицах и отношения между строками. Отношения организованы в классы отношений. Класс отношений определяет множество случаев отношений между двумя классами ПО или объектных классов. Например, связанная с ПО аннотация может быть смоделирована с использованием отношений. Вы можете определить, что произойдет с аннотацией при удалении ПО, при его перемещении или изменении значений его атрибутов. ► Геометрические сети. Определенная пользователем коллекция классов ПО, которая формирует часть связанной сети ребер, соединений и колен. Вы определяете множество классов ПО, участвующих в геометрической сети и роль каждого класса ПО (например, как ребра или соединения), и организуете эти классы ПО в набор классов объектов. Например, в водной сети, вентили и счетчики играют роль соединений, в то время как магистрали и служебные линии играют роль ребер. ► Плоские топологии. Определенная пользователем коллекция классов ПО, разделяющих общую геометрию. Плоская топология позволяет Вам иметь одно общее множество линий для представления геометрии множества классов ПО. Например, классы ПО, такие как типы почв, растительность, ландшафт и вода, могут иметь общие полигональные границы. При использовании инструментов редактирования топологии, обновление геометрии одного класса ПО автоматически обновляет все классы ПО в плоской топологии с общими границами. Классы ПО, которые участвуют в плоской топологии реорганизуются в тот же самый набор классов объектов. ► Домены. Определяют допустимые значения для атрибутов как диапазон или множество значений. Домены могут быть использованы для корректировки любых атрибутов в базе геоданных. ► Правила проверки корректности. Одно или более ограничений на значения атрибутов, топологию или размещение ПО для предписаний поведенческой целостности Ваших пространственных объектов. Например, правила соединений определяют ограничения способов взаимосвязи ПО в сетях. Моделирование наборов классов объектов При проектировании базы геоданных существенную проблему составляет определение сущностей в базе геоданных и способ, каким будут представляться ПО, растры, атрибуты и т.д. Во многих, если не в большинстве, реализациях ГИС важно иметь способность определять пространственные данные как систему объектов и отношений. В самом деле, частью мощи ГИС является возможность моделировать и представлять отношения среди этих объектов. Например, уличная сеть состоит из связанных сегментов улиц. “Главная улица” может моделироваться как серии связанных сегментов, составляющих секции улицы вдоль каждого квартала. Диапазоны адресов ассоциированы с каждым сегментом улицы, поэтому для каждого сегмента улиц могут быть найдены местоположения адресов. Перекрестки определяют соединения улиц и могут иметь специальные свойства. Они могли бы иметь ограничения поворота или светофоры. Они могут иметь надземные или подземные переходы и т.д. В дополнение к этому, улицы могут быть связаны с другими ПО, такими как кварталы. Сегменты улиц определяют границу квартала, который они заключают. Группы кварталов могут быть собраны в районы, такие как районы переписи, классы зонирования и другие административные единицы. Проект пробной базы геоданных может моделировать все это как множество классов ПО в одном наборе классов объектов: ► Улицы ► Кварталы ► Группы кварталов ► Районы переписи ► Все они могут участвовать в общей плоской топологии набора классов объектов. ► Обобщая можно сказать, что причины организации классов ПО в набор классов объектов ► многочисленны, но тремя общими причинами являются: ► Тематическое представление. Множество классов ПО представляет один и тот же феномен, который Вы хотите моделировать. ► Например, Вы можете иметь три класса ПО для водных тел в наборе классов объектов, каждый из которых представляет точечные, линейные и полигональные ПО. ► Геометрические сети. Роль классов ПО играют соединения, ребра и повороты в геометрической сети, например, трубы, вентили, насосы и фидеры в водопроводной сети или улицы, перекрестки и повороты в городской дорожной сети. ► Плоские топологии. Классы ПО могут иметь общую геометрию с другими классами ПО. Когда Вы обновляете границу одного ПО, Вы хотите также обновлять эту общую границу и у других ПО. Свойства пространственных объектов Пространственные объекты (ПО), в том виде как они представлены в базе геоданных, обладают многими качествами, такими как форма, атрибуты, отношения и поведение. Эти качества совместно выражают тот богатый контекст, в котором пребывают географические объекты. Для многих приложений некоторые ПО являются самой удобной формой представления географических данных. Эта форма наиболее пригодна для географических объектов с четкими и устойчивыми границами. Другие географические объекты, которые можно отнести скорее к непрерывно распределенным явлениям, лучше моделировать посредством растров или TIN. В этой главе обсуждаются те качества, которые придают «разумность» некоторым пространственным объектам в базе геоданных. Сначала проведем краткое обобщение того, что обсуждалось в последних двух главах. Создание топологии в БГД и использование ее для устранения ошибок данных Вы создадите топологию базы геоданных, которая поможет найти ошибки в данных границ участков. Топология будет очень простая - с одним классом ПО и одним топологическим правилом. В ArcCatalog перейдите в папку «Учебные данные\0401\Редактирование топологии.mdb». Создание отчета о состоянии данных Теперь Вы создадите отчет, содержащий информацию о числе ошибок, оставшихся в данных. Нажмите правой кнопкой по слою топологии в таблице содержания ArcMap и выберите Свойства. 1. Перейдите на закладку Ошибки. 2. Нажмите кнопку Итоговая информация. 3. Отчет будет содержать информацию о числе ошибок и исключений; количество ошибок может отличаться от приведенного в упражнении. Вы можете сохранить этот отчет в текстовый файл, чтобы документировать состояние Ваших данных, но в этом упражнении Вам не требуется это делать. 4. Нажмите OK. Создание нового класса Сейчас Вы будете создавать новый класс ПО - полигонов участков из объектного класса линий границ участков, с которым Вы уже работали, и из объектного класса точек, который обеспечит атрибуты для новых объектов участков. 1. Нажмите правой кнопкой на наборе классов «Область_изучения» в ArcCatalog, укажите Новый и выберите «Полигональный класс объектов из линий» 2. Наберите “Lots” в качестве имени нового класса объектов. 3. Отметьте LotLines. 4. Нажмите на ниспадающем списке точечных классов объектов и укажите LotIds. 5. Нажмите OK. К набору данных «Область_изучения» добавляется класс полигональных объектов Lots. Далее Вы включите классы объектов Lots и LotIds в топологию, чтобы Вы могли добавить правила, которые помогут Вам в процессе устранения ошибок из данных. Создание слоев данных с помощью базы геоданных Чтобы сделать просмотр и отображение данных более удобным, Вы можете создавать слои из данных Вашей базы геоданных и использовать эти слои в ArcMap. Большинство слоев, которые Вам понадобятся в упражнениях, уже создано и хранится в папке Layers каталога учебных данных. В этом упражнении описано создание новых слоев для классов пространственных объектов Laterals и LateralsAnno (см Главу 2). Вопросы и указания для самопроверки 1. Как с помощью пользовательского интерфейса ArcGIS найти данные пространственной привязки и экстента слоя? 2. Перечислите элементы «разумного» поведения пространственных объектов. 3. Может ли геометрическая сеть существовать вне БГД? 4. Может ли соединение в геометрической сети связывать несколько ребер? 5. Изучите все команды на панели «Редактирование сети» и проверьте связность созданной Вами сети. 6. Какие топологические ошибки являются типичными для точечных ПО? Линейных ПО? Площадных ПО? Для ответа можете использовать постер, находящийся в папке Упр_0401. 7. В каком виде топология хранится в персональной БГД? 8. Может ли топология существовать вне БГД? Контрольные вопросы и задачи Все необходимые данные должны находиться в Вашей собственной папке «Контрольные задачи» Задача 1. Редактирование топологии Войдите в директорию Упр_0401 и заведите в ней персональную БГД с единственным набором классов. Поместите в набор классов находящийся в папке шейп-файл «GW». Исправьте все топологические ошибки во вновь созданном классе. Задача 2. Создание слоев Откройте в папке Упр_0402 карту Разломы. Создайте слой из водоводов, пересекающих геологические разломы. Составьте собственную легенду для слоя, подпишите каждый водовод слоя именем собственника водовода. Задача 3. Построение геометрической сети Войдите в директорию Упр_0403 и запустите карту «Пример речной сети.mxd». Подключите, если надо, к источникам шейп-файлы: Узлы, Реки, Границы, Озера. Создайте геометрическую сеть по данным из шейп-файлов Узлы и Реки, а остальные данные используйте как фон. Определите и исправьте все ошибки, выявленные при создании геометрической сети. Проведите недостающие осевые линии потоков, проходящие через озера. Устраните все разрывы сети, не превышающие 10 м.