Упражнение 13 Гидрографические сети

Скачать данные и файл отчета

13.1 Введение

Цель задания — научиться моделировать речную сеть с помощью геометрических методов.

Параметр Значение
Теоретическая подготовка Сетевая модель данных, сетевой анализ, определение кратчайшего маршрута.
Практическая подготовка Знание основных компонент интерфейса ArcGIS Desktop (каталог, таблица содержания, карта). Работы с базой пространственных данных. Настройка символики и подписей объектов.
Исходные данные База данных ГИС “Сатино”.
Результат Набор данных геометрической сети в базе пространственных данных. Результаты сетевого анализа
Ключевые слова Геометрические сети, сетевой анализ

13.1.1 Контрольный лист

  • Добавить на карту слои линейной и площадной гидрографии
  • Оцифровать недостающие сегменты линейного слоя гидрографии
  • Разрезать линейный слой гидрографии в узлах сочленения водотоков
  • Построить геометрическую сеть на основе полученного линейного слоя
  • Выполнить упражнения по анализу построенной геометрической сети

13.1.2 Аннотация

Речные системы, транспортные и инженерные коммуникации — это примеры пространственных сетей. Сети играют огромную роль в географическом пространстве, их можно найти практически на любой карте, они учитываются в виде факторов во многих географических задачах. Основная функция сетей — перенос вещества и данных. Отличительной особенностью сетей является направленность линейных отрезков и их топологическая связность в местах сочленения, таких как слияния рек, перекрестки дорог, разветвления трубопроводов.

В этом задании вы приобретете навыки по созданию и редактированию линейных и точечных объектов, построите геометрическую сеть речной системы на их основе и научитесь делать простой сетевой анализ — построение маршрутов, трассировка водотоков вверх по течению. Полученные навыки пригодятся при изучении сетей других типов: инженерных и транспортных.

13.2 Создание набора данных речной сети

В начало упражнения ⇡

  1. Откройте ArcMap.

  2. Сохраните карту через команду меню File > Save в вашей директории Ex13 под именем Ex13_Реки.mxd. Это необходимо для того, чтобы у вас появилась домашняя директория в окне каталога.

  3. Откройте окно Каталога. Найдите вверху домашнюю директорию Home — это каталог Ex13, куда вы сохранили документ карты.

  4. Добавьте на карту слои WaterPolygon и WaterLine из базы Satino.gdb.

Перед вами два представления речной сети: линейное и площадное. Подумайте, в каких задачах необходимо одно представление, а в каких — другое?

Чтобы обеспечить связность гидрографической сети, следует преобразовать площадное представление крупных водотоков в линейное. Для этого необходимо вручную оцифровать осевую линию реки, притянуть устья притоков к этой осевой линии, а затем разрезать осевую линию в узлах пересечения (в дальнейшем это позволит при трассировке «сворачивать» с одного водотока на другой).

  1. Щелкните правой кнопкой мыши по домашнему каталогу (Home) и выберите New > File Geodatabase для того, чтобы создать новую базу геоданных.

  2. Назовите ее Ex13.

  3. Щелкните по Ex13.gdb правой кнопкой мыши и выберите пункт Make Default Geodatabase. Эта команда указывает системе, что все результаты обработки данных следует помещать в выбранную базу геоданных.

  4. Добавьте в базу геоданных Ex13.gdb новый набор данных Hydro. Для этого щелкните правой кнопкой мыши на названии базы геоданных и в контекстном меню выберите New > Feature Dataset (Рис. 1).

    Рис. 1. Создание нового набора данных (Feature Dataset)

  5. В появившемся окне введите название набора данных Hydro.

  6. В следующем окне вам просят задать проекцию. Щелкните на кнопке Add Coordinate System и в ниспадающем меню выберите команду Import. Найдите слой Border базе геоданных Satino.gdb и дважды кликните на нем. Параметры проекции автоматически подставятся из созданного ранее слоя. Убедитесь, что проекция называется WGS_1984_UTM_Zone_37N.

  7. Нажмите Далее и во всех оставшихся диалогах оставьте параметры по умолчанию.

  8. Создайте новый класс пространственных объектов Streams внутри набора данных Hydro. Для этого щелкните правой кнопкой мыши по набору данных Hydro и в контекстном меню выберите пункт New—Feature Class.

  9. В первом диалоге введите название класса Streams, его псевдоним (alias) Водотоки и из ниспадающего списка выберите тип класса Line Features (Рис. 2). Нажмите Далее два раза, чтобы пропустить второй диалог.

    Рис. 2. Диалог создания линейного класса пространственных объектов

    В появившемся (третьем) диалоге (Рис. 3) вас просят определить состав атрибутивных полей для слоя. Здесь можно сделать это вручную, однако мы воспользуемся импортом.

    Рис. 3. Определение атрибутивных полей для класса Streams

  10. Нажмите кнопку Import и найдите класс WaterLine в базе геоданных  Satino.gdb, дважды щелкните на нем. Названия и типы полей автоматически подставятся в список (Рис. 3).

  11. Нажмите Finish. Проверьте, чтобы в вашей таблице содержания было 3 слоя: Водотоки, Гидрография (линии) и Гидрография (полигоны).

