Zachowanie getThumbURL
W Google Earth Engine próbuję pobrać niektóre obrazy wyświetlane przy użyciu tej metody image.getThumbURL. Obraz jest dobrze widoczny Map.addLayer, ale kiedy go przepuszczam getThumbURL, otrzymuję tylko pusty obraz. Oto przykład tego zachowania:
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
Co ja robię źle?
Odpowiedzi
Nie określono skali, ale podałeś region, którego układ współrzędnych jest w stopniach. W ten sposób otrzymałeś bardzo mały obraz (2 × 1 piksel).
Jeśli określisz skalę, otrzymasz obraz:
print(outImg.getThumbURL({region: pngArea, scale: 200, format: 'png'}));
Możesz również określić konkretne wymiary, ale może to spowodować zniekształcenie obrazu, jeśli wymiary nie będą pasować do proporcji regionu:
print(outImg.getThumbURL({
region: pngArea,
dimensions: '150x150',
format: 'png',
}))
Inną opcją, która może Cię zainteresować, jest crsużycie projekcji obrazu (lub dowolnej projekcji) zamiast projekcji regionu:
print(outImg.getThumbURL({
region: pngArea,
crs: s2coll.first().select('B4').projection(),
scale: 200,
format: 'png',
}))
Ta wersja nie ma pochyłej prawej krawędzi, ponieważ eksportowany prostokąt obrazu używa tego samego układu współrzędnych, co (co najmniej jeden z) oryginalnych obrazów.
Generalnie dobrym pomysłem jest również użycie odwzorowania przeznaczonego do mapowania (niezależnie od tego, czy jest to projekcja obrazu, czy innego), a nie stopni długości i szerokości geograficznej, których używasz dla swojego regionu (co domyślnie Earth Engine ustawia w przypadku braku lepszy pomysł), który będzie miał zniekształcone piksele, gdy zbliżysz się do biegunów. Zwróć uwagę, że ten obraz jest bliższy proporcjom oryginalnego prostokąta na mapie, podczas gdy pierwszy, który określa tylko skalę, jest szerszy niż powinien.