Google Earth Engine导出TFRecords时报tile_dimensions错误求助
解决Google Earth Engine导出TFRecords时的「tile_dimensions must be specified for TfRecord export」错误
错误原因与修复
你遇到的错误是因为导出TFRecord格式时,GEE强制要求指定tileDimensions参数——该参数是TFRecord格式专属的分块配置,而你当前代码里使用的fileDimensions仅适用于GeoTIFF等其他格式。另外还有一个潜在问题:你的image变量实际是ImageCollection(影像集合),但Export.image.toDrive要求输入为单张Image,直接导出会触发额外报错,需要先将影像集合合并为单张影像(可根据需求选择mosaic()、median()、mean()等合并方法)。
修改后的可用代码:
// 筛选目标时间范围的影像集合 var region = imageCollection.filterBounds(geometry) .filter(ee.Filter.date('2015-01-01','2021-01-01')); print(region.size()); // 将影像集合合并为单张合成影像(这里用median,可根据需求替换为mosaic/mean等) var compositeImage = region.median(); // 导出为TFRecord格式 Export.image.toDrive({ image: compositeImage, description: "Chicago_Images", folder: 'GEE', fileNamePrefix:'Chicago_Images_2', region: geometry, scale:30, maxPixels: 50000000, tileDimensions: [256, 256], // TFRecord必填:定义每个切片的宽高像素数 fileFormat: 'TFRecord' });
关于切片(Tile)的说明
tileDimensions定义的就是TFRecord中的影像切片尺寸,格式为[宽度像素数, 高度像素数],比如[256,256]会把整个目标区域切割成多个256x256像素的小瓦片,每个瓦片会作为TFRecord中的一个独立张量元素。- 选择切片尺寸时的参考要点:
- 匹配后续TensorFlow模型的输入维度要求
- 结合影像分辨率与区域大小,避免切片过大导致内存溢出,或过小生成过多冗余文件
- 若目标区域无法被切片尺寸整除,GEE会自动处理边缘的小尺寸切片
内容的提问来源于stack exchange,提问作者Shadi Dorosti
相关产品推荐
相关产品推荐

