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]);
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();
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 });
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 });
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' } });
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 } });
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, } });
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.