Perilaku getThumbURL

Oct 14 2020

Di Google Earth Engine, saya mencoba mengunduh beberapa gambar tampilan menggunakan metode ini image.getThumbURL. Gambarnya terlihat bagus Map.addLayer, tetapi ketika saya melewatinya, getThumbURLsaya hanya mendapatkan gambar kosong. Berikut contoh perilaku ini:

var point = ee.Geometry.Point([11.300422012780208, 44.50570009326473])
var pngArea =
    ee.Geometry.Polygon(
        [[[10.966712295983333, 44.65340259358304],
          [10.966712295983333, 44.24754759759594],
          [11.738501846764583, 44.24754759759594],
          [11.738501846764583, 44.65340259358304]]], null, false)

var s2coll = ee.ImageCollection("COPERNICUS/S2")
s2coll = s2coll.filterBounds(point)
        .filterDate('2018-07-15', '2018-07-30')
print(s2coll)
var img = s2coll.mosaic()
print(img)
var visualization = {
  min: 0.0,
  max: 2000,
  bands: ['B4', 'B3', 'B2'],
}
var outImg = img.visualize(visualization)
Map.addLayer(outImg)

print(outImg.getThumbURL({region: pngArea, format: 'png'}))

https://code.earthengine.google.com/89afe6e672f63d2245ef438288f78f55

Apa yang saya lakukan salah?

Jawaban

6 KevinReid Oct 13 2020 at 22:59

Anda tidak menentukan skala, dan memberikan wilayah yang sistem koordinatnya dalam derajat. Jadi, Anda mendapat gambar yang sangat kecil (2 × 1 piksel).

Jika Anda menentukan skala, Anda akan mendapatkan gambar:

print(outImg.getThumbURL({region: pngArea, scale: 200, format: 'png'}));

Anda juga dapat menentukan dimensi eksplisit, tetapi itu mungkin membuat Anda gambar terdistorsi jika dimensinya tidak sesuai dengan rasio aspek kawasan:

print(outImg.getThumbURL({
  region: pngArea,
  dimensions: '150x150',
  format: 'png',
}))

Opsi lain yang mungkin menarik bagi Anda adalah crsmenggunakan proyeksi gambar (atau proyeksi apa pun) daripada proyeksi wilayah:

print(outImg.getThumbURL({
  region: pngArea,
  crs: s2coll.first().select('B4').projection(),
  scale: 200,
  format: 'png',
}))

Versi ini tidak memiliki tepi kanan yang miring karena persegi panjang gambar yang diekspor menggunakan sistem koordinat yang sama dengan (setidaknya satu dari) gambar asli.

Ini juga merupakan ide yang baik untuk menggunakan proyeksi yang dimaksudkan untuk pemetaan (apakah itu proyeksi gambar atau yang lain), daripada derajat bujur & lintang yang Anda gunakan untuk wilayah Anda (yang merupakan default Earth Engine jika tidak ada ide yang lebih baik), yang akan mendistorsi piksel saat Anda mendekati kutub. Perhatikan bahwa gambar ini lebih dekat dengan rasio aspek persegi panjang asli Anda pada peta, sedangkan gambar pertama yang hanya menentukan skala direntangkan lebih lebar dari yang seharusnya.