Google Earth Engine导出大影像时下载失败
- 最近用gee导出了一些影像到drive云盘中,虽然不是很大,只有两百M左右,但是使用backup and sync同步软件来下载的时候却一直失败,不停的重试。
- 同步软件不支持断点续传,一旦因为某原因中断,又要从头开始,感到十分的无奈
- 经过多次教训,发现下载50M以内的小文件是没有问题的,因此考虑导出数据的时候使用分块来解决,最后下载这些小块再拼接起来。
分块下载的方法
- 使用
Export.image.toDrive(image, description, folder, fileNamePrefix, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize, fileDimensions, skipEmptyTiles, fileFormat, formatOptions)
函数的时候,可以设置fileDimensions的大小,即分块的行列数,只输入一个数的话就是正方形的分块,分块的大小必须是shardSize的倍数,shadSize如果不指定的话默认是256,一般将分块大小设置为256的倍数。 - 例如
Export.image.toDrive({
image: img,
description: 'test',
folder:'test',
scale: 30,
region:geometry,
fileDimensions:2560,
maxPixels:1e13
});
- 导出后的图片比较小了,然后再使用backup and sync同步下载就很快。
图像拼接
- 如果导出多个文件,手动拼接会比较费劲,使用Python来拼接,方便快捷,需要安装gdal库。
- 主要通过gdal自带的gdal_merge.py完成拼接。如果找不到的话,这里有下载地址,https://pan.baidu.com/s/1KzQmdT1_804SEdq1x5biFg 提取码:uq4l
- 拼接的代码如下,将gdal_merge.py和下面的脚步放在同一个文件夹下,并修改下面脚步的两个路径即可,会自动根据分块影像的前缀拼成一个影像。
"""
对GEE下载的分块影像进行拼接
gdal_merge.py需放在本文件同级目录下,gdal_merge.py为gdal自带
需要安装gdal
"""
import os
# 分块影像所在文件夹,不能有中文
tifDir = r"E:\googledrive\hhh"
# 输出的文件夹,不能有中文,如果文件夹不存在则会被创建
outPath = r"E:\googledrive\hhh_merge"
# ----------------只需修改上面两个参数--------------------
# 当前脚本所在的目录,用于找gdal_merge文件
currentPath = os.path.dirname(os.path.abspath(__file__))
# 输出目录不存在则创建
if not os.path.exists(outPath):
os.makedirs(outPath)
# 列出输入文件夹的tif文件
tifs = [i for i in os.listdir(tifDir) if i.endswith(".tif")]
# 获取目标文件数量,前缀相同的
# 分块的文件名的长度相同,将分块编号去掉
targetFile = set()
for i in tifs:
targetFile.add(i[:-26]+i[-4:])
print("拼接后应该有 %s 个文件" % len(targetFile))
# 切换工作空间,到影像的路径
os.chdir(tifDir)
# 一个一个的执行拼接
for i in targetFile:
# 拼接后的文件名对应的分块文件名列表
sliceFileList = []
for k in tifs:
if k[:-26] == i[:-4]:
sliceFileList.append(k)
# 执行影像拼接
outtif = os.path.join(outPath,i) # 输出tif路径,使用绝对路径
if os.path.exists(outtif): # 如果输出路径存在则跳过
print("%s already exists, will be ignored."%outtif)
continue
os.system("python %s -init %s -o %s %s" % (
os.path.join(currentPath,"gdal_merge.py"),0, outtif, " ".join(sliceFileList)))
print("%s -------- merge success"%outtif)
转载:https://blog.csdn.net/weixin_40450867/article/details/104578379
查看评论