Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Post traitement des images radars
- """
- import os # manipulation de fichier/dossier
- import gdal # manipulation de donnees raster
- import numpy as np # calcul numerique
- # definition des repertoires d'entree et de sortie
- in_dir = ""
- out_dir = ""
- # liste des rasters a reprojeter
- raster_list = [f for f in os.listdir(in_dir) if f.endswith('.tif')]
- # iteration sur la liste de raster
- for ras in raster_list:
- # Recuperation des donnees du raster
- # -----------------------------------
- # ouverture du raster
- dataset = gdal.Open('{}/{}'.format(in_dir, ras))
- # recuperation de la projection
- srs = dataset.GetProjectionRef()
- # recuperation du nombre de pixel en X et Y
- xcnt = dataset.RasterXSize
- ycnt = dataset.RasterYSize
- # ouverture de la bande 1
- # NB: un fichier raster peut contenir plusieurs bandes
- # une image radar n'en contient qu'une (dataset.RasterCount = 1)
- band = dataset.GetRasterBand(1)
- # recuperation de la valeur numerique des nodatas
- nodatavalue = band.GetNoDataValue()
- # recuperation des donnees
- data = dataset.ReadAsArray().astype(np.float32)
- # Donnees du raster a remplacer
- # ------------------------------
- # NB: ces donnees viennent des metadonnees excel
- # Coordonnees du coin superieur gauche de l'image
- upper_left_x = -240000
- upper_left_y = 240000
- # Taille des pixels
- px_width = 500
- px_height = -500
- geoparams = [upper_left_x, px_width, 0, upper_left_y, 0, px_height]
- # Creation d'un nouveau raster
- # -----------------------------
- # recuperation du driver geotiff
- driver = gdal.GetDriverByName('GTiff')
- # creation d'un raster geotiff
- outras = driver.Create('{}/{}'.format(out_dir, ras),
- ycnt, # nombre de ligne
- xcnt, # nombre de colonne
- gdal.GDT_Float32) # type de donnees (numeric float32)
- # ecriture des nouveaux parametres
- outras.SetGeoTransform(geoparams)
- # ecriture des donnees dans la bande 1
- outband = outras.GetRasterBand(1)
- outband.WriteArray(data)
- # definition des nodatas
- outband.SetNoDataValue(nodatavalue)
- # definition de la projection
- outras.SetProjection(srs)
- # ecriture des donnees dans le fichier
- outband.FlushCache()
- # fermeture
- del dataset, band, outras, outband
Add Comment
Please, Sign In to add comment