Mengekspor Gambar

Anda dapat mengekspor gambar dari Earth Engine dalam GeoTIFF atau TFRecord. Lihat Parameter Konfigurasi untuk opsi output lainnya.

Contoh Penyiapan

Mulai dengan menentukan data gambar yang akan diekspor:

Editor Kode (JavaScript)

// 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]);

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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])

Selanjutnya, tentukan parameter projection yang akan digunakan dalam ekspor berikut. Kita menggunakan parameter crs untuk menentukan sistem koordinat, dan parameter crsTransform untuk menentukan petak piksel secara akurat. Parameter crsTransform adalah daftar parameter dari matriks transformasi affine dalam urutan baris utama [xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]. Asal gambar ditentukan oleh nilai xTranslation dan yTranslation, dan ukuran piksel gambar ditentukan oleh nilai xScale dan yScale. Lihat contoh matriks affine.

Editor Kode (JavaScript)

// 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();

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

Setelan scale

Sebagai pintasan, Anda dapat menentukan parameter scale dan Earth Engine akan menghitung parameter crsTransform untuk Anda. Namun, hanya menetapkan skala gambar tidak menentukan asal proyeksi, dan dapat mengakibatkan gambar yang bergeser relatif terhadap gambar lain dengan ukuran piksel yang sama.

Alasan potensi pergeseran adalah karena parameter scale digunakan untuk mengisi nilai xScale dan yScale dari crsTransform, tetapi nilai xTranslation dan yTranslation dihitung sehingga jika dibagi dengan nilai xScale dan yScale yang sesuai, sisanya akan menjadi nol. Parameter ini menentukan petak piksel dengan asal proyeksi di sudut piksel. Konvensi ini berbeda dengan parameter terjemahan yang digunakan oleh beberapa penyedia data, yang menggunakan petak yang dioffset dari asal proyeksi. Misalnya, gambar Landsat yang disediakan oleh USGS menggunakan parameter terjemahan yang dioffset sebesar 1/2 piksel dari origin Proyeksi (offset 15 m untuk band 30 m), sedangkan gambar Sentinel-2 yang disediakan oleh ESA menggunakan parameter terjemahan yang selaras dengan origin Proyeksi. Jika crsTransform yang ditentukan dalam ekspor tidak cocok dengan crsTransform gambar asli, piksel output akan diambil sampelnya ulang (menggunakan tetangga terdekat secara default), yang akan membuat gambar yang dihasilkan bergeser secara relatif terhadap gambar asli.

Singkatnya, jika Anda perlu mencocokkan piksel gambar yang diekspor dengan gambar tertentu, pastikan untuk menggunakan parameter crs dan crsTransform untuk kontrol penuh pada petak.

ke Drive

Untuk mengekspor gambar ke akun Drive, gunakan Export.image.toDrive(). Misalnya, untuk mengekspor bagian gambar Landsat, tentukan region yang akan diekspor, lalu panggil Export.image.toDrive():

Editor Kode (JavaScript)

// 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
});

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

Saat kode ini dijalankan, tugas ekspor akan dibuat di tab Tasks Editor Kode. Klik tombol Run di samping tugas untuk memulainya. (Pelajari Pengelola Tugas lebih lanjut dari bagian Editor Kode). Gambar akan dibuat di akun Drive Anda dengan fileFormat yang ditentukan.

ke Cloud Storage

Untuk mengekspor gambar ke bucket Google Cloud Storage, gunakan Export.image.toCloudStorage(). Untuk mengekspor gambar Landsat dalam contoh sebelumnya ke Cloud Storage, bukan Drive, gunakan:

Editor Kode (JavaScript)

// 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
});

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

Seperti ekspor ke Drive, mulai ekspor dari tab Tasks. Lokasi bucket Cloud Storage dapat memengaruhi performa dan biaya penyimpanan. Lihat entri FAQ tentang pertimbangan lokasi untuk mengetahui informasi selengkapnya.

ke Aset

Untuk mengekspor gambar ke aset di folder aset Earth Engine, gunakan Export.image.toAsset(). Untuk mengelola aset Earth Engine, atau memeriksa jumlah kuota penyimpanan yang digunakan, gunakan Pengelola Aset. Contoh berikut mengilustrasikan ekspor bagian gambar Landsat menggunakan kebijakan piramida yang berbeda untuk band yang sama. Kebijakan piramida menunjukkan cara Earth Engine menghitung versi aset beresolusi lebih rendah. Pelajari lebih lanjut cara Earth Engine menangani beberapa resolusi dalam dokumen skala.

Editor Kode (JavaScript)

// 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'
  }
});

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

