Comportamento di getThumbURL

Oct 14 2020

Su Google Earth Engine sto cercando di scaricare alcune immagini di visualizzazione utilizzando il metodo image.getThumbURL. L'immagine si vede bene dentro Map.addLayer, ma quando la passo attraverso getThumbURLottengo solo un'immagine vuota. Ecco un esempio di questo comportamento:

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

Che cosa sto facendo di sbagliato?

Risposte

6 KevinReid Oct 13 2020 at 22:59

Non hai specificato una scala e hai fornito una regione il cui sistema di coordinate è in gradi. Quindi, hai un'immagine molto piccola (2 × 1 pixel).

Se specifichi una scala, otterrai un'immagine:

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

Puoi anche specificare dimensioni esplicite, ma potresti ottenere un'immagine distorta se le dimensioni non corrispondono alle proporzioni della regione:

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

Un'altra opzione che potrebbe interessarti è crsusare la proiezione dell'immagine (o qualsiasi proiezione) invece della proiezione della regione:

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

Questa versione non ha un bordo destro obliquo perché il rettangolo dell'immagine esportata utilizza lo stesso sistema di coordinate (almeno una delle) immagini originali.

In genere è anche una buona idea usare una proiezione destinata alla mappatura (che si tratti della proiezione dell'immagine o di un'altra), piuttosto che i gradi di longitudine e latitudine che stai utilizzando per la tua regione (che è ciò che Earth Engine ha impostato per impostazione predefinita in assenza di un idea migliore), che avrà pixel distorti man mano che ti avvicini ai poli. Nota che questa immagine è più vicina alle proporzioni del tuo rettangolo originale sulla mappa, mentre la prima che specifica solo la scala è allungata più ampia di quanto dovrebbe essere.