Bilddatenextraktion

Bilddaten aus der Earth Engine abrufen

Wenn Sie Bilddaten aus Earth Engine in Google Drive, Cloud Storage oder ein Earth Engine-Asset übertragen möchten, können Sie Export verwenden. Der Job wird dann vollständig von Earth Engine verarbeitet. Wenn bei Ihren Exportjobs Skalierungsprobleme auftreten (z.B. wenn sie länger als einen Tag dauern oder Speicher- oder Zeitüberschreitungsfehler zurückgeben) oder Sie bereits mit einem Framework wie Apache Beam, Spark oder Dask vertraut sind, sind die hier beschriebenen Datenextraktionsmethoden möglicherweise besser geeignet. In diesen Frameworks implementierte Workflows können mit Google Cloud-Tools wie Dataflow oder Dataproc skaliert werden.

In diesem Leitfaden werden Methoden zum manuellen Senden von Anfragen für Bilddaten mit getPixels oder computePixels beschrieben. „Bilddaten“ sind hier mehrdimensionale Arrays von Pixelwerten mit einheitlichem Maßstab und einheitlicher Projektion. Die Region, der Maßstab, die Projektion und/oder die Dimensionen werden in der Anfrage angegeben. Auf der Seite „ImageFileFormat“ sind mögliche Ausgabeformate aufgeführt. Zu den Ausgabezielen gehören Cloud Storage oder ein beliebiges lokal bereitgestelltes Verzeichnis. Manuelle Anfragen erhöhen die Komplexität, können aber auf größere Arbeitslasten skaliert werden.

Bilddaten aus vorhandenen Assets abrufen

Verwenden Sie getPixels, um Bilddaten aus vorhandenen Earth Engine-Assets abzurufen. Sie übergeben die Asset-ID direkt an die Anfrage, sodass Sie vor dem Extrahieren der Pixel keine Berechnungen an ihnen durchführen können. Es wird ein Pixelblock in der angegebenen Region, Skalierung, Projektion und im angegebenen Format zurückgegeben. Im folgenden Beispiel wird gezeigt, wie Sie mit getPixels eine Zeitreihe von NDVI-Werten aus einer MODIS-Bildersammlung abrufen.

Bilddaten aus berechneten Bildern abrufen

Verwenden Sie computePixels, um Bilddaten aus einem berechneten Bild abzurufen, z. B. einem zusammengesetzten Bild. Bei computePixels übergeben Sie ein berechnetes ee.Image-Objekt über den Parameter expression. Es wird ein Block berechneter Pixel in der angegebenen Region, im angegebenen Maßstab, in der angegebenen Projektion und im angegebenen Format zurückgegeben. Im folgenden Beispiel werden Patches mit multispektralen Daten aus einem wolkenfreien Sentinel-2-Komposit abgerufen.

Manuelle Parallelisierung von Anfragen

Sie können Anfragen für jeden Zweck und in jedem Umfang stellen, aber für größere Workflows sollten Sie Anfragen parallelisieren. Wenn Sie viele solcher Anfragen parallel stellen möchten, sollten Sie den Earth Engine-Endpunkt für große Datenmengen verwenden. Die Anzahl der parallelen Anfragen, die Sie stellen können, wird durch Ihr Kontingent für gleichzeitige interaktive Anfragen festgelegt. Weitere Informationen dazu, wann der Endpunkt für große Datenmengen verwendet werden sollte, finden Sie auf der Earth Engine-Seite für große Datenmengen.

Multithreading

Sie können Threads verwenden, um gleichzeitige Anfragen zu stellen. Dieser Ansatz wird in den Beispiel-Notebooks getPixels und computePixels veranschaulicht.

Apache Beam

Sie können Apache Beam-Pipelines verwenden, um Anfragen zu parallelisieren. Diese Pipelines können lokal oder als Google Dataflow-Jobs ausgeführt werden. Beispiele finden Sie in dieser Geo for Good-Schulung oder in dieser Demonstration zu People, Planet and AI. Alternativ können Sie andere Parallelisierungsbibliotheken wie Dask und Apache Spark verwenden.