Anda dapat memberikan kebijakan piramida default untuk setiap band yang tidak ditentukan secara eksplisit menggunakan kunci '.default'. Anda juga dapat meneruskan kunci '.default' saja. Misalnya, untuk membuat semua band secara default menggunakan kebijakan piramida 'sample', gunakan {'.default': 'sample'}.

Parameter konfigurasi

Perhatikan bahwa kamus parameter konfigurasi yang diteruskan ke Export.image menyertakan scale (dalam meter) dan region ekspor sebagai ee.Geometry. Gambar yang diekspor akan mencakup wilayah yang ditentukan dengan piksel pada skala yang ditentukan. Jika tidak ditentukan secara eksplisit, CRS output akan diambil dari band pertama gambar yang akan diekspor.

Anda juga dapat menentukan dimensions, crs, dan/atau crsTransform gambar yang diekspor. Lihat glosarium untuk mengetahui informasi selengkapnya tentang crs dan crsTransform. Misalnya, untuk mendapatkan blok piksel yang sejajar dengan tepat ke sumber data lain, tentukan dimensions, crs, dan crsTransform. Untuk mendapatkan blok piksel dengan ukuran yang telah ditentukan (misalnya, gambar thumbnail 256x256) yang mencakup suatu wilayah, tentukan dimensions dan region.

Anda dapat menentukan format output gambar (jika tujuannya bukan toAsset()) dengan parameter fileFormat ('GeoTIFF' secara default).

Parameter formatOptions

Opsi konfigurasi lainnya ditetapkan dengan parameter formatOptions, yang harus berupa kamus yang diberi kunci oleh opsi format lain, khusus untuk setiap fileFormat seperti yang dijelaskan di bawah.

GeoTIFF

GeoTIFF yang dioptimalkan cloud

Untuk mengekspor GeoTIFF yang dioptimalkan cloud, teruskan literal JavaScript untuk formatOptions dengan kunci cloudOptimized ditetapkan ke true. Melanjutkan contoh sebelumnya:

Editor Kode (JavaScript)

// 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
  }
});

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

GeoTIFF yang dioptimalkan untuk Cloud dapat dimuat ulang dari Cloud Storage ke Image. Lihat dokumen ringkasan Image untuk mengetahui detailnya.

Nodata

Tentukan nilai nodata GeoTIFF menggunakan kunci noData dalam parameter formatOptions. Contoh:

Editor Kode (JavaScript)

// 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,
  }
});

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

import ee
import geemap.core as geemap

Colab (Python)

# 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()

Perhatikan bahwa nilai nodata harus berada dalam rentang yang valid untuk PixelType gambar. Anda dapat memeriksa PixelType dengan mencetak metadata gambar dan melihat properti data_type band pertama. Anda juga dapat menetapkanPixelType gambar dengan mentransmisikan data ke jenis tertentu menggunakan metode gambar toShort() atau toInt(), misalnya.

TFRecord

Lihat halaman Format data TFRecord.

maxPixels

Parameter maxPixels dimaksudkan untuk mencegah ekspor yang sangat besar dibuat secara tidak sengaja. Jika nilai default terlalu rendah untuk gambar output yang Anda inginkan, Anda dapat meningkatkan maxPixels. Contoh:

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

Ekspor file besar

Jika gambar output berukuran besar, gambar tersebut akan diekspor sebagai beberapa file. Jika Anda mengekspor ke GeoTIFF, gambar akan dibagi menjadi ubin. Nama file setiap ubin akan berbentuk baseFilename-yMin-xMin dengan xMin dan yMin adalah koordinat setiap ubin dalam keseluruhan kotak pembatas gambar yang diekspor.

Jika Anda mengekspor ke TFRecord, file akan ditambahkan dengan -00000, -00001,... -0000N untuk file N+1. Menjaga urutan ini penting jika Anda ingin melakukan inferensi pada file dan mengupload prediksi kembali ke Earth Engine sebagai gambar. Lihat mengupload gambar sebagai file TFRecord untuk mengetahui detailnya.

Mengekspor gambar seperti yang muncul di Code Editor

Untuk mengekspor gambar seperti yang dirender di layar di Earth Engine, buat gambar visualisasi seperti yang ditunjukkan di bagian Gambar visualisasi dan Komposisi dan Mozaik. Karena Editor Kode menggunakan CRS 'EPSG:3857', tentukan CRS 'EPSG:3857' dalam ekspor untuk mendapatkan gambar dalam proyeksi yang sama dengan yang ditampilkan di peta Editor Kode. Lihat bagian tentang mengonfigurasi ekspor gambar untuk mengetahui detail tentang cara menentukan resolusi dan sistem koordinat output.