13.3 Копирование и цифрование линий водотоков

В начало упражнения ⇡

Для того чтобы собрать речную сеть, можно скопировать уже существующие линейные водотоки в созданный вами слой, а затем оцифровать недостающие водотоки (Протва и Исьма).

Цифрование — это процесс получения векторных объектов на основе изображения. При ручной оцифровке пользователь ГИС самостоятельно рисует линии, обводит полигоны, расставляет точки поверх растрового изображения, в котором эти объекты нарисованы. Существуют также методы цифрования, которые решают эту задачу в полуавтоматическом режиме, когда система пытается самостоятельно распознать и векторизовать объекты, а пользователь затем исправляет ошибки и недочеты в результатах цифрования. Типичный пример — перевод отсканированной бумажной топографической карты в набор векторных слоев базы пространственных данных.

  1. Щелкните правой кнопкой мыши на слое Водотоки и выберите пункт меню Edit Features > Start Editing, чтобы начать редактирование.

  2. Выделите все водотоки из слоя Гидрография (линии). Для этого щелкните правой кнопкой мыши по слою Гидрография (линии) и в контекстном меню выберите пункт Selection > Select All. Скопируйте выделенные водотоки в буфер обмена через команду главного меню Edit > Copy.

  3. Вставьте скопированные объекты в слой Водотоки. Для этого воспользуйтесь стандартной командой главного меню Edit > Paste и в появившемся диалоге выберите в качестве целевого слой Водотоки.

  4. Снимите выделение с водотоков, нажав кнопку Clear Selected Features на панели инструментов Tools.

  5. Удалите слой Гидрография (линии) из таблицы содержания. В этом задании он больше вам не понадобится.

  6. Переключитесь в окно Create Features c помощью кнопки на панели Tools (Рис. 4) и выберите Водотоки в списке цифруемых объектов:

    Рис. 4. Панель Create Features

  7. Приблизьтесь к верховьям Протвы в западной части карты. Для навигации используйте колесико мыши (масштабирование) и кнопку C на клавиатуре (перемещение). Рекомендуемый диапазон масштабов для цифрования — 1:1 500–1:2000. Вы можете его отслеживать вверху окна.

  8. Щелкните посередине полигона в месте начала реки и начните цифровать линию примерно по осевой линии полигона с определенным интервалом. Щелкните мышью в месте, где вы хотите поставить точку, затем переместите курсор к месту следующей точки, щелкните еще раз, и так далее. Не увлекайтесь и не расставляйте точки слишком часто. Оцифруйте осевую линию Протвы целиком с запада на восток — это займет у вас некоторое время.

  9. Когда линия будет полностью оцифрована, щелкните дважды мышью в последней точке, или нажмите F2.

    Рис. 5. Оцифровка осевой линии реки и окно Create Features

    Советы по цифрованию:

    Если вам мешает плавающее окно дополнительных функций, нажмите клавишу TAB.
    Если ваш курсор подошел к границе окна, зажмите клавишу C на клавиатуре и переместите карту. Отпустите клавишу C и продолжайте цифрование.
    Если вы поставили точку не в том месте, где хотели, нажмите Ctrl + Z, чтобы отменить действие.
    Если вы случайно завершили цифрование раньше, чем требуется, начните с последней точки. Ничего страшного, если у вас получится 2-3, а не одна линия — их всегда можно объединить.
    Если вы хотите сдвинуть вершину, выберите стрелку на панели редактирования и дважды щелкните на линии — появятся вершины. После того, как сдвинете нужные точки, щелкните курсором на пустом месте карты.
    Если курсор в узком месте назойливо притягивается к границе реки, попробуйте увеличить масштаб изображения.

  10. Повторите операцию цифрования для реки Исьмы от ее верховья до устья. Последнюю точку поставьте на осевой линии Протвы.

  11. Сохраните изменения, выбрав на панели Editor команду Editor > Save Edits.

  12. Снимите выделение с водотоков, нажав кнопку Clear Selected Features на панели инструментов Tools.

  13. Нажмите глобус Full extent, чтобы все объекты поместились на экране.

13.4 Притягивание (снэппинг) притоков и разрезание осевой линии основных рек

В начало упражнения ⇡

