Advertisement
Guest User

split.py

a guest
Mar 17th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. import sys
  2.  
  3. if (len(sys.argv) != 3):
  4.     print('Usage: '+sys.argv[0]+' geotiff_image.tif block_size')
  5.     sys.exit()
  6.  
  7. filename = sys.argv[1]
  8. block_size = int(sys.argv[2])
  9.  
  10. from osgeo import gdal
  11.  
  12. driver = gdal.GetDriverByName("GTiff")
  13. def save(block, name):
  14.     outData = driver.Create(name, block.shape[1], block.shape[0])
  15.     outData.GetRasterBand(1).WriteArray(block)
  16.  
  17. data = gdal.Open(filename)
  18. # print(data.RasterCount, data.RasterXSize, data.RasterYSize)
  19. from math import ceil
  20. n = int(ceil(data.RasterYSize / block_size))
  21. m = int(ceil(data.RasterXSize / block_size))
  22. for i in range(n):
  23.     for j in range(m):
  24.         x = i * block_size
  25.         y = j * block_size
  26.         w = min(block_size, data.RasterXSize - x)
  27.         h = min(block_size, data.RasterYSize - y)
  28.         block = data.ReadAsArray(x, y, w, h)
  29.         save(block, 'out'+'_'+str(j)+'_'+str(i)+'.tif')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement