Sobes.tech
Назад к вопросам
Senior
11

Что такое COG (Cloud-Optimized GeoTIFF)?

Компании, где спрашивали
VKVK
ОстровокОстровок

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

COG — это GeoTIFF, специально упакованный для эффективной работы через HTTP/S3 и других удалённых хранилищ. Его ключевая идея — можно читать только нужные части файла, не скачивая весь объект целиком. Это особенно важно для больших спутниковых снимков, ортофотопланов и растровых слоёв в ML/гео-пайплайнах.

Определение:

Cloud-Optimized GeoTIFF — это формат GeoTIFF, структурированный так, чтобы поддерживать быстрый частичный доступ к данным в облаке. Файл обычно содержит внутренние тайлы, пирамиды/оверviews и метаданные, размещённые так, чтобы клиент мог запросить только нужный диапазон байт. На практике это позволяет читать отдельный участок растра по сети без полного скачивания файла.

Пример использования:

Например, для обучения модели сегментации по спутниковым снимкам COG удобно хранить в S3: сервер или клиент запрашивает только тайл с нужной территорией, а не весь снимок.

import rasterio

url = "https://example-bucket.s3.amazonaws.com/image.cog.tif"

with rasterio.open(url) as src:
    window = rasterio.windows.Window(col_off=1000, row_off=2000, width=512, height=512)
    tile = src.read(1, window=window)
    print(tile.shape)

Пояснение кода:

  • rasterio.open(url) открывает удалённый GeoTIFF по URL.
  • Window(...) задаёт прямоугольный фрагмент изображения по координатам в пикселях.
  • src.read(1, window=window) читает только выбранный участок первого канала.
  • В случае COG это работает эффективно, потому что файл подготовлен для диапазонного чтения и тайловой структуры.

Ключевые моменты:

  • COG — это не отдельный формат, а способ организации GeoTIFF.
  • Основное преимущество — быстрый доступ к части данных без полной загрузки файла.
  • Особенно полезен для облачного хранения и обработки больших растров.
  • Хорошо подходит для геоаналитики, визуализации и ML-задач с большими спутниковыми данными.
  • Обычно COG использует тайлы и внутренние overview, чтобы ускорить чтение на разных масштабах.