Bilder exportieren

Sie können Bilder aus Earth Engine im GeoTIFF- oder TFRecord-Format exportieren. Weitere Ausgabeoptionen finden Sie unter Konfigurationsparameter.

Beispielkonfiguration

Definieren Sie zuerst die Bilddaten, die exportiert werden sollen:

// Load a landsat image and select three bands.
var landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515')
  .select(['B4', 'B3', 'B2']);

// Create a geometry representing an export region.
var geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Load a landsat image and select three bands.
landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515').select(
    ['B4', 'B3', 'B2']
)

# Create a geometry representing an export region.
geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])

Definieren Sie als Nächstes die Projektionsparameter, die in den folgenden Exporten verwendet werden sollen. Mit dem Parameter crs wird das Koordinatensystem und mit dem Parameter crsTransform das Pixelraster genau angegeben. Der Parameter crsTransform ist eine Liste von Parametern aus einer affinen Transformationsmatrix in Zeilenvorrangfolge[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]. Der Ursprung eines Bildes wird durch die Werte xTranslation und yTranslation definiert und die Pixelgröße des Bildes durch die Werte xScale und yScale. Beispiele für affine Matrizen

// Retrieve the projection information from a band of the original image.
// Call getInfo() on the projection to request a client-side object containing
// the crs and transform information needed for the client-side Export function.
var projection = landsat.select('B2').projection().getInfo();

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Retrieve the projection information from a band of the original image.
# Call getInfo() on the projection to request a client-side object containing
# the crs and transform information needed for the client-side Export function.
projection = landsat.select('B2').projection().getInfo()

Einstellen von scale

Als Verknüpfung können Sie einen scale-Parameter angeben, damit Earth Engine einen crsTransform-Parameter für Sie berechnet. Wenn Sie jedoch nur den Maßstab eines Bildes festlegen, wird der Ursprung der Projektion nicht angegeben. Das kann dazu führen, dass das Bild im Vergleich zu einem anderen Bild mit derselben Pixelgröße verschoben wird.

Der Grund für die mögliche Abweichung ist, dass mit dem Parameter scale die Werte xScale und yScale des crsTransform festgelegt werden. Die Werte xTranslation und yTranslation werden jedoch so berechnet, dass bei der Division durch die entsprechenden xScale- und yScale-Werte der Rest null ist. Diese Parameter geben ein Pixelraster an, bei dem sich der Ursprung der Projektion in der Ecke eines Pixels befindet. Diese Konvention unterscheidet sich von den von einigen Datenanbietern verwendeten Translationsparametern, bei denen Raster verwendet werden, die vom Ursprung der Projektion versetzt sind. Beispielsweise werden für von der USGS bereitgestellte Landsat-Bilder Verschiebungsparameter verwendet, die um ein halbes Pixel vom Ursprung der Projektion versetzt sind (15 m Verschiebung für die 30 m-Bänder). Bei von der ESA bereitgestellten Sentinel-2-Bildern werden dagegen Verschiebungsparameter verwendet, die mit dem Ursprung der Projektion übereinstimmen. Wenn die in einem Export angegebene crsTransform nicht mit der crsTransform des Originalbilds übereinstimmt, werden die Ausgabepixel neu abgetastet (standardmäßig mit dem nächsten Nachbarn). Dadurch wird das resultierende Bild relativ zum Originalbild verschoben.

Wenn Sie die Pixel des exportierten Bilds einem bestimmten Bild zuordnen möchten, verwenden Sie die Parameter crs und crsTransform, um das Raster vollständig zu steuern.

zu Drive

Mit Export.image.toDrive() können Sie ein Bild in Ihr Drive-Konto exportieren. Wenn Sie beispielsweise Teile eines Landsat-Bilds exportieren möchten, definieren Sie eine Exportregion und rufen Sie dann Export.image.toDrive() auf:

// Export the image, specifying the CRS, transform, and region.
Export.image.toDrive({
  image: landsat,
  description: 'imageToDriveExample_transform',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry
});

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Export the image, specifying the CRS, transform, and region.
task = ee.batch.Export.image.toDrive(
    image=landsat,
    description='imageToDriveExample_transform',
    crs=projection['crs'],
    crsTransform=projection['transform'],
    region=geometry,
)
task.start()

Wenn dieser Code ausgeführt wird, wird im Code-Editor auf dem Tab Aufgaben eine Exportaufgabe erstellt. Klicken Sie neben der Aufgabe auf die Schaltfläche Ausführen, um sie zu starten. Weitere Informationen zum Task-Manager finden Sie im Abschnitt Code-Editor. Das Bild wird in Ihrem Drive-Konto mit der angegebenen fileFormat erstellt.

zu Cloud Storage

Verwenden Sie Export.image.toCloudStorage(), um ein Image in einen Google Cloud Storage-Bucket zu exportieren. Wenn Sie das Landsat-Bild aus dem vorherigen Beispiel in Cloud Storage statt in Drive exportieren möchten, verwenden Sie Folgendes:

// Export the image to Cloud Storage.
Export.image.toCloudStorage({
  image: landsat,
  description: 'imageToCloudExample',
  bucket: 'your-bucket-name',
  fileNamePrefix: 'exampleExport',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry
});

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Export the image to Cloud Storage.
task = ee.batch.Export.image.toCloudStorage(
    image=landsat,
    description='imageToCloudExample',
    bucket='your-bucket-name',
    fileNamePrefix='exampleExport',
    crs=projection['crs'],
    crsTransform=projection['transform'],
    region=geometry,
)
task.start()

Wie bei Exporten zu Google Drive starten Sie den Export auf dem Tab Aufgaben. Der Standort des Cloud Storage-Buckets kann sich auf die Leistung und die Speicherkosten auswirken. Weitere Informationen finden Sie im FAQ-Eintrag zu Standortüberlegungen.

zu Asset

Wenn Sie ein Bild in ein Asset in Ihrem Earth Engine-Asset-Ordner exportieren möchten, verwenden Sie Export.image.toAsset(). Mit dem Asset-Manager können Sie Ihre Earth Engine-Assets verwalten oder prüfen, wie viel Ihres Speicherkontingents belegt ist. Im folgenden Beispiel wird der Export von Teilen eines Landsat-Bildes mithilfe verschiedener Pyramidierungsrichtlinien für dasselbe Band veranschaulicht. Die Pyramidierungsrichtlinie gibt an, wie Earth Engine Versionen des Assets mit niedrigerer Auflösung berechnet. Weitere Informationen dazu, wie Earth Engine mit mehreren Auflösungen umgeht, finden Sie im Dokument zu Skalierung.

// Get band 4 from the Landsat image, copy it.
var band4 = landsat.select('B4').rename('b4_mean')
  .addBands(landsat.select('B4').rename('b4_sample'))
  .addBands(landsat.select('B4').rename('b4_max'));

// Export the image to an Earth Engine asset.
Export.image.toAsset({
  image: band4,
  description: 'imageToAssetExample',
  assetId: 'exampleExport',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry,
  pyramidingPolicy: {
    'b4_mean': 'mean',
    'b4_sample': 'sample',
    'b4_max': 'max'
  }
});

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Get band 4 from the Landsat image, copy it.
band_4 = (
    landsat.select('B4')
    .rename('b4_mean')
    .addBands(landsat.select('B4').rename('b4_sample'))
    .addBands(landsat.select('B4').rename('b4_max'))
)

# Export the image to an Earth Engine asset.
task = ee.batch.Export.image.toAsset(
    image=band_4,
    description='imageToAssetExample',
    assetId='projects/your-project/assets/exampleExport',
    crs=projection['crs'],
    crsTransform=projection['transform'],
    region=geometry,
    pyramidingPolicy={
        'b4_mean': 'mean',
        'b4_sample': 'sample',
        'b4_max': 'max',
    },
)
task.start()

Du kannst für jede Band, die nicht explizit angegeben ist, eine Standardpyramidierungsrichtlinie mit dem Schlüssel '.default' angeben. Du kannst auch nur den Schlüssel '.default' übergeben. Wenn Sie beispielsweise für alle Bänder standardmäßig die Pyramidierungsrichtlinie „Beispiel“ festlegen möchten, verwenden Sie {'.default': 'sample'}.

Konfigurationsparameter

Das Dictionary mit den Konfigurationsparametern, das an Export.image übergeben wird, enthält scale (in Metern) und die Exportregion als ee.Geometry. Das exportierte Bild deckt den angegebenen Bereich mit Pixeln in der angegebenen Skalierung ab. Wenn nicht explizit angegeben, wird das CRS der Ausgabe aus dem ersten Band des zu exportierenden Bildes übernommen.

Sie können auch dimensions, crs und/oder crsTransform des exportierten Bildes angeben. Weitere Informationen zu crs und crsTransform finden Sie im Glossar. Wenn Sie beispielsweise einen Pixelblock genau an einer anderen Datenquelle ausrichten möchten, geben Sie dimensions, crs und crsTransform an. Wenn Sie einen Pixelblock mit vordefinierter Größe (z. B. ein 256 × 256 Pixel großes Miniaturbild) erhalten möchten, der eine Region abdeckt, geben Sie dimensions und region an.

Sie können das Bildausgabeformat (falls das Ziel nicht toAsset() ist) mit dem Parameter fileFormat (standardmäßig 'GeoTIFF') angeben.

formatOptions-Parameter

Andere Konfigurationsoptionen werden mit dem Parameter formatOptions festgelegt. Dieser sollte ein Wörterbuch mit anderen Formatoptionen sein, die für jede fileFormat spezifisch sind, wie unten beschrieben.

GeoTIFF

Cloud-optimierte GeoTIFF-Datei

Wenn Sie eine für die Cloud optimierte GeoTIFF-Datei exportieren möchten, übergeben Sie ein JavaScript-Literal für formatOptions, bei dem der Schlüssel cloudOptimized auf true festgelegt ist. Fortsetzung des vorherigen Beispiels:

// Export a cloud-optimized GeoTIFF.
Export.image.toDrive({
  image: landsat,
  description: 'imageToCOGeoTiffExample',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry,
  fileFormat: 'GeoTIFF',
  formatOptions: {
    cloudOptimized: true
  }
});

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Export a cloud-optimized GeoTIFF.
task = ee.batch.Export.image.toDrive(
    image=landsat,
    description='imageToCOGeoTiffExample',
    crs=projection['crs'],
    crsTransform=projection['transform'],
    region=geometry,
    fileFormat='GeoTIFF',
    formatOptions={'cloudOptimized': True},
)
task.start()

Cloud-optimierte GeoTIFFs können aus Cloud Storage in eine Image neu geladen werden. Weitere Informationen finden Sie in den Image-Übersichtsdokumenten.

Nodata

Geben Sie den GeoTIFF-Wert für „NoData“ mit dem Schlüssel noData im Parameter formatOptions an. Beispiel:

// Set a nodata value and replace masked pixels around the image edge with it.
var noDataVal = -9999;
landsat = landsat.unmask(noDataVal);

Export.image.toDrive({
  image: landsat,
  description: 'imageNoDataExample',
  crs: projection.crs,
  scale: 2000,  // large scale for minimal demo
  region: landsat.geometry(),  // full image bounds
  fileFormat: 'GeoTIFF',
  formatOptions: {
    noData: noDataVal,
  }
});

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap
# Set a nodata value and replace masked pixels around the image edge with it.
no_data_val = -9999
landsat = landsat.unmask(no_data_val)

task = ee.batch.Export.image.toDrive(
    image=landsat,
    description='imageNoDataExample',
    crs=projection['crs'],
    scale=2000,  # large scale for minimal demo
    region=landsat.geometry(),  # full image bounds
    fileFormat='GeoTIFF',
    formatOptions={'noData': no_data_val},
)
task.start()

Der Wert „nodata“ muss im gültigen Bereich für PixelType des Bildes liegen. Sie können PixelType prüfen, indem Sie Bildmetadaten drucken und sich das Attribut data_type des ersten Bandes ansehen. Sie können denPixelType des Bildes auch festlegen, indem Sie die Daten beispielsweise mit den Bildmethoden toShort() oder toInt() in einen bestimmten Typ umwandeln.

TFRecord

Weitere Informationen finden Sie auf der Seite TFRecord-Datenformat.

maxPixels

Der Parameter maxPixels soll verhindern, dass versehentlich sehr große Exporte erstellt werden. Wenn der Standardwert für das gewünschte Ausgabebild zu niedrig ist, können Sie maxPixels erhöhen. Beispiel:

Export.image.toDrive({
  image: landsat,
  description: 'maxPixelsExample',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry,
  maxPixels: 1e9
});

Export großer Dateien

Wenn das Ausgabebild groß ist, wird es in mehrere Dateien exportiert. Wenn Sie in GeoTIFF-Dateien exportieren, wird das Bild in Kacheln aufgeteilt. Der Dateiname jeder Kachel hat das Format baseFilename-yMin-xMin, wobei xMin und yMin die Koordinaten der einzelnen Kachel innerhalb des gesamten Begrenzungsrahmens des exportierten Bildes sind.

Wenn Sie in TFRecord exportieren, werden den Dateien -00000, -00001,… -0000N für N + 1 Dateien angehängt. Diese Reihenfolge ist wichtig, wenn Sie Inferenzen auf den Dateien ausführen und die Vorhersagen als Bild wieder in Earth Engine hochladen möchten. Weitere Informationen finden Sie unter Bilder als TFRecord-Dateien hochladen.

Bilder so exportieren, wie sie im Code-Editor angezeigt werden

Wenn Sie Bilder exportieren möchten, die in Earth Engine auf dem Bildschirm gerendert werden, erstellen Sie Visualisierungsbilder wie in den Abschnitten Visualisierungsbilder und Compositing und Mosaikierung gezeigt. Da im Code-Editor das CRS 'EPSG:3857' verwendet wird, geben Sie beim Exportieren ein CRS von 'EPSG:3857' an, um ein Bild in derselben Projektion zu erhalten, die in der Code-Editor-Karte angezeigt wird. Im Abschnitt zum Konfigurieren von Bildexporten finden Sie weitere Informationen zum Angeben der Auflösung und des Koordinatensystems der Ausgabe.