Pliki Cloud Optimized GeoTIFF (COG) w Earth Engine

Google Earth Engine umożliwia pracę z danymi rastrowymi przechowywanymi w Twoich zasobnikach Google Cloud Storage (GCS). Dzięki korzystaniu z plików Cloud Optimized GeoTIFF (COG) możesz uzyskiwać dostęp do danych i analizować je bezpośrednio w Earth Engine bez konieczności importowania pikseli do magazynu zasobów Earth Engine.

Takie podejście korzystające głównie z chmury ma wiele zalet, zwłaszcza w przypadku zarządzania dużymi zbiorami danych lub integrowania Earth Engine z szerszymi przepływami pracy Google Cloud albo narzędziami i platformami zewnętrznymi.

Dlaczego warto używać Cloud Storage i plików COG?

  • Elastyczność i interoperacyjność: przechowuj dane w standardowych zasobnikach Cloud Storage, do których mogą mieć dostęp inne narzędzia i usługi. Niezależnie od tego, czy przesyłasz dane bezpośrednio, czy eksportujesz je z Earth Engine, Cloud Storage jest jedynym źródłem wiarygodnych danych zarówno dla Earth Engine, jak i zewnętrznych przepływów pracy.
  • Zarządzanie danymi i ruch wychodzący: przechowywanie danych w Cloud Storage zapewnia standardowe możliwości zarządzania magazynem obiektów. Dzięki temu możesz pobierać, migrować, i udostępniać dane za pomocą funkcji Cloud Storage, takich jak płatność przez zamawiającego czy zasobniki publiczne, oraz zarządzać dostępem za pomocą standardowej usługi Cloud IAM.
  • Elastyczna skalowalność: unikaj limitów miejsca na dane w Earth Engine storage limits. Cloud Storage zapewnia praktycznie nieograniczoną, samodzielną skalowalność miejsca na dane do poziomu petabajtów.
  • Brak oczekiwania na import: rejestracja pliku COG przebiega szybko, ponieważ Earth Engine odczytuje tylko metadane (takie jak projekcja i wymiary) z nagłówka pliku na potrzeby indeksowania i weryfikacji. Rzeczywiste dane pikseli pozostają w Cloud Storage i są odczytywane na żądanie podczas obliczeń, co eliminuje potrzebę wykonywania osobnego zadania importowania.

Przepływy pracy z plikami COG w Earth Engine

Earth Engine obsługuje dwukierunkowe przepływy pracy z plikami COG w Cloud Storage: możesz odczytywać pliki COG bezpośrednio z GCS do Earth Engine oraz zapisywać wyniki obliczeń z Earth Engine bezpośrednio w GCS jako pliki COG.

Odczytywanie plików COG z Cloud Storage

Aby przenieść pliki COG hostowane w GCS do Earth Engine, masz 2 opcje:

  1. Bezpośrednie wczytywanie (ee.Image.loadGeoTIFF): wczytaj pojedynczy obraz bezpośrednio za pomocą jego identyfikatora URI w GCS. Najlepiej sprawdza się w przypadku szybkich testów, analiz ad hoc lub danych tymczasowych:

    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')
    

    Pełne przykłady znajdziesz w artykule Obrazy z plików Cloud GeoTIFF.

  2. Zarejestrowane zasoby: zarejestruj co najmniej 1 plik COG jako zasób Earth Engine za pomocą manifestu przesyłania (zapoznaj się z przewodnikiem rejestracji plików COG). Jest to zalecana ścieżka w przypadku przepływów pracy w środowisku produkcyjnym, zwłaszcza podczas tworzenia kolekcji obrazów.

Funkcja Bezpośrednie wczytywanie (loadGeoTIFF) Zarejestrowany zasób (manifest)
Konfiguracja Brak (tylko identyfikator URI w GCS) Manifest (klient Python, interfejs wiersza poleceń lub REST)
Wydajność Standardowa (odczytuje nagłówek podczas odczytu) Zoptymalizowana (indeksowana podczas tworzenia)
Zarządzanie Nie utworzono zasobu Wlicza się do limitu liczby zasobów, a nie miejsca na dane.
Przypadek użycia Prototypowanie, analiza ad hoc Przepływy pracy w środowisku produkcyjnym wymagające szybkiego odczytu.

Zapisywanie plików COG w Cloud Storage

Aby zapisać wyniki obliczeń Earth Engine jako pliki COG w zasobniku Cloud Storage, użyj Export.image.toCloudStorage funkcji eksportu zbiorczego (zapoznaj się z artykułem Eksportowanie obrazów) i ustaw parametr cloudOptimized na true w formatOptions. Dzięki temu Earth Engine skompiluje obraz i zapisze go bezpośrednio w Twoim zasobniku GCS jako w pełni zgodny plik COG.

Obsługiwane lokalizacje zasobników Cloud Storage

Aby Earth Engine mógł uzyskać dostęp do Twojego zasobnika Cloud Storage, musi on znajdować się w jednym z tych regionów lub regionów obejmujących wiele centrów danych:

  • Region obejmujący wiele lokalizacji us
  • Dowolny region podwójny w USA, który obejmuje us-central1
  • Region us-central1

Jeśli Twój zasobnik znajduje się w innym regionalnym centrum danych, Earth Engine odrzuci rejestrację i żądania odczytu. Earth Engine uzyskuje dostęp do plików COG przechowywanych wyłącznie w zasobnikach Google Cloud Storage. Zewnętrzni dostawcy usług przechowywania w chmurze i ogólne adresy URL HTTP nie są obsługiwane.

Specyfikacje eksportu plików COG w Earth Engine

Podczas eksportowania wyników analizy z Earth Engine za pomocą Export.image.toCloudStorage z cloudOptimized: true w formatOptions wbudowany eksporter Earth Engine automatycznie stosuje te standardy:

  • Struktura pliku: generuje plik BigTIFF (BIGTIFF=YES) z wewnętrznym podziałem na kafelki (TILED=YES) i kopiuje wszystkie podglądy na początek pliku.
  • Automatyczne przeglądy: jeśli wymiary rastra wyjściowego wynoszą co najmniej 512 x 512 pikseli, Earth Engine automatycznie tworzy 5 poziomów przeglądów w potęgach dwójki ([2, 4, 8, 16, 32]). Earth Engine dynamicznie wybiera metodę ponownego próbkowania przeglądu na podstawie typu danych pikseli wyjściowych: ponowne próbkowanie cubic w przypadku obrazów z reprezentacją zmiennoprzecinkową i ponowne próbkowanie nearest-neighbor w przypadku wszystkich innych obrazów całkowitych lub dyskretnych.
  • Domyślna kompresja i podział na kafelki: Earth Engine eksportuje pliki COG z podziałem na kafelki o wymiarach 256 x 256 pikseli i kompresją LZW (COMPRESS=LZW). Kompresji i wymiarów kafelków nie można dostosować w formatOptions.
  • Automatyczne dzielenie: jeśli eksportowany raster jest duży (przekracza 4 GiB po rozpakowaniu), Earth Engine automatycznie dzieli eksport na kilka kafelków przestrzennych o nazwach baseFilename-yMin-xMin (zapoznaj się z artykułem Eksportowanie dużych plików).
  • Zastępowanie limitów fragmentacji: aby wyeksportować duże rastry (do maksymalnego limitu 16 GiB po rozpakowaniu i 131 072 pikseli na krawędź) jako pojedynczy plik bez fragmentacji, określ fileDimensions w formatOptions. Każdy wymiar musi być dodatnią liczbą całkowitą będącą wielokrotnością rozmiaru kafelka (domyślnie 256, np. [65536, 65536]). Ponieważ fileDimensions ustawia maksymalny wymiar pliku, a nie ramkę ograniczającą wyjściową, przekazanie dużego limitu wymusza eksport do pojedynczego pliku bez konieczności dokładnych obliczeń siatki. Możesz też przekazać skipEmptyFiles: true, aby zapobiec generowaniu pustych kafelków tła.
  • Kompromisy dotyczące optymalizacji: podczas konfigurowania dużych eksportów oceń kompromis między liczbą plików a szybkością eksportu. Określenie mniejszych wartości fileDimensions lub shardSize spowoduje utworzenie większej liczby fragmentów plików, ale zmaksymalizuje przetwarzanie równoległe w instancjach roboczych backendu, co skróci czas eksportu. Z kolei zastąpienie limitów w celu wygenerowania pojedynczego dużego pliku upraszcza zarządzanie plikami i udostępnianie danych, ale może wydłużyć czas eksportu ze względu na montaż pojedynczego pliku i wąskie gardła wejścia/wyjścia. Bardzo duże eksporty plików COG zbliżające się do limitu 16 GiB po rozpakowaniu (zwłaszcza obrazy, które nie poddają się dobrze kompresji) mogą również przekroczyć tymczasową pojemność miejsca na dane podczas montażu podglądu i pliku COG. Jeśli eksport się nie powiedzie, rozważ podzielenie go na mniejsze pliki lub konwertowanie standardowego eksportu GeoTIFF zewnętrznie.

Dostosowywanie tworzenia plików COG poza Earth Engine

Chociaż eksportowanie bezpośrednio za pomocą cloudOptimized: true jest najprostszym sposobem generowania gotowych do użycia plików COG w większości przepływów pracy, możesz też wyeksportować standardowy plik GeoTIFF (cloudOptimized: false, domyślnie) i samodzielnie przekonwertować go na plik COG za pomocą narzędzi zewnętrznych, takich jak GDAL. Dwuetapowy przepływ pracy obejmujący eksport i konwersję może być przydatny, gdy musisz:

  • Dostosować kompresję i układ: dostosuj rozmiary bloków (np. 512x512), predyktory, metody ponownego próbkowania podglądu lub kodeki kompresji (np. ZSTD) do swojego zbioru danych (zapoznaj się z artykułem Przygotowywanie plików COG).
  • Unikać błędów związanych z pojemnością podczas eksportowania dużych pojedynczych plików: pominięcie generowania podglądu i przepisywania układu pliku COG podczas eksportu zmniejsza obciążenie pamięci i tymczasowego miejsca na dane, dzięki czemu eksportowanie bardzo dużych pojedynczych plików jest mniej podatne na przekroczenie limitów pojemności.
  • Skrócić czas eksportu w Earth Engine: przeniesienie tworzenia podglądu i formatowania pliku COG do własnego środowiska obliczeniowego skraca fazę eksportu w Earth Engine.

