#google-colaboratory #tiff #gdal
#google-совместная лаборатория #tiff #gdal
Вопрос:
Я пытаюсь разделить огромный файл tiff на плитки, используя gdal на Colab.
Мой Google Диск смонтирован, и я могу читать и записывать с него / в него.
Код взят из этого ответа:
com_string = "gdal_translate -of GTIFF -srcwin" ...
os.system(com_string)
Ячейка завершается, но на диске не отображаются новые файлы.
Есть идеи или другой способ добиться разделения файла?
Комментарии:
1. Пожалуйста, поделитесь автономной записной книжкой, которая воспроизводит проблему, которую вы наблюдаете.
Ответ №1:
Этот ответ дает предложение:
Вам нужно будет указать местоположения пикселей / линий или угловые координаты, а затем перебирать значения с помощью
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 Диском. Если это работает, вы знаете, что проблема в вашем монтаже. Если нет, то затем я бы проверил, получаете ли вы ожидаемое входное изображение с чем-то вроде plt.imshow(your_source_image)
. Если вы видите изображение, то двигайтесь дальше. Если нет, то ваше исходное изображение либо отсутствует, либо путь указан неверно.
Если это все еще не работает, я подозреваю, что это проблема с вашей gdal
установкой. В этом случае я бы сначала попробовал очень простую функцию и убедился, что она дает ожидаемый результат. Вы также можете попробовать запустить что-то еще в Collab и убедиться, что это работает.