Google colaboratory Colab-使用GDAL分割大tiff文件

Google colaboratory Colab-使用GDAL分割大tiff文件,google-colaboratory,tiff,gdal,Google Colaboratory,Tiff,Gdal,我正在尝试使用Colab上的gdal将一个巨大的tiff文件分割成瓷砖 我的谷歌硬盘已经安装,我可以读写 代码取自答案: 单元完成,但驱动器上没有显示新文件。 有什么想法或其他方法可以实现文件拆分吗?答案给出了一个建议: 您需要找到像素/线位置或角点坐标,然后使用gdal\u translate循环这些值 当然,这取决于gdal安装是否正常工作。如果上述操作不起作用(您仍然没有得到任何文件),请尝试首先在未安装Google驱动器的位置运行它。如果这样做有效,您就知道问题出在安装上。如果没有,下一

我正在尝试使用Colab上的gdal将一个巨大的tiff文件分割成瓷砖

我的谷歌硬盘已经安装,我可以读写

代码取自答案:

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

答案给出了一个建议:

您需要找到像素/线位置或角点坐标,然后使用
gdal\u translate
循环这些值

当然,这取决于
gdal
安装是否正常工作。如果上述操作不起作用(您仍然没有得到任何文件),请尝试首先在未安装Google驱动器的位置运行它。如果这样做有效,您就知道问题出在安装上。如果没有,下一步我将检查以确保您通过类似于
plt.imshow(您的源图像)
的方式获得所需的输入图像。如果看到图像,请继续。如果没有,则源映像丢失或路径错误


如果它仍然不起作用,我怀疑这是您的
gdal
安装有问题。在这种情况下,我将首先尝试一个非常简单的函数,并确保它给出了您期望的结果。您还可以尝试在Collab上运行其他功能,并确保其正常工作。

请共享一个独立的笔记本,其中会重现您观察到的问题。
com_string = "gdal_translate -of GTIFF -srcwin" + ...
os.system(com_string)
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)