Вы помните, что ранее оцифрованные притоки Протвы и Исьмы были пристыкованы к полигональной границе реки. Возникает вопрос: сохранился ли этот характер соседства после того, как вы заменили полигональное представление рек на линейное?

  1. Найдите устье реки Межиловки при впадении в Протву (западная часть полигона) и увеличьтесь так, чтобы было хорошо видно место впадения.

    Какая топологическая ошибка может быть замечена в месте впадения ручья в Протву?

  2. Возьмите стрелку на панели Editor и дважды щелкните на линии ручья. Должны появиться вершины. Потяните за последнюю вершину и пристыкуйте ее к линии реки (Рис. 6). Щелкните на пустом месте, чтобы завершить редактирование.

    Рис. 6. Притягивание устья притока к осевой линии реки

  3. Повторите операцию для всех остальных ручьев. Перемещайтесь по карте, используя клавишу C. Не забудьте также про Исьму. Сохраните изменения, выбрав команду Editor > Save Edits

    Помимо сохранения связности для геометрической сети очень важно, чтобы линии были разрезаны на сегменты между пересечениями. Это необходимо для того чтобы отличать реальные узлы от перекрытий (сравните обычный перекресток и эстакаду!).

  4. Выделите на карте Протву и приблизьтесь к месту впадения в нее реки Межиловки.

  5. Найдите на панели Editor инструмент разрезания линии и щелкните мышью в месте впадения ручья в Протву. Линия Протвы разобьется этой точкой на 2 части.

  6. Повторите процедуру с выделением Протвы и разрезанием для всех остальных притоков.

  7. Разрежьте аналогичным образом остальные водотоки.

  8. Сохраните изменения, выбрав команду Editor > Save Edits. Завершите редактирование, выбрав команду Editor > Stop Editing.

  9. Сохраните документ карты.

13.5 Установка точки стока

В начало упражнения ⇡

Подготовленных вами данных уже достаточно для того, чтобы построить геометрическую сеть. Однако в общем случае сеть является двунаправленной (например, транспортная), а наша сеть имеет вполне определенное направление — вниз по течению. Чтобы задать это направление, необходимо создать новый точечный слой и поставить в нем одну точку, расположенную ниже всего по течению.

  1. Перейдите в окно Каталога, щелкните правой кнопкой мыши по набору данных Hydro и выберите пункт New > Feature Class.

  2. Задайте классу имя Sink и точечный тип Point Features. Остальные параметры оставьте по умолчанию.

  3. Смените символ слоя Sink на кружок голубого цвета диаметром 10 пикселов.

  4. Включите режим редактирования с помощью команды Edit Features > Start Editing, в окне Create Features выберите Sink и поставьте точку на восточной оконечности реки Протвы (правый край карты).

  5. Сохраните изменения и завершите режим редактирования.

  6. Добавьте на карту слой горизонталей ContoursBasic из базы данных Satino.gdb и смените цвет линий на бледно-серый. Переместите его вниз в качестве основы.

  7. Отключите слой Гидрография (полигоны) и нажмите кнопку Full extent, чтобы вся территория полигона поместилась на экране.

Рис. 7. Линейный слой водотоков, горизонтали и точка стока

Снимок экрана №1. Линейный слой водотоков, горизонтали и точка стока

13.6 Построение и настройка геометрической сети

В начало упражнения ⇡

Ваши данные полностью готовы к тому, чтобы построить на их основе геометрическую сеть.

  1. Перейдите в окно Каталога, щелкните правой кнопкой мыши по набору данных Hydro и выберите пункт New > Geometric Network.

  2. Оставьте Hydro_Net в качестве имени по умолчанию и установите расстояние принудительного снэппинга линий равным 1 м (Рис. 8). Эта опция будет полезна, если вы где-то не дотянули устье притока до реки. Оно дотянется автоматически. Нажмите Далее.

    Рис. 8. Имя геометрической сети и параметры снэппинга

  3. В следующем окне нажмите Select All, чтобы выбрать слои, участвующие в построении сети (Рис. 9). Нажмите Далее.

    Рис. 9. Выбор слоев, участвующих в построении сети

  4. Перед вами окажется диалог настройки ролей. Junction — это узел, Edge — это ребро. Для слоя Sink установите значение параметра Sources & Sinks равным Yes. Система будет знать, что этот слой содержит точки, являющиеся истоками либо стоками (Рис. 10). Нажмите Далее.

    Рис. 10. Установка ролей слоев в геометрической сети

  5. Во всех остальных диалогах оставьте параметры по умолчанию. Нажмите Finish в последнем диалоге, чтобы завершить создание сети.

  6. После того как будет построена геометрическая сеть, в таблицу содержания добавятся 3 новых слоя: Водотоки (ребра сети), Hydro_Net_Junctions (сочленения в сети) и Sink (точка стока). Удалите новые слои Водотоки и Sink, поскольку они дублируют старые

  7. Включите режим редактирования и откройте таблицу атрибутов слоя Sink.

  8. Установите для единственной точки в этом слое поле AncillaryRole равным 2 (Sink). Если список не отображается, просто введите в ячейку 2. Обратите внимание на то, что есть и противоположный вариант — Source (исток).

    Рис. 11. Установка роли точки стока

  9. Сохраните изменения, выбрав пункт меню Editor > Save Edits.

  10. Щелкните правой кнопкой мыши на пустом поле вверху окна и откройте панель инструментов Utility Network Analyst, предназначенную для работы с геометрической сетью (Рис. 12).

    Рис. 12. Панель инструментов Utility Network Analyst для работы с геометрическими сетями

  11. Выберите в меню пункт Flow > Display Arrows для того чтобы система автоматически показала направление течения. Вдоль отрезков будут показаны кружки, означающие, что направление еще не задано (Рис. 13).

    Рис. 13. Неопределенное направление течения в геометрической сети

  12. Нажмите кнопку Set Flow Direction. Кружки должны смениться стрелочками, указывающими направление течения. Просмотрите разные части карты и убедитесь в том, что направление течения задано одинаково верно для всех водотоков (Рис. 14).

    Рис. 14. Определенное направление течения в геометрической сети

    Снимок экрана №2. Геометрическая сеть с определенным направлением течения

  13. Завершите сеанс редактирования, выбрав на панели Editor пункт меню Editing > Stop Editing. В появившемся диалоге нажмите Да.

