Статьи

Интерполяция в QGIS, часть 2

2023-08-29 18:36 ГИС Туториалы
Время прочтения: 6 минут

Введение

Эта статья – вторая и заключительная часть небольшой серии статей, посвященных интерполяции в QGIS. В первой части мы разбирались, как выполнять интерполяцию с помощью методов обратных взвешенных расстояний и триангуляции Делоне, и сравнили результаты с реальностью. В сегодняшнем уроке мы проделаем то же самое, но уже с помощью кригинга!

О данных

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

Подготовка

Кригинг не входит в основной набор функций QGIS, поэтому нам нужно подготовиться, чтобы произвести вычисления.
Во-первых, для кригинга потребуется плагин Smart-map, который вы можете установить так же, как и большинство модулей для QGIS: заходим во вкладку Модули, затем Управление модулями, ищем плагин по названию и устанавливаем.
Во-вторых, может так выйти, что недостаточно просто установить плагин, чтобы все работало. Все плагины QGIS используют какой-то код, написанный на каком-либо языке программирования. Smart-Map использует для кригинга библиотеку Scikit-learn, которую она устанавливает для работы плагина. Но бывает так, что по какой-то причине у нее не получается это сделать — это может быть либо из-за версии QGIS, либо из-за других установленных плагинов, либо из-за того, что вы заклеили пластырем вашу веб-камеру (или у вас нет веб-камеры), и при установке плагина ему не хватило силы вашей улыбки (это, между прочим, главная составляющая профилактики любых багов и глюков open-source программного обеспечения).
В общем, лучше всего превентивно провести мероприятие, которое позволит плагину корректно работать. Для этого вручную установим библиотеку Scikit-learn для нашего QGIS.
Чтобы сделать это, нам нужно открыть приложение OSGeo4W Shell — его можно найти по поиску на компьютере либо в папке с кучей ярлыков на рабочем столе, которая появляется при установке QGIS.
В открывшейся панели пишем вот такой код и нажимаем enter:
python -m pip install scikit-learn

А вот и кригинг!

Демонстрировать кригинг будем на том же слое из 301 точки, что и использовали в предыдущем уроке. И теперь важная часть о кригинге в QGIS: использовать большие массивы данных в нем не получится =(
Если ваш объем данных слишком большой, то вы получите либо ошибку на одном из этапов, которая приведет к зависанию программы, либо будете бесконечно смотреть на надпись типа “Progress 0%”. Я связываю это с тем, что для многих действий QGIS не может использовать мощности более одного ядра процессора вашего компьютера (одна из причин, почему некоторые операции с помощью SQL или Python могут стать привлекательнее). У нас, кстати, есть курсы и по первому и по второму. Есть даже вариант для тех, кто уже что-то знает про питон, как я! Например, то что у них красивая чешуя, и они ползают в тропиках, и… наверное… простите, вернемся к уроку.
Теперь приступаем к кригингу: на панели вашего QGIS ищем иконку плагина Smart Map и смело жмем на нее.
После того, как точки импортированы переходим на вторую слева вкладку “Grid”.
Вы можете ограничить область интерполяции сами, использовав отдельный полигональный слой — если он есть в проекте, то панель Outline Polygon будет доступна для использования, по умолчанию интерполяция происходит по границам ограничивающего прямоугольника (bounding box).
Помните, что если границы вашего полигона будут далеко от ваших точек, то тогда на определенном удалении от точек начнется экстраполяция, которая будет выражена в повторении среднего значения слоя с вашими точками.
Теперь переходим к вкладке интерполяции (“Interpolation”).
В начале все просто, нажимаем единственную доступную кнопку “Calculate”, чтобы появилась возможность настраивать наши вариограммы.
Нажимаем “Interpolate” и получаем наш растр интерполированных значений, он отобразится как в окне модуля, так и в проекте.

Сравнение методов интерполяции в QGIS

И сейчас я вам предлагаю сравнить результаты интерполяции кригингом, методом обратных взвешенных расстояний и триангуляцией Делоне:
А теперь, как говорится, все выводы вы можете сделать сами. Если вам была интересна эта серия статей и вы прочитали их полностью, то ставьте эмодзи с ноготочками к посту в телеграм 💅
Материал подготовил Александр Зуев