Векторные и растровые данные
Урок про два главных способа представить реальность в ГИС — и почему выбор между ними определяет всё остальное.
Вектор описывает мир объектами с точными координатами (точка, линия, полигон). Растр описывает мир равномерной сеткой ячеек, у каждой из которых есть значение.
Представьте, что нужно записать в компьютер озеро. Можно обвести его берег ломаной линией и сказать «вот граница» — это вектор. А можно накрыть местность сеткой квадратов и в каждом квадрате пометить «вода» или «не вода» — это растр. Оба способа описывают одно озеро, но устроены диаметрально противоположно, и это самое важное деление во всей геоинформатике.
Векторные данные: три кита
В векторной модели всё строится из трёх примитивов:
- Точка (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), и понимание, какая модель естественна для вашей задачи, экономит месяцы блужданий по неподходящим методам.
Эмпирическое правило: дискретные объекты с чёткими границами — вектором, непрерывные поля — растром. Дороги, здания, административные деления, кадастр — это объекты, у них есть «начало и конец», их естественно описать линиями и полигонами с атрибутами. Высота рельефа, температура, осадки, спутниковая яркость, концентрация загрязнения — это поля, определённые в каждой точке пространства, и их естественно хранить сеткой значений. Попытка втиснуть поле в вектор (рельеф полигонами) или объект в растр (граница страны пикселями) приводит к громоздким и неточным решениям. В реальном проекте обе модели работают вместе: дороги вектором поверх рельефа растром — и умение их сочетать важнее, чем спор, какая «лучше».
Итог
- Вектор = объекты (точка, линия, полигон) с точными координатами.
- Растр = сетка ячеек со значениями; главный параметр — разрешение.
- Дискретные объекты — вектором, непрерывные поля — растром.
- В проекте обе модели обычно используются вместе.