Оптимизированные для облака файлы GeoTIFF (COG) в Earth Engine

Google Earth Engine позволяет работать с растровыми данными, хранящимися в ваших собственных сегментах Google Cloud Storage (GCS). Используя геофайлы GeoTIFF, оптимизированные для облака (COG), вы можете получать доступ к своим данным и анализировать их непосредственно в Earth Engine, не загружая пиксели в хранилище ресурсов Earth Engine.

Такой подход, ориентированный на облако, имеет ряд преимуществ, особенно при работе с большими наборами данных или интеграции Earth Engine с более широкими рабочими процессами Google Cloud или внешними инструментами и платформами.

Зачем использовать Cloud Storage и COGS?

  • Гибкость и совместимость. Храните данные в стандартных сегментах Cloud Storage, где к ним могут получать доступ другие инструменты и сервисы. Независимо от того, загружаете ли вы данные напрямую или экспортируете их из Earth Engine, Cloud Storage служит единым источником достоверной информации как для Earth Engine, так и для внешних рабочих процессов.
  • Управление данными и исходящим трафиком. Хранение данных в Cloud Storage обеспечивает стандартные возможности управления хранилищем объектов. Это позволяет скачивать, переносить и передавать данные с помощью таких функций Cloud Storage, как Requester Pays или общедоступные сегменты, а также управлять доступом с помощью стандартного инструмента Cloud IAM.
  • Гибкое масштабирование. Избегайте ограничений на хранение данных в Earth Engine. Cloud Storage предоставляет практически неограниченное хранилище с возможностью самостоятельного масштабирования до петабайтов.
  • Быстрая регистрация. Регистрация COG-файла происходит быстро, потому что Earth Engine считывает только метаданные (например, проекцию и размеры) из заголовка файла для индексации и проверки. Фактические данные пикселей остаются в Cloud Storage и считываются по запросу во время вычислений, что устраняет необходимость в отдельной задаче приема.

Рабочие процессы COG в Earth Engine

Earth Engine поддерживает двунаправленные рабочие процессы с COG в Cloud Storage: вы можете считывать COG непосредственно из GCS в Earth Engine и записывать результаты вычислений из Earth Engine непосредственно в GCS в виде COG.

Чтение COG из Cloud Storage

Чтобы добавить COG-файлы, размещенные в GCS, в Earth Engine, можно воспользоваться одним из двух вариантов:

  1. Прямая загрузка (ee.Image.loadGeoTIFF). Загрузка одного изображения напрямую с помощью его URI в GCS. Это лучше всего подходит для быстрых тестов, специального анализа или временных данных:

    JavaScript

    var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');
    

    Python

    image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')
    

    Полные примеры можно найти в разделе Изображения из файлов GeoTIFF в Cloud Storage.

  2. Зарегистрированные объекты. Зарегистрируйте один или несколько COG-файлов как объект Earth Engine с помощью манифеста загрузки (см. руководство по регистрации COG-файлов). Это рекомендуемый способ для рабочих процессов, особенно при создании коллекций изображений.

Функция Прямая загрузка (loadGeoTIFF) Зарегистрированный объект (манифест)
Настройка Нет (только URI GCS) Манифест (клиент Python, CLI или REST)
Эффективность Стандартный (заголовок читается при чтении). Оптимизированный (индексируется при создании)
Управляющие Объект не создан Учитывается в квоте на количество объектов, а не в квоте на хранение.
Вариант использования Создание прототипов, специальный анализ Рабочие процессы, требующие быстрого чтения.

Запись COG в Cloud Storage

Чтобы сохранить результаты вычислений Earth Engine в виде COG в корзине Cloud Storage, используйте функцию пакетного экспорта Export.image.toCloudStorage (см. раздел экспорта изображений) и задайте для параметра cloudOptimized значение true в formatOptions. Это означает, что Earth Engine скомпилирует изображение и запишет его непосредственно в сегмент GCS в виде полностью совместимого файла COG.