Вы закончили подготовку и настройку геометрической сети. Теперь она доступна для анализа и редактирования.

13.7 Анализ и редактирование геометрической сети

В начало упражнения ⇡

Самое интересное в сетевых моделях — это возможность их анализа. Например, если зафиксирована точка прорыва на трубопроводе, можно определить все расположенные далее сегменты и ответвления сети, которые пострадают в результате аварии. Для замыкающего створа на реке можно определить все притоки, расположенные выше по течению или быстро трассировать путь воды вниз по течению вплоть до устья основной реки бассейна. При анализе транспортных сетей часто решается задача прокладки кратчайшего маршрута, расчета зон доступности и управления парком транспортных средств.

При анализе геометрических сетей в ArcGIS используются флаги и барьеры. Флаг — это точка, относительно которой осуществляется трассировка сети. Барьер — это точка, запрещающая проход по ребру графа или его вершине.

  1. Откройте меню флагов и барьеров на панели инструментов Utility Network Analyst и выберите флаг для вершины (первая иконка на Рис. 15).

    Рис. 15. Меню флагов и барьеров

  2. Поставьте флажок в месте впадения реки Межиловки в Протву.

  3. В списке Trace Task выберите задачу Trace Upstream (трассировать вверх по течению) и нажмите кнопку Solve.

    Инструмент анализа выделит водотоки, расположенные выше по течению относительно заданной точки. Весь их сток в конечном счете попадает в данную точку (Рис. 16).

    Рис. 16. Трассировка водотоков, расположенных выше по течению

    Снимок экрана №3. Водотоки выше по течению относительно заданной точки

  4. Смените задачу на Trace Downstream и опять нажмите кнопку Solve.

    Инструмент анализа построит маршрут вниз по течению

  5. Поставьте еще один флажок в верховьях ручья Язвицы и запустите анализ в режиме Find Path. Будет построен маршрут между двумя точками (Рис. 17).

    Рис. 17. Маршрут между двумя точками

    Снимок экрана №4. Маршрут между двумя точками

  6. Поставьте точечный барьер (вторая справа иконка на Рис. 15) в месте впадения Исьмы в Протву и попробуйте еще раз рассчитать маршрут.

    Что произошло с расчетом маршрута после того, как вы поставили барьер?

  7. Очистите флаги и барьеры, выбрав Analysis > Clear Flags и Analysis > Clear Barriers.

  8. Попробуйте поэкспериментировать с разными режимами расчетов в меню Trace Task и расстановкой флагов и барьеров.

    Геометрическая сеть отличается также тем, что это топологический формат хранения данных — она хранит связность ребер и вершин, что бывает удобно при редактировании и совершенно необходимо при анализе.

  9. Включите режим редактирования снова и приблизьтесь к месту впадения любого ручья в Протву.

  10. Выделите узел сочленения и переместите его в сторону.

    Что происходит при перемещении узла сети? Остаются ли ребра на своих местах?**

Сохраните документ карты еще раз.

13.8 Контрольные вопросы

В начало упражнения ⇡

  1. Каким требованиям должны отвечать гидрографические данные, чтобы их можно было представить в виде геометрической сети?

  2. Какие функции выполняют флаги и барьеры при решении задач сетевого анализа?

  3. Какие задачи можно решать с помощью анализа геометрических сетей?

  4. Какие преимущества при редактировании данных дает топологическая структура данных?