Mengekspor Gambar

Anda dapat mengekspor gambar dari Earth Engine dalam GeoTIFF atau TFRecord. Lihat Parameter Konfigurasi untuk mengetahui 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

Baca 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 proyeksi yang akan digunakan dalam ekspor berikut. Kita menggunakan parameter crs untuk menentukan sistem koordinat, dan parameter crsTransform untuk menentukan secara tepat petak piksel. 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

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

Menetapkan scale

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

Alasan potensi pergeseran ini 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 tempat asal proyeksi berada di sudut piksel. Konvensi ini berbeda dengan parameter terjemahan yang digunakan oleh beberapa penyedia data, yang menggunakan petak yang diimbangi dari asal proyeksi. Misalnya, gambar Landsat yang disediakan oleh USGS menggunakan parameter terjemahan yang diimbangi 1/2 piksel dari asal proyeksi (offset 15 m untuk band 30 m), sedangkan gambar Sentinel-2 yang disediakan oleh ESA menggunakan parameter terjemahan yang selaras dengan asal proyeksi. Jika crsTransform yang ditentukan dalam ekspor tidak cocok dengan crsTransform gambar asli, piksel output akan di-resample (menggunakan tetangga terdekat secara default), yang akan membuat gambar yang dihasilkan bergeser 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 atas petak.

ke Drive

Untuk mengekspor gambar ke akun Drive Anda, gunakan Export.image.toDrive(). Misalnya, untuk mengekspor bagian gambar Landsat, tentukan wilayah 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

Baca 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 lebih lanjut Pengelola Tugas 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

Baca 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 Tugas. 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 dengan resolusi 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

Baca 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 rentang 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 mencakup scale (dalam meter) dan wilayah ekspor sebagai ee.Geometry. Gambar yang diekspor akan mencakup area 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 dari gambar yang diekspor. Lihat glosarium untuk mengetahui informasi selengkapnya tentang crs dan crsTransform. Misalnya, untuk mendapatkan blok piksel yang selaras 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 untuk cloud

Untuk mengekspor GeoTIFF yang dioptimalkan untuk 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

Baca 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 atau didaftarkan sebagai aset. Lihat ringkasan GeoTIFF yang dioptimalkan untuk cloud (COG) untuk mengetahui spesifikasi dan opsi ekspor lengkap.

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

Baca 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 menetapkan PixelType 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 beberapa ubin. Nama file setiap petak akan dalam bentuk baseFilename-yMin-xMin dengan xMin dan yMin adalah koordinat setiap petak dalam kotak pembatas keseluruhan gambar yang diekspor.

Jika Anda mengekspor ke TFRecord, file akan ditambahkan oleh -00000, -00001,... -0000N untuk file N+1. Mempertahankan 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 Editor Kode

Untuk mengekspor gambar seperti yang dirender di layar di Earth Engine, buat gambar visualisasi seperti yang ditunjukkan di bagian Gambar visualisasi dan Penggabungan dan Mosaik. 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.