Поддерживаемые местоположения сегментов Cloud Storage

Чтобы Earth Engine мог получить доступ к вашему сегменту Cloud Storage, он должен находиться в одном из следующих регионов или макрорегионов центров обработки данных:

  • Макрорегион us
  • Любой двойной регион в США, включающий us-central1
  • Регион us-central1

Если сегмент находится в другом региональном центре обработки данных, Earth Engine отклонит запросы на регистрацию и чтение. Earth Engine обращается к COG, хранящимся исключительно в сегментах Google Cloud Storage. Внешние поставщики услуг облачного хранения данных и общие URL HTTP не поддерживаются.

Сведения о расходах и классах хранения

При анализе зарегистрированных объектов COG чтение из Earth Engine не приводит к расходам на операции чтения Cloud Storage или извлечение данных в вашем проекте Google Cloud.

Cloud Storage взимает плату в основном за стандартное ежемесячное хранение данных (ГБ/месяц) и за передачу данных внешних клиентов или исходящий трафик (в зависимости от местоположения сегмента и конфигурации сети клиента).

Рекомендации по классам хранилища

  • Стандартное хранилище (рекомендуется). Лучше всего подходит для активных рабочих процессов Earth Engine. Поскольку для него не действуют правила минимальной длительности хранения, вы можете перезаписывать, обновлять и удалять временные COG-файлы, не опасаясь штрафов за раннее удаление. Кроме того, если вы или ваши соавторы получаете доступ к сегменту с помощью настольного программного обеспечения ГИС, скриптов GDAL или блокнотов машинного обучения за пределами Earth Engine, за стандартное хранилище не взимается дополнительная плата за розничное извлечение.
  • Хранилища Nearline, Coldline и Archive. Все классы Cloud Storage обеспечивают такую же низкую задержку доступа и пропускную способность, как и стандартное хранилище, поэтому при использовании более холодных уровней хранения в Earth Engine производительность чтения не снижается. Хотя вычисления Earth Engine также могут считывать эти уровни без оценки розничных сборов за извлечение данных, розничные правила Cloud Storage обеспечивают строгое минимальное время хранения (30 дней для Nearline, 90 дней для Coldline, 365 дней для Archive). Если изменить или удалить файлы до истечения минимального срока хранения, взимается дополнительная плата за досрочное удаление. Кроме того, при доступе к холодным объектам из любого внешнего клиентского инструмента взимается дополнительная плата за извлечение данных.

Подробную информацию о розничных ценах и минимальной продолжительности хранения можно найти в руководстве по ценам на Google Cloud Storage.

Общий рабочий процесс

Типичные рабочие процессы использования COG в Earth Engine включают следующие шаги:

Для импорта внешних данных:

  • Оптимизация. Преобразуйте растровые файлы в формат COG с помощью внешних инструментов, например GDAL, локальных скриптов или облачных конвейеров обработки.
  • Загрузка. Загрузите данные о себестоимости реализованных товаров в поддерживаемый сегмент Cloud Storage, расположенный в регионе us-central1 или в макрорегионе США.
  • Разрешения. Убедитесь, что у вас и у всех соавторов проекта есть доступ на чтение файлов в Cloud Storage (см. Разрешения COG).
  • Зарегистрируйте COG. Используйте клиентскую библиотеку Python, инструмент командной строки earthengine или REST API, чтобы зарегистрировать COG как объекты Earth Engine (см. раздел Регистрация COG).

Для экспорта результатов:

  • Экспорт. Выполните пакетный экспорт из Earth Engine в Cloud Storage, задав для параметра cloudOptimized значение true (см. экспорт изображений).
  • Регистрация (необязательно). Зарегистрируйте экспортированный COG-файл в Earth Engine как новый объект для дальнейшего анализа (см. раздел Регистрация COG-файлов).

Готовы начать? Чтобы зарегистрировать первый объект, следуйте подробному руководству по регистрации контента, принадлежащего вам.