Векторные и растровые данные

Урок про два главных способа представить реальность в ГИС — и почему выбор между ними определяет всё остальное.

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

Представьте, что нужно записать в компьютер озеро. Можно обвести его берег ломаной линией и сказать «вот граница» — это вектор. А можно накрыть местность сеткой квадратов и в каждом квадрате пометить «вода» или «не вода» — это растр. Оба способа описывают одно озеро, но устроены диаметрально противоположно, и это самое важное деление во всей геоинформатике.

Векторные данные: три кита

В векторной модели всё строится из трёх примитивов:

  • Точка (Point) — один объект без размера: дерево, светофор, вышка. Это пара координат.
  • Линия (LineString) — упорядоченная цепочка точек: река, дорога, маршрут.
  • Полигон (Polygon) — замкнутая ломаная, очерчивающая площадь: озеро, район, страна. Первая и последняя точка совпадают.
  Точка     Линия           Полигон
    *        *--*--*          *----*
                  \           |    |
                   *          *----*

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

Растровые данные: сетка значений

Растр — это матрица ячеек (пикселей), наложенная на местность. У каждой ячейки одно или несколько значений: высота над уровнем моря, яркость со спутника, температура. Спутниковый снимок, карта рельефа (DEM), прогноз осадков — всё это растры.

Ключевой параметр растра — разрешение, то есть размер одной ячейки на местности. Снимок Sentinel-2 имеет разрешение 10 метров — каждый пиксель покрывает квадрат 10 на 10 метров. Чем меньше ячейка, тем детальнее картина и тем тяжелее файл: уменьшение ячейки вдвое увеличивает число пикселей вчетверо.

Как работает под капотом

Векторный объект хранится как список координат плюс таблица атрибутов — компактно, если объектов немного. Растр хранится как двумерный массив чисел плюс «геопривязка»: координаты левого верхнего угла и размер ячейки. Зная эти параметры, по индексу ячейки (row, col) легко вычислить её координаты на Земле, и наоборот. Покажем сам массив растра на чистом Python:

# Маленький растр высот (DEM), значения в метрах
dem = [
    [100, 102, 105],
    [101, 104, 110],
    [103, 108, 120],
]
rows = len(dem)
cols = len(dem[0])
total = sum(sum(row) for row in dem)
mean = total / (rows * cols)
peak = max(max(row) for row in dem)
print(f"Размер растра: {rows} x {cols} ячеек")
print(f"Средняя высота: {mean:.1f} м")
print(f"Максимум: {peak} м")

Вывод:

Размер растра: 3 x 3 ячеек
Средняя высота: 105.9 м
Максимум: 120 м

Что выбрать

КритерийВекторРастр
Подходит длядискретные объекты с границаминепрерывные поля (высота, температура)
Точность при зумене теряетсяпоявляется «лесенка»
Площадь регионаточно по геометриичерез подсчёт ячеек
Примерыдороги, районы, кадастрснимки, рельеф, NDVI

Частые ошибки

  • Хранить рельеф вектором. Высота — непрерывное поле; описывать его полигонами мучительно. Это работа для растра.
  • Забыть про разрешение растра. Считать площадь по снимку 10 м с точностью до метра нельзя — у вас зернистость 10 метров.
  • Думать, что один формат всегда лучше. В реальном проекте вектор и растр работают вместе: дороги вектором, рельеф растром.

Выбор модели задаёт весь дальнейший путь

Деление на вектор и растр — не формальность, а развилка, определяющая, какими алгоритмами вы будете работать дальше. Выбрав вектор, вы попадаете в мир вычислительной геометрии: пересечения отрезков, точка в полигоне, площади по координатам, графы дорог. Выбрав растр, вы попадаете в мир обработки изображений и матриц: фильтры, свёртки, поэлементная арифметика каналов, статистика по ячейкам. Это два разных математических аппарата, два разных набора инструментов (shapely против rasterio), и понимание, какая модель естественна для вашей задачи, экономит месяцы блужданий по неподходящим методам.

Эмпирическое правило: дискретные объекты с чёткими границами — вектором, непрерывные поля — растром. Дороги, здания, административные деления, кадастр — это объекты, у них есть «начало и конец», их естественно описать линиями и полигонами с атрибутами. Высота рельефа, температура, осадки, спутниковая яркость, концентрация загрязнения — это поля, определённые в каждой точке пространства, и их естественно хранить сеткой значений. Попытка втиснуть поле в вектор (рельеф полигонами) или объект в растр (граница страны пикселями) приводит к громоздким и неточным решениям. В реальном проекте обе модели работают вместе: дороги вектором поверх рельефа растром — и умение их сочетать важнее, чем спор, какая «лучше».

Итог

  • Вектор = объекты (точка, линия, полигон) с точными координатами.
  • Растр = сетка ячеек со значениями; главный параметр — разрешение.
  • Дискретные объекты — вектором, непрерывные поля — растром.
  • В проекте обе модели обычно используются вместе.
Проверьте себя
1. Каким типом данных естественнее всего описать рельеф местности?
AВектором из полигонов
BРастром (сеткой высот)
CОдной точкой
DЛинией
2. Что произойдёт с растром при сильном увеличении?
AОн останется идеально гладким
BПоявится зернистость («лесенка») из-за конечного размера ячеек
CОн автоматически станет вектором
DОн исчезнет
3. Из чего состоит векторный полигон?
AИз одной точки
BИз сетки пикселей
CИз замкнутой ломаной, где первая и последняя точки совпадают
DИз числа