Использование ГИС GRASS для работы с цифровыми моделями рельефа
Особенности GRASS
- Старейшая и мощнейшая из открытых ГИС
- Работает почти на любом «железе»: от телефонов до суперкомпьютеров
- Собственный, архитектурно-независимый и переносимый (32/64 bit) формат данных
- Кроссплатформенность: Linux/Unix, Windows, Mac OS
- Развитый и стабильный API (С/Python)
- Быстрое создание модулей и документации по шаблонам
- Unix-происхождение: «1 функция — 1 модуль»; командная строка + сочетание модулей
- Скрипты: shell, Python, Perl, PHP ...
- Возможность параллельной обработки данных
- Взаимодействие с другим СПО (GDAL, R, OSSIM ...)
- Импорт/экспорт ЦМР многих форматов
GRASS + ЦМР
- Модули:
- GRASS 6.4.* — более 40 модулей для работы с ЦМР;
- десятки спец. модулей, разработанных сообществом
- ЦМР = растр:
- собственный растровый формат + свой обменный формат (GRASS ASCII Grid);
- многие «общие» растровые операции работают с ЦМР;
- регистрация растра по центру ячейки;
- охват и разрешение — по текущему вычислительному региону.
- Поддерживаемые типы данных: 32-битные целые числа, числа c плавающей точкой одинарной и двойной точности
- 3D-растры («voxel») — работа с настоящим объёмом
Импорт, экспорт, конвертация
∙ Импорт/экспорт растровых форматов: ∙ Форматы GDAL: r.in.gdal/r.out.gdal; ∙ ASCII Grid: r.in.arc, r.in.ascii/r.out.ascii ∙ Двоичные растры: r.in.bin/r.out.bin ∙ Matlab — r.in.mat/r.out.mat ∙ POV-Ray — r.out.pov ∙ VTK — r.out.vtk ∙ Конвертация данных: ∙ Вектор ⇒ растр: v.to.rast ∙ Растр ⇒ вектор: r.to.vect ∙ 2D-растр ⇒ 3D-растр: r.to.rast3, r.to.rast3elev ∙ 3D-растр ⇒ 2D-растр: r3.to.rast, r3.cross.rast
Интерполяция по точкам и изолиниям
∙ По точкам: ∙ Интерполяция методом обратно-взвешенных расстояний (IDW) — v.surf.idw ∙ Растровые диаграммы Вороного — v.surf.idw ∙ Сплайн-интерполяция с регуляризацией Тихонова (B-splines) — v.surf.bspline ∙ Интерполяция методом «регуляризованных сплайнов с натяжением» (RST): v.surf.rst, v.vol.rst ∙ Интерполяция методами «естественного соседства» и триангуляцией Делоне: r.surf.nnbathy ∙ Кригинг (через R): v.krige ∙ По изолиниям (линейная интерполяция): r.surf.contour ∙ Интерполяции с разрывами («breaklines») НЕТ.
Передискредитация/интерполяция растров
∙ Заполнение «пустот» в растре (3 способа): r.fillnulls ∙ Увеличение разрешения: ∙ Методом «ближайшего соседа»: r.resample ∙ Билинейная и бикубическая интерполяция: r.resamp.interp ∙ Методом «регуляризованных сплайнов с натяжением» (RST): r.resamp.rst ∙ Огрубление разрешения (11 способов агрегации): r.resamp.stats
Создание «случайных» и других поверхностей
∙ «Случайные» поверхности: ∙ r.random.surface ∙ r.surf.random — равномерные случайные отклонения ∙ r.surf.fractal — фрактальные поверхности ∙ r.surf.gauss — растры по гауссовым отклонениям ∙ «Плоские» поверхности в точке по углу наклона и азимуту: r.plane
Триангуляционные нерегулярные сети (TIN)
∙ TIN в GRASS — набор стандартных 3D-полигонов ∙ 3D-триангуляция Делоне (TIN): v.delaunay, на рис. в центре ∙ Триангуляция Делоне со структурными линиями: v.triangle (доп. модуль), на рис. справа. Использует Triangle (J. R. Shewchuk).
Фильтрация, сглаживание
∙ Фильтрация растров: ∙ r.neighbors — «скользящее окно» (11 способов) ∙ r.mfilter — матричный фильтр с «весами» ∙ r.mapcalc — растровый калькулятор ∙ Сглаживание, удаление «шума»: r.denoise, доп. модуль (алгоритм Sun и др., 2007)
Редактирование ЦМР и другие действия
∙ «Ручное» редактирование растра: d.rast.edit
∙ Редактирование растра с помощью r.mapcalc (замена значений, условия и т.д.) ∙ Редактора TIN нет, можно редактировать 2D-векторные данные. ∙ Переклассификация и масштабирование значений ЦМР: r.rescale, r.reclass ∙ Задание цветовой шкалы для ЦМР: r.colors ∙ Создание изолиний: r.contour ∙ Получение профилей рельефа: r.profile
Геоморфометрия
∙ Светотеневая отмывка рельефа: r.shaded.relief ∙ Уклоны, экспозиция склонов, кривизна поверхности: r.slope.aspect, v.surf.rst, r.resample.rst ∙ Анализ освещённости: r.sun, r.sunmask ∙ Анализ видимости: r.los, r.viewshed ∙ Расчёт угла горизонта: r.horizon ∙ Расчёт площади поверхности по рельефу: r.surf.area ∙ Стоимостные поверхности: r.cost, r.walk
r.param.scale — спец. модуль для геоморфологического анализа: генерализация поверхности; уклоны, экспозиция склонов; кривизна: профильная, плановая . . . элементы рельефа (выпуклые/вогнутые склоны, вершины/седловины . . . ); см. ниже
Моделирование затопления
∙ Простое моделирование (создание «озера») r.lake ∙ «Быстрая» оценка возможности затопления по ЦМР: r.hazard.flood* ∙ С учётом формы долины и профиля водотока: r.inund.fluv*
Анализ потоков, гидрологическое моделирование
∙ Коррекция ЦМР, анализ потоков: ∙ r.fill.dir — создание гидрологически корректной ЦМР (заполнение впадин) ∙ r.carve — «прожиг» водотоков в ЦМР ∙ r.drain— трассировка водотока по наименьшему пути ∙ r.flow — расчёт направлений, длин и плотности потоков ∙ r.topidx — расчёт «топографического» индекса ∙ Гидрологическое моделирование: ∙ r.sim.water — модель SIMWE ∙ r.sim.sediment — модель SIMWE ∙ r.topmodel — модель TOPMODEL
Бассейновый анализ
∙ r.watershed — Водотоки, SFD(D8)/MFD; бассейны; аккумуляция; получение параметров для уравнения USLE ∙ r.basins.fill — Создание суббасейнов ∙ r.water.outlet— Выделение бассейнов по устьевым точкам ∙ r.terraflow — Анализ потоков/бассейнов + индекс конвергенции (TCI) для больших массивов данных
Анализ речной сети по Хортону
∙ Серия модулей r.stream.*: r.stream.angle, r.stream.basins,
r.stream.del, r.stream.distance, r.stream.extract, r.stream.order, r.stream.pos, r.stream.preview, r.stream.stats