Advertisement
Guest User

scale_up_parallel.py

a guest
Mar 21st, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.86 KB | None | 0 0
  1. import sys
  2.  
  3. if (len(sys.argv) != 3):
  4.     print('Usage: '+sys.argv[0]+' geotiff_image.tif scale_factor')
  5.     sys.exit()
  6.  
  7. filename = sys.argv[1]
  8. scale_factor = int(sys.argv[2])
  9.  
  10. from osgeo import gdal
  11.  
  12. driver = gdal.GetDriverByName("GTiff")
  13. def save(data, name):
  14.     outData = driver.Create(name, data.shape[1], data.shape[0])
  15.     outData.GetRasterBand(1).WriteArray(data)
  16.  
  17. import dask.array as da
  18. def scale_up(data):
  19.     data = da.repeat(data, scale_factor, axis=0)
  20.     data = da.repeat(data, scale_factor, axis=1)
  21.     return data
  22.  
  23. from dask.distributed import Client
  24. client = Client(...)
  25. # будет использоваться по умолчанию для dask.array
  26.  
  27. data = gdal.Open(filename)
  28. data = data.ReadAsArray()
  29. data = da.from_array(data, (4000, 4000))
  30. data = scale_up(data)
  31. import numpy as np
  32. data = np.array(data)
  33. save(data, 'out_x'+str(scale_factor)+'.tif')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement