首页 > 解决方案 > 将变量传递给 GEE 导出函数

问题描述

我想将多波段图像转换为数组格式,并以 TFRecord 格式将其从 Google 地球引擎中导出。波段的数量不是固定的,因此我必须计算它,然后将其可变内容传递给导出函数。

var patch_size = 37;
var NBands = ee.Number(image.bandNames().length()).getInfo();

Export.image.toCloudStorage({
  image: image.toArray(),
  description: outFileName,
  bucket: 'landsat',
  scale: scale,
  region: geometry,
  fileFormat: 'TFRecord',
  formatOptions: {
    patchDimensions: [patch_size, patch_size],
    tensorDepths: [NBands],
    compressed: true
  }
});

代码可以正常工作,但我只得到一个 2KB 的输出 .gz 文件,这显然是错误的,当尝试读取它时,我得到一个解析器错误。如果我用固定值代替 NBands,它会很好地工作,但我需要它是可变的而不是固定的。怎么做?

标签: tfrecordgoogle-earth-engine

解决方案


推荐阅读