Pobieranie danych obrazu z Earth Engine
Aby przesłać dane obrazu z Earth Engine do Google Drive, Cloud Storage lub zasobu Earth Engine, możesz użyć Export
. Zlecenie zostanie całkowicie wykonane przez Earth Engine. Jeśli zadania eksportowania mają problemy ze skalowaniem (np. trwają dłużej niż 1 dzień, zwracają błędy dotyczące pamięci lub limitu czasu) lub znasz już frameworki takie jak Apache Beam, Spark czy Dask, możesz preferować opisane tutaj metody wyodrębniania danych. Workflowy zaimplementowane w tych frameworkach można skalować za pomocą narzędzi Google Cloud, takich jak Dataflow czy Dataproc.
W tym przewodniku opisano metody ręcznego wysyłania żądań dotyczących danych obrazu za pomocą funkcji getPixels
lub computePixels
.
„Dane obrazu” to w tym przypadku wielowymiarowe tablice wartości pikseli o jednolitej skali i projekcji. Region, skala, projekcja lub wymiary są określone w żądaniu. Na stronie ImageFileFormat wymieniono możliwe formaty wyjściowe. Miejsca docelowe wyjścia obejmują Cloud Storage lub dowolny katalog zamontowany lokalnie. Żądania ręczne zwiększają złożoność, ale można je skalować do większych zbiorów zadań.
Pobieranie danych obrazu z istniejących komponentów
Użyj getPixels
, aby uzyskać dane obrazów z dotychczasowych zasobów Earth Engine. Identyfikator zasobu jest przekazywany bezpośrednio do żądania, więc nie można przeprowadzić żadnych obliczeń dotyczących pikseli przed ich wyodrębnieniem. Zwracany jest blok pikseli w określonym regionie, skali, projekcji i formacie. Ten przykład pokazuje, jak za pomocą funkcji getPixels
uzyskać czasową sekwencję NDVI z zbioru obrazów MODIS.
Pobieranie danych obrazu z obliczonych obrazów
Użyj polecenia computePixels
, aby uzyskać dane obrazu z obrazu obliczonego, np. złożonego. W przypadku funkcji computePixels
obliczonemu obiektowi ee.Image
nadajesz wartość za pomocą parametru expression
. Zwracany jest blok obliczonych pikseli w określonym regionie, skali, projekcji i formacie. Ten przykład pokazuje pobieranie fragmentów danych wielospektralnych z kompozycji Sentinel-2 bez chmur.
Ręczne równoległe przetwarzanie żądań
Możesz wysyłać żądania o dowolnym celu i w dowolnej ilości, ale w przypadku większych przepływów pracy warto je równolegle przesyłać. Aby wysyłać wiele takich żądań równolegle, użyj punktu końcowego Earth Engine do dużych ilości danych. Liczba równoczesnych żądań jest określana przez limit żądań interaktywnych. Szczegółowe informacje o tym, kiedy należy używać punktu końcowego do przetwarzania dużej ilości danych, znajdziesz na stronie dotyczącej przetwarzania dużej ilości danych w Earth Engine.
Wielowątkowość
Możesz używać wątków, aby wysyłać równoległe żądania. Takie podejście jest demonstrowane w przykladowych notatnikach getPixels
i computePixels
.
Apache Beam
Do równoległego przetwarzania żądań możesz używać strumieni Apache Beam. Te potoki można uruchamiać lokalnie lub jako zadania Google Dataflow. Przykłady znajdziesz w tym szkoleniu Geo for Good lub w tej prezentacji dotyczącej AI i ludzi. Inne biblioteki do równoległego przetwarzania to Dask i Apache Spark.