【问题标题】:Colab - Split big tiff file using GDALColab - 使用 GDAL 拆分大 tiff 文件
【发布时间】:2020-09-19 04:41:30
【问题描述】:
我正在尝试使用 Colab 上的 gdal 将一个巨大的 tiff 文件拆分为图块。
我的 google 驱动器已安装,我可以对其进行读写。
代码取自this答案:
com_string = "gdal_translate -of GTIFF -srcwin" + ...
os.system(com_string)
单元完成,但驱动器上没有显示新文件。
有什么想法或其他方式来实现文件的拆分?
【问题讨论】:
标签:
google-colaboratory
tiff
gdal
【解决方案1】:
This回答给出建议:
您需要提出像素/线位置或角坐标,然后使用 gdal_translate 循环遍历这些值。
import os, sys
from osgeo import gdal
dset = gdal.Open(sys.argv[1])
width = dset.RasterXSize
height = dset.RasterYSize
print width, 'x', height
tilesize = 5000
for i in range(0, width, tilesize):
for j in range(0, height, tilesize):
w = min(i+tilesize, width) - i
h = min(j+tilesize, height) - j
gdaltranString = "gdal_translate -of GTIFF -srcwin "+str(i)+", "+str(j)+", "+str(w)+", " \
+str(h)+" " + sys.argv[1] + " " + sys.argv[2] + "_"+str(i)+"_"+str(j)+".tif"
os.system(gdaltranString)
当然,这取决于您的gdal 安装是否正常工作。如果上述方法不起作用(您仍然没有文件),请尝试首先在未安装 Google Drive 的位置运行它。如果可行,您就知道问题出在您的安装上。如果没有,接下来我会检查以确保您获得了您期望的输入图像,例如plt.imshow(your_source_image)。如果您看到图像,请继续。如果不是,则您的源图像丢失或路径错误。
如果还是不行,我怀疑是你的gdal 安装有问题。在这种情况下,我会首先尝试一个非常简单的函数,并确保它给出了您期望的结果。您也可以尝试在 Collab 上运行其他东西并确保它有效。