Kwestie związane z kosztami i klasy miejsca na dane

Podczas analizowania zarejestrowanych zasobów COG odczyty z Earth Engine nie powodują naliczania opłat za operacje odczytu w Cloud Storage ani za pobieranie danych w projekcie Google Cloud.

Cloud Storage obciąża Cię głównie standardowymi miesięcznymi opłatami za przechowywanie danych w stanie spoczynku (GB/miesiąc) oraz opłatami za przesyłanie danych przez klientów zewnętrznych lub ruch wychodzący w sieci (w zależności od lokalizacji zasobnika i konfiguracji sieci klienta).

Zalecenia dotyczące klasy miejsca na dane

  • Miejsce na dane w klasie Standard (zalecane): miejsce na dane w klasie Standard najlepiej nadaje się do aktywnych przepływów pracy w Earth Engine. Ponieważ nie ma reguł dotyczących minimalnego czasu przechowywania, możesz swobodnie zastępować, aktualizować lub usuwać tymczasowe pliki COG bez ponoszenia kar za przedwczesne usunięcie. Ponadto, jeśli Ty lub Twoi współpracownicy uzyskujecie dostęp do zasobnika za pomocą oprogramowania GIS na komputerze, skryptów GDAL lub notatników do uczenia maszynowego poza Earth Engine, miejsce na dane w klasie Standard nie powoduje naliczania dodatkowych opłat za pobieranie.
  • Miejsce na dane w klasach Nearline, Coldline i Archive: wszystkie klasy miejsca na dane w Cloud Storage zapewniają taki sam dostęp z niskim opóźnieniem i przepustowość jak miejsce na dane w klasie Standard, więc korzystanie z chłodniejszych warstw miejsca na dane w Earth Engine nie powoduje obniżenia wydajności odczytu. Chociaż obliczenia Earth Engine mogą też odczytywać te warstwy bez naliczania opłat za pobieranie danych, reguły Cloud Storage dotyczące sprzedaży detalicznej wymagają ścisłego przestrzegania minimalnego czasu przechowywania (30 dni w przypadku klasy Nearline, 90 dni w przypadku klasy Coldline i 365 dni w przypadku klasy Archive). Modyfikowanie lub usuwanie plików przed upływem minimalnego czasu przechowywania powoduje naliczanie dodatkowych opłat za przedwczesne usunięcie. Ponadto dostęp do zimnych obiektów z dowolnego narzędzia klienta zewnętrznego powoduje naliczanie kosztownych dodatkowych opłat za pobieranie danych.

Szczegółowe informacje o cenach detalicznych i zasadach dotyczących minimalnego czasu przechowywania znajdziesz w przewodniku po cenach Google Cloud Storage.

Ogólny przepływ pracy

Typowe przepływy pracy związane z używaniem plików COG w Earth Engine obejmują te czynności:

Importowanie danych zewnętrznych:

  • Optymalizacja: przekonwertuj pliki rastrowe na format COG za pomocą narzędzi zewnętrznych (takich jak GDAL, skrypty na lokalnej stacji roboczej lub potoki przetwarzania w chmurze).
  • Przesyłanie: prześlij pliki COG do obsługiwanego zasobnika Cloud Storage znajdującego się w regionie us-central1 lub w regionie obejmującym wiele lokalizacji w USA.
  • Uprawnienia: upewnij się, że Ty i wszyscy współpracownicy projektu macie dostęp do odczytu plików w Cloud Storage (zapoznaj się z artykułem Uprawnienia do plików COG).
  • Rejestracja: zarejestruj pliki COG jako zasoby Earth Engine za pomocą biblioteki klienta Python, earthengine narzędzia wiersza poleceń lub interfejsu REST API (zapoznaj się z artykułem Rejestracja plików COG).

Eksportowanie wyników:

  • Eksport: uruchom eksport zbiorczy z Earth Engine do Cloud Storage z parametrem cloudOptimized ustawionym na true (zapoznaj się z artykułem Eksportowanie obrazów).
  • Rejestracja (opcjonalnie): zarejestruj wyeksportowany plik COG z powrotem w Earth Engine jako nowy zasób do dalszej analizy (zapoznaj się z artykułem Rejestracja plików COG).

Zaczynamy? Aby zarejestrować swój pierwszy zasób, postępuj zgodnie ze szczegółowym przewodnikiem rejestracji plików COG.