<<На Главную         <В меню Советы по ArcGIS

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

Приступая к решению обозначенной выше задачи я вспомнил, что в программе SAS.Планета была возможность качнуть карту рельефа в виде растра. Картинка в SAS.Планета выглядела сл. образом:

В общем, думаю, с этим моментом всё ясно. Качаем карту рельефа на нужный фрагмент территории (как это сделать см. на нашем сайте здесь). Но тут  меня ожидало большое разочарование - растр не содержал данные о рельефе! Правда, по контекстной опции Высота рельефа можно узнать нужную информацию в необходимых точках:

Забегая немного вперёд, советую выписать на бумажку эти данные в некоторых характерных ( ярко выраженные впадины/вершины) точках. Эта информация нам пригодиться

Загружаем  скаченный фрагмент картинки рельефа в ArcGIS:

Пользы от картинки в таком виде маловато- растр не содержит информацию о значении параметра Z. Эта проблемка решается довольно легко - надо просто сделать "растяжку" (Stretched) нашей растровой карты :

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

Пожалуй, мы двигаемся в нужном направлении. Знаем значения какого-то абстрактного параметра в каждой точке растра. Теперь задача подменить это значение нужной нам информацией о высоте рельефа. И тут нам на помощь может придти утилита Reclassify (Переквалификация) из набора инструментов Spatial Analyst:

Для начала, переклассифицируем поверхность, ну скажем, на шесть интервалов:

Наблюдаем такую картинку:

Делаем ещё один прогон полученной поверхности утилитой Reclassify - назначаем каждому классу значение высоты рельефа (тут нам пригодятся данные с бумажки, полученные в SAS.Planet, см. выше):

Утилита ArcGIS Reclassify

Получаем очередную карту вот теперь с "правильным" значением параметра Z (высота рельефа):

Но результат построения в некоторых локализациях (обведено красным) нас не совсем устраивает :

В ArcGIS имеется возможность избавиться от слишком мелких деталей растра с помощью утилиты Filter:

Задаём опции утилиты так, как показано на форме ниже:

Утилита ArcGIS Filter

... и видим сл. карту:

Обработка растра утилитой Filter улучшает качество карты - исчезли слишком мелкие детали.

Весь этот огород мы городили, чтобы воспользоваться инструментом Cont0ur для построения изолиний:

На вход утилиты подаём полученный интерполированный растр и шаг высоты рельефа:

Утилита ArcGIS Сontour

Таак ... Любуемся на очередную полученную нами карту  - теперь уже со слоём изолиний:

Создать карту изолиний

Не смотря на обработку растра утилитой Filter, на карте изолиний всё-таки остаются слишком мелкие контура, от которых желательно избавиться. Эту процедуру можно произвести с помощью утилиты Simplify Line:

Интерфейс утилиты имеет сл. вид:

Утилита ArcGIS Simplify Line

Прежде чем  назначить порог чувствительности (параметр Simplification Tolerance), можно инструментом Линейка прикинуть его размер:

Ну вот, таким образом, избавились от слишком мелких фрагментов слоя изолиний. Смысл утилиты Simplify Line передаёт следующий рисунок:

Чтобы ещё больше повысить качество нашего слоя изолиний, можно воспользоваться инструментом  Smooth Line (Сглаживание линий) :

Окончательно, после проведения всех процедур, карта изолиний  с нанесёнными подписями значений высот может иметь сл. вид:

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

Как вариант, можно продолжить обработку слоя горизонталей в программе Surfer (о том, как отконвертировать данные  см. здесь, как обработать - см. тут). Результат обработки в Surfer может выглядеть сл. образом:

Если вернуть результаты обработки из Surfer в ArcGIS, наша учебная карта может выглядеть так:

Карта изолиний в ArcGIS

Ремарка от 14.03.2012  Более изящное решение задачи "Где взять растровую карту рельефа" можно посмотреть на нашем сайте здесь и тут

©Simashkov.2011

21.12.2011 г.

Назад