F Задание №6. Генерализация цифровой модели рельефа

Цель задания — овладение различными техниками генерализации ЦМР.

В настоящем задании необходимо сравнить два метода мелкомасштабной генерализации ЦМР: глобальная фильтрация и структурная генерализация.

Задачи работы включают подготовку исходных данных, разработку программного инструмента итерационного сглаживания ЦМР, выполнение генерализации ЦМР методами структурной генерализации и глобальной фильтрации, а также сравнительный анализ полученных результатов

F.1 Подготовка исходных данных

  1. Закачайте набор инструментов DEM Generalization и разархивируйте его:

    Инструмент генерализации ЦМР DEM Generalization

    Рис. F.1: Инструмент генерализации ЦМР DEM Generalization

  2. Закачайте фрагмент ЦМР GEBCO 2021 размером \(10^\circ \times 10^\circ\), используя веб-интерфейс. Для этого включите показ градусной сетки (Show graticule), выберите формат GeoTIFF и, используя CTRL + клик, обведите квадрат со сторонами, примерно совпадающими с линиями сетки, кратными 5 градусам:

    Загрузка цифровой модели рельефа GEBCO

    Рис. F.2: Загрузка цифровой модели рельефа GEBCO

    На выбор предлагаются фрагменты с центрами в следующих точках:

    • Красное море (\(40; 15\));
    • Альпы (\(10; 45\));
    • Норвегия (\(10; 60\));
    • Южный Каспий (\(50; 40\));
    • Центральные Анды (\(-70; -15\));
    • Северные Анды (\(-75; 5\));
    • Аляска (\(-150; 60\));
    • Камчатка (\(160; 55\));
    • Австралия (\(150; -35\));
    • Калифорния (\(-120; 35\))
  3. Закачайте данные Natural Earth масштаба 1:10 000 000 для следующих слоев:

    • береговая линия (Coastline);
    • океан (Ocean);
    • гидрография площадная (Rivers + lake centerlines);
    • гидрография линейная (Lakes + Reservoirs)
  4. Получите охват скачанного растра в качестве полигона (Raster Domain).

  5. Обрежьте полученным полигоном данные Natural Earth (Clip).

  6. Перепроецируйте все исходные данные (ЦМР + три векторных слоя) в цилиндрическую равнопромежуточную проекцию World_Plate_Carree.

    Если операция выполнена верно, то проецированная версия ЦМР должна в точности совпадать с исходной как по размерам, так и по значениям. Отличие будет заключаться только в координатах ячеек, которые от градусов перейдут в метрические.

F.2 Автоматизация итерационного сглаживания ЦМР

В данной части задания необходимо создать набор инструментов Python Toolbox, содержащий один инструмент Iterate Focal Statistics, который выполняет последовательное сглаживание цифровой модели рельефа фильтром среднего в несколько проходов с использованием заданных параметров.

Предварительное чтение:

  1. Синтаксис вызова инструмента Focal Statistics средствами языка программирования Python.
  2. Создание нового набора инструментов Python Toolbox.

Параметры инструмента:

  1. Входная ЦМР (Input Raster DEM).
  2. Размер плавающего окна (Filter size).
  3. Количество итераций (Number of iterations).
  4. Выходная ЦМР (Output Raster DEM).

Указания к выполнению:

  1. Скачайте шаблон инструмента Python Toolbox.

  2. Переименуйте шаблон в Ex6.pyt.

  3. Модифицируйте шаблон, дав основному инструменту название Iterate Focal Statistics и определив в нем необходимые параметры и их типы.

  4. Добавьте строку импорта функций модуля Spatial Analyst: from arcpy.sa import *.

  5. Выполните редактирование функции execute(), включив в нее следующие шаги (вместо многоточия подставьте нужные параметры):

    • Чтение параметров инструмента в теле функции. Например: in_raster = parameters[0].valueAsText.
    • Создание объекта типа Raster из слоя входной ЦМР: dem = Raster(...).
    • Создание прямоугольной окрестности заданного размера: nbr = NbrRectangle(...).
    • Организация цикла от \(0\) до \(N-1\), где \(N\) — количество итераций, переданное в качестве параметра инструмента: for i in range(N):. Внутри цикла:
      • Вывод сообщения о текущем номере итерации: arcpy.AddMessage(...).
      • Вызов функции фокальной статистики с созданной ранее окрестностью. Чтобы на каждой итерации на вход подавался результат выполнения предыдущей итерации, просто записывайте его в ту же переменную: dem = FocalStatistics(dem, ...).
    • Сохранение полученного растра в выходной набор данных Output Raster DEM: dem.save(...).

F.3 Сравнение структурной генерализации и глобальной фильтрации ЦМР

В данной части задания необходимо выполнить генерализацию фрагмента глобальной ЦМР двумя методами: структурная генерализация и глобальная фильтрация.

  1. Выполните генерализацию ЦМР с использованием инструмента Generalize DEM, указав слой ocean в качестве параметра Marine area polygon feature layer. Для начала выполните генерализацию со стандартными параметрами, после этого включите сглаживание ЦМР в блоке Widening and Smoothing и усильте генерализационный эффект в блоке Main parameters таким образом чтобы результирующая ЦМР по детализации соответствовала масштабу 1:10 000 000.

  2. Выполните генерализацию ЦМР с использованием созданного вами инструмента Iterate Focal Statistics. Используйте размер окна, равный 5 ячейкам и подберите количество итераций такое, при котором детализация сглаженной ЦМР будет равна результату, полученному методом структурной генерализации.

  3. Создайте таблицу описательных статистик исходной и генерализованных ЦМР, включающую следующие столбцы:

    • минимум;
    • максимум;
    • среднее;
    • стандартное отклонение;
  4. Постройте по ЦМР горизонтали на следующих уровнях (можно взять то подмножество, которое релевантно для вашей области):

    • -12000
    • -10000
    • -8000
    • -6000
    • -5000
    • -4500
    • -4000
    • -3500
    • -3000
    • -2500
    • -2000
    • -1500
    • -1000
    • -500
    • -200
    • -100
    • -50
    • 0
    • 50
    • 100
    • 150
    • 200
    • 300
    • 500
    • 750
    • 1000
    • 1250
    • 1500
    • 1750
    • 2000
    • 2500
    • 3000
    • 3500
    • 4000
    • 4500
    • 5000
    • 6000
    • 7000
    • 8000
    • 9000
  5. Отобразите три цифровые модели рельефа в единой гипсометрической шкале с вышеуказанными ступенями. Спроектируйте цветовую шкалу, на которой будут хорошо различимы указанные ступени.

  6. Добавьте объекты береговой линии, линейной и площадной гидрографии. В проекте одновремененно должны отображаться следующие слои: цифровая модель рельефа, горизонтали, береговая линия, гидрография линейная, гидрография площадная.

  7. Экспортируйте три изображения в масштабе 1:10 000 000:

    • Исходная ЦМР
    • Структурная генерализация
    • Генерализация методом глобальной фильтрации
  8. Напишите отчет о проделанной работе, который включает следующие пункты:

    • Цель и задачи
    • Источники данных
    • Алгоритмы генерализации (пошаговое описание).
    • Ход выполнения работы
    • Анализ результатов

В разделе анализа результатов необходимо сравнить качество полученных ЦМР с точки зрения географического правдоподобия и точности отображения рельефа. Анализ должен опираться как на визуальное сравнение изображений, так и на рассчитанные для каждой ЦМР описательные статистики.


Douglas, D. H., and T. K. Peucker. 1973. “Algorithms for the Reduction of the Number of Points Required to Represent a Digitized Line or Its Caricature.” The Canadian Cartographer, no. 10(2): 112–22.
Li, Zhilin, and Stan Openshaw. 1992. “Algorithms for Automated Line Generalization Based on a Natural Principle of Objective Generalization.” International Journal of Geographical Information Systems 6 (5): 373–89. https://doi.org/10.1080/02693799208901921.
Samsonov, T, and A Krivosheina. 2012. “Joint Generalization of City Points and Road Network for Small-Scale Mapping,” 1–7.
Schmid, Falko, and H A Janatzek. 2013. “A Method for High-Level Street Network Extraction of OpenStreetMap Data in OpenScienceMap,” 14.
Visvalingam, M, and J D Whyatt. 1993. “Line Generalisation by Repeated Elimination of Points.” The Cartographic Journal 30 (1): 46–51. https://doi.org/10.1179/caj.1993.30.1.46.
Wang, Zeshen, and Jean-Claude Müller. 1998. “Line Generalization Based on Analysis of Shape Characteristics.” Cartography and Geographic Information Science 25 (1): 3–15. https://doi.org/10.1559/152304098782441750.
Zhou, Sheng, and Christopher B Jones. 2005. “Shape-Aware Line Generalisation With Weighted Effective Area.” In Developments in Spatial Data Handling, 12. Berlin, Heidelberg: Springer.