google-colaboratory - Colab - 使用 GDAL 拆分大 tiff 文件
问题描述
我正在尝试使用 Colab 上的 gdal 将一个巨大的 tiff 文件拆分为图块。
我的谷歌驱动器已安装,我可以读取和写入它。
代码取自这个答案:
com_string = "gdal_translate -of GTIFF -srcwin" + ...
os.system(com_string)
单元完成,但驱动器上没有显示新文件。任何想法或其他方式来实现文件的拆分?
解决方案
这个答案给出了一个建议:
您需要提出像素/线位置或角坐标,然后使用
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 上运行其他东西并确保它有效。
推荐阅读
- android - 有价值的库存:抓取的内容(Admob)
- .htaccess - 如何为完整字符串指定 htaccess 规则?
- visual-studio-code - 我可以交互更改上下文菜单中的标签吗?VSCode
- c++ - 如何在保持其顺序的同时对点云进行下采样?(PCL C++)
- autodesk-navisworks - 在没有 Navisworks 的情况下编辑 .nwd 中包含的数据
- gitlab-ci - 来自守护进程的错误响应:gitlab ci 中的链接格式错误
- time-complexity - 多个嵌套循环的时间复杂度
- ios - iOS:解析 DNS SRV 记录
- python - Statsmodel MN Logit 回归完成,退出代码为 -1066598273
- php - 如何从 laravel 的数据库表列中获取日期和时间?