Статьи
ГИС Другое

Тип данных меш — на пересечении вектора и растра

Время прочтения: 5 минут

Что такое меш в ГИС

Меш-данные — относительно новая модель данных. Это коллекция вершин, ребер и граней, представленная комбинацией слоев. Модели данных меш используются для визуализации процессов, у которых есть какие-либо потоки: в метеорологии, гидрологии и океанографии. Потоки в данных также позволяют делать эффектные визуализации меш-датасетов. Например, визуализация меш-данных об ураганах эффектно красуется на книге Discover QGIS 3.x от Курта Менке.
В разных изданиях книги меш визуализирован на обложке по-разному. Если поставите эмодзи снеговика к нашему посту в телеграм, то скину фото с обложкой издания в доступной мне библиотеке.

Структура меша

Меш — это необычный тип данных, который не относят ни к растру, ни к вектору. Для него даже написана отдельная библиотека MDAL (Mesh Data Abstraction Library). Работая в QGIS или в ArcGIS с растровыми и векторными файлами, мы используем библиотеку GDAL. Не будем на этом останавливаться, но если вы работаете с кодом, а не с готовой программой, и вас вдруг жизнь довела до меша, а вы не знаете, что с этим делать и как открывать, то стоит начать гуглить MDAL.
Меш — неструктурированная сетка, у которой обычно есть своего рода таблица атрибутов, координаты и временные переменные.
С точки зрения пространственной организации, меш состоит из следующих структурных элементов:
  • вершины (vertices) — координаты точек (XY(Z)) в какой-либо системе координат;
  • ребра (edges) — отрезки, обе точки которых являются вершинами;
  • грани (faces) — группа отрезков, которые формируют замкнутую фигуру, например, прямоугольник или четырехугольник. Фигуры с большим количеством вершин встречаются редко.
Меш бывает разной размерности в зависимости от целей его создания:
  • одномерный меш состоит из вершин и ребер, формируя своего рода граф. Такой меш может быть использован для моделирования городской системы водостоков;
  • двухмерный меш состоит уже из граней, представляющих собой нерегулярную сетку;
  • трехмерный меш состоит из множества двухмерных мешей, каждый из которых имеет вертикальную координату. Такие меши используются в трехмерном графическом моделировании. В ГИС же трехмерные меши используются как центры объемов или для некоторых параметрических функций.
Виды мешей по размерностям в пространстве. Разные виды мешей могут комбинироваться в один сложный объект. Источник
Как было сказано ранее, меш представляет собой нерегулярную сетку, что и отличает его от растра. Связано это с тем, что меш создавался в том числе для моделирования наводнений и иных явлений, в которых присутствуют потоки.
Виды сеток меша. Источник
Чем хорош меш своей нерегулярной структурой, так это тем, что он адаптирован под потоки и окружающую действительность, на которую они в той или иной степени влияют. Источник

Содержание данных

Взглянем на меш поближе, держа в голове всё, что было сказано ранее. Если посмотреть на скриншот, то мы видим растровый снимок, но это не так. Это и есть наш меш, и в свойствах слоя — не размерность в пикселях, а указаны количество вершин, граней, ребер и число групп в наборе данных. Число групп в наборе данных — это, грубо говоря, количество колонок в таблице атрибутов.
Если посмотреть на правую часть скрина, то можно увидеть как раз три группы в наборе данных. Рядом с одной из них нарисована стрелочка, обозначающая главную фишку меша.
Как писал Антон Павлович Чехов, если в статье про меш упомянуты потоки, то рано или поздно будет сказано про направление. Цитата не совсем (совсем не) точная, но как раз подходит для нашей статьи.
В группах данных меш есть два “типа данных”: скалярные и векторные. Причем одна группа данных может иметь как скалярные значения, так и векторные. Скалярные значения — это обычные числа, подобные тем, что мы встречаем в таблице атрибутов. Если речь идет о температуре, то это просто цифры в градусах: 10, 12, 24.
Векторные же значения состоят из двух компонент X и Y, которые показывают направления потоков, например, ветра.
Векторы в меше хорошо видны в визуализации ураганов, прям как на обложке упомянутой книги. Собственно, это тот самый датасет.
На практике меш — это тип данных, который сочетает в себе растровый и векторный компоненты. Последний в свою очередь может иметь как скалярные значения (обычные числа), так и векторные, которые представляют собой пары чисел. А еще они могут содержать в себе временные компоненты, например скорость ветра за каждый час суток.

Что можно сделать с мешем?

Меш очень интересно визуализировать. Помимо типичного для растров и векторов раскрашивания карты в разные цвета в зависимости от значений, меш можно и нужно анимировать благодаря имеющемуся в нём временному компоненту. Данные о времени не всегда есть в меше, но это скорее исключение из правил.
Анимация меш-данных
Помимо этого с группами данных меша можно проводить математические операции подобно тем, что производятся с растрами и векторами: складывать, вычитать, умножать и прочее. Кроме визуализации и математических операций меш также можно редактировать, создавать и удалять грани, вершины и ребра, и делать это как в настольных ГИС, так и в специальном программном обеспечении, предназначенном для создания мешей.

Форматы данных

Несмотря на относительную новизну мешей, для них уже создано множество форматов поддерживающих этот тип данных: GRIB, NetCDF, HDF (HEC-RAS), XMDF, XDMF, FLO-2D, Selafin files, SMS DAT и SWW (Anuga). Так что, если наткнетесь на один из таких форматов, не пугайтесь — это меш!

Источники информации

Материал подготовил Александр Зуев