我想为bands
中的每个频段选择特定的scale
和getDownloadURL
参数,但我无法使其发挥作用。
var geometry = /* color: #d63000 */ee.Geometry.Polygon(
[[[-3.1990814208984375, 10.698337865705495],
[-3.2155609130859375, 10.50665993373459],
[-2.63671875, 10.525563079495361],
[-2.665557861328125, 10.714530481853876]]]);
var landsat = ee.Image(ee.ImageCollection("LANDSAT/LC08/C01/T2_TOA").first())
.clip(geometry)
print(landsat.getDownloadURL(
{
'name': 'output',
'bands': [{id:'B1', scale:30}, {id:'B2', scale:100}]
}))
答案 0 :(得分:0)
这感觉就像GEE中的错误,或者文档与API的不一致。您的代码看起来很好,似乎遵循文档。但是,我从未在实践中看到过这个bands
参数。原因可能是getDownloadURL
是从GEE下载数据的旧方法,我实际上仍然在某些脚本中使用它,因为它更简单,不需要GDrive或GCS帐户,但可能不稳定。
解决方法是让您的代码工作是使用所需的比例逐个下载这些波段:https://code.earthengine.google.com/13cfdb894d9e28831f39f3972b56baf7
print(landsat.select('B1').getDownloadURL({ scale: 30, region: region }))
print(landsat.select('B2').getDownloadURL({ scale: 100, region: region }))
如果你使用getDownloadURL
- 准备实施重试算法,检查下载的zip文件是否有效,如果不是,则重试下载。
另一种(推荐)方法是使用Export:https://developers.google.com/earth-engine/exporting。对于小预览图像,可以使用ee.Image.getThumbURL
。
答案 1 :(得分:0)
您必须设置区域参数
var region = geometry.toGeoJSONString();
var path1 = rgbImage.getDownloadURL({'name':assetName,'format':'png','region':region,"scale": 10});