Вы открываете QGIS, перетаскиваете shape-файл — и он работает. Под капотом GDAL. Конвертируете растр в другую проекцию — снова он. Извлекаете высоты из SRTM — он. Даже когда ArcGIS читает ваш старый TIF с нестандартной геопривязкой — за кулисами всё тот же GDAL. Любое открытие растра, любое репроецирование слоя — GDAL внутри. QGIS — это графическая обёртка вокруг GDAL + GRASS + PROJ
GDAL (Geospatial Data Abstraction Library) — это библиотека-переводчик между форматами геоданных. Создан в 1998 году Фрэнком Вармердамом, когда каждый производитель ГИС хранил координаты по-своему, и обмен данными был мучением. Сегодня GDAL поддерживает более 200 растровых и векторных форматов — от привычных GeoTIFF и Shapefile до экзотических ECW, MrSID, NetCDF и даже специфических форматов спутников (Sentinel, Landsat, MODIS)
Когда QGIS — это слишком медленно
Для пакетной обработки графический интерфейс — тупик. Если перед вами стоит задача: 500 файлов в разных проекциях, форматах, с разным сжатием. Нужно привести к единому стандарту: одна проекция, один формат, одна структура папок. Открывать каждый вручную? Жизнь коротка. Python + GDAL — и вы свободны.
from osgeo import gdal
from pathlib import Pathdef batch_convert(input_folder, output_folder, target_epsg=4326):
"""Конвертирует все TIFF в заданную проекцию."""
for tif_file in Path(input_folder).glob('*.tif'):
output_file = Path(output_folder) / tif_file.name
# Пропускаем, если уже есть
if output_file.exists():
continue
# Репроецируем с сжатием
warp_options = gdal.WarpOptions(
format='GTiff',
dstSRS=f'EPSG:{target_epsg}',
resampleAlg=gdal.GRA_Bilinear,
creationOptions=['COMPRESS=DEFLATE', 'TILED=YES']
)
ds = gdal.Warp(str(output_file), str(tif_file), options=warp_options)
if ds:
ds = None
print(f"✓ {tif_file.name}")
500 файлов обработаются за ночь без вашего участия с воспроизводимым результатом.
Иногда даже Python — избыточно. GDAL поставляется с набором утилит командной строки, которые работают мгновенно. Никаких IDE, никаких импортов — просто терминал:
# Перевести в Web Mercator с сжатием
gdalwarp -t_srs EPSG:3857 -co COMPRESS=LZW input.tif output.tif
# Обрезать по bounding box (xmin ymin xmax ymax)
gdalwarp -te 37.6 55.7 37.7 55.8 -te_srs EPSG:4326 large.tif small.tif
# Создать пирамидные чанки для быстрого отображения
gdalwarp -co TILED=YES -co BLOCKXSIZE=512 -co BLOCKYSIZE=512 input.tif optimized.tif
Командная строка обрабатывает файлы в 10-50 раз быстрее, чем GUI-инструменты.
Начните уже сегодня:
- Установите GDAL: conda install -c conda-forge gdal
- Откройте терминал и выполните gdalinfo --formats — увидите 200+ поддерживаемых форматов
- Возьмите один свой растр и репроецируйте его командой gdalwarp
- Заверните это в Python-скрипт — и вы уже автоматизированы
GDAL существует уже 27 лет. Он пережил десятки коммерческих ГИС, форматы данных и технологические хайпы. Пока существуют геопространственные данные — будет существовать и GDAL.
Документация: https://gdal.org/en/stable/programs/index.html