Поведение getThumbURL
В Google Earth Engine я пытаюсь загрузить несколько отображаемых изображений, используя этот метод image.getThumbURL. Изображение хорошо видно Map.addLayer, но когда я пропускаю его, getThumbURLя получаю только пустое изображение. Вот пример такого поведения:
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
Что я делаю не так?
Ответы
Вы не указали масштаб и указали область, система координат которой указана в градусах. Таким образом, у вас получилось очень маленькое изображение (2 × 1 пиксель).
Если вы укажете масштаб, вы получите изображение:
print(outImg.getThumbURL({region: pngArea, scale: 200, format: 'png'}));
Вы также можете указать явные размеры, но это может привести к искажению изображения, если размеры не соответствуют соотношению сторон региона:
print(outImg.getThumbURL({
region: pngArea,
dimensions: '150x150',
format: 'png',
}))
Другой вариант, который может вас заинтересовать, - crsиспользовать проекцию изображения (или любую проекцию) вместо проекции области:
print(outImg.getThumbURL({
region: pngArea,
crs: s2coll.first().select('B4').projection(),
scale: 200,
format: 'png',
}))
Эта версия не имеет наклонного правого края, потому что прямоугольник экспортированного изображения использует ту же систему координат, что и (по крайней мере, одно из) исходное изображение.
Также, как правило, неплохо использовать проекцию, предназначенную для картографии (будь то проекция изображения или другая), а не градусы долготы и широты, которые вы используете для своего региона (это то, что Earth Engine по умолчанию использует при отсутствии Лучшая идея), пиксели которого будут искажаться по мере приближения к полюсам. Обратите внимание, что это изображение ближе к соотношению сторон исходного прямоугольника на карте, тогда как первое изображение, которое указывает только масштаб, растянуто шире, чем должно быть.