Colab-使用GDAL分割大tiff文件

问题描述

我正在尝试在Colab上使用gdal将巨大的tiff文件分割为图块。

我的google驱动器已安装,我可以在其中进行读写操作。

代码摘自this答案:

com_string = "gdal_translate -of GTIFF -srcwin" + ...
os.system(com_string)

该单元已完成,但驱动器上没有新文件显示。 有什么想法或其他方法来实现文件拆分吗?

解决方法

This答案提出了一个建议:

您需要提出像素/线位置或角坐标,然后使用upperRightLongitude遍历这些值。

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) 安装是否正常运行。如果上述方法不起作用(您仍然没有文件),请尝试首先在未安装Google云端硬盘的位置运行它。如果可行,则说明问题出在您的安装上。如果没有,接下来我将检查以确保您得到的输入图像是gdal之类的。如果看到图像,请继续前进。如果没有,则您的源图像丢失或路径错误。

如果仍然无法正常工作,我怀疑您的plt.imshow(your_source_image)安装存在问题。在那种情况下,我首先会尝试一个非常简单的函数,并确保它能提供您期望的结果。您也可以尝试在Collab上运行其他功能,并确保其可以正常工作。