Google地球引擎 - 在ee.Image.getDownloadURL()中指定波段

时间:2018-01-09 11:36:54

标签: javascript google-earth-engine

我想为bands中的每个频段选择特定的scalegetDownloadURL参数,但我无法使其发挥作用。

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}]
}))      

2 个答案:

答案 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});