Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. # Принимаем, что у нас уже есть все матрицы lats, lons, div, ...
  2. # Покажем, как через GCPs сохранить матрицу div в geotiff
  3.  
  4. import gdal, osr
  5.  
  6. # Готовим GCPs
  7.  
  8. gcps = []
  9.  
  10. for i in range (0,div.shape[0]):
  11.     for j in range(0,div.shape[1]):
  12.         gcps.append(gdal.GCP(lons[i,j], lats[i,j], 0, i, j))
  13.  
  14. # Определяем систему координат GCPS как WGS84
  15. gcp_srs = osr.SpatialReference()
  16. gcp_srs.ImportFromEPSG(4326)
  17. gcp_wkt = gcp_srs.ExportToWkt()
  18.  
  19. # Создаём временный gdal-датасет в памяти
  20. driver = gdal.GetDriverByName("MEM")
  21. dataType = gdal.GDT_Float32
  22. dataset = driver.Create('', div.shape[1], div.shape[0], 1, dataType)
  23.  
  24. # Пишем в него нужную матрицу
  25. dataset.GetRasterBand(1).WriteArray(div)
  26.  
  27. # Устанавлиаем GCPs
  28. dataset.SetGCPs(gcps, gcp_wkt)
  29.  
  30. # Проецируем в нормальный вид (переход от GCP к проецированному растру)
  31. gdal.Warp('output.tif',dataset)
  32.  
  33. # Можно сразу в этой же команде задать проекцию, другие размеры пикселя и т.д., напр.
  34. # gdal.Warp('output.tif',dataset,xRes=...,yRes=...,dstSRS=...)
  35.  
  36. del dataset
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement