Guest User

Untitled

a guest
Nov 22nd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. """Post traitement des images radars
  2.  
  3. """
  4.  
  5. import os # manipulation de fichier/dossier
  6.  
  7. import gdal # manipulation de donnees raster
  8. import numpy as np # calcul numerique
  9.  
  10. # definition des repertoires d'entree et de sortie
  11.  
  12. in_dir = ""
  13. out_dir = ""
  14.  
  15. # liste des rasters a reprojeter
  16.  
  17. raster_list = [f for f in os.listdir(in_dir) if f.endswith('.tif')]
  18.  
  19. # iteration sur la liste de raster
  20.  
  21. for ras in raster_list:
  22. # Recuperation des donnees du raster
  23. # -----------------------------------
  24.  
  25. # ouverture du raster
  26. dataset = gdal.Open('{}/{}'.format(in_dir, ras))
  27.  
  28. # recuperation de la projection
  29. srs = dataset.GetProjectionRef()
  30.  
  31. # recuperation du nombre de pixel en X et Y
  32. xcnt = dataset.RasterXSize
  33. ycnt = dataset.RasterYSize
  34.  
  35. # ouverture de la bande 1
  36. # NB: un fichier raster peut contenir plusieurs bandes
  37. # une image radar n'en contient qu'une (dataset.RasterCount = 1)
  38.  
  39. band = dataset.GetRasterBand(1)
  40.  
  41. # recuperation de la valeur numerique des nodatas
  42. nodatavalue = band.GetNoDataValue()
  43.  
  44. # recuperation des donnees
  45. data = dataset.ReadAsArray().astype(np.float32)
  46.  
  47. # Donnees du raster a remplacer
  48. # ------------------------------
  49. # NB: ces donnees viennent des metadonnees excel
  50.  
  51. # Coordonnees du coin superieur gauche de l'image
  52. upper_left_x = -240000
  53. upper_left_y = 240000
  54.  
  55. # Taille des pixels
  56. px_width = 500
  57. px_height = -500
  58.  
  59. geoparams = [upper_left_x, px_width, 0, upper_left_y, 0, px_height]
  60.  
  61. # Creation d'un nouveau raster
  62. # -----------------------------
  63.  
  64. # recuperation du driver geotiff
  65. driver = gdal.GetDriverByName('GTiff')
  66.  
  67. # creation d'un raster geotiff
  68. outras = driver.Create('{}/{}'.format(out_dir, ras),
  69. ycnt, # nombre de ligne
  70. xcnt, # nombre de colonne
  71. gdal.GDT_Float32) # type de donnees (numeric float32)
  72.  
  73. # ecriture des nouveaux parametres
  74. outras.SetGeoTransform(geoparams)
  75.  
  76. # ecriture des donnees dans la bande 1
  77. outband = outras.GetRasterBand(1)
  78. outband.WriteArray(data)
  79.  
  80. # definition des nodatas
  81. outband.SetNoDataValue(nodatavalue)
  82.  
  83. # definition de la projection
  84. outras.SetProjection(srs)
  85.  
  86. # ecriture des donnees dans le fichier
  87. outband.FlushCache()
  88.  
  89. # fermeture
  90. del dataset, band, outras, outband
Add Comment
Please, Sign In to add comment