Suite

Problème Gdal Python : Bandes noires dans geotiff

Problème Gdal Python : Bandes noires dans geotiff


J'essaie d'utiliser l'API Python GDAL (2.0.0) dans Blender, mais j'ai quelques difficultés. J'essaye de sauvegarder les géotiffs pour :
- un tableau numpy 2D stockant des floats 32bits
- un tableau d'octets numpy RVB 3 canaux [0-255].
Lorsque je le fais en Python, j'obtiens deux tiffs (un en niveaux de gris que je peux ouvrir dans ImageJ, un RVB que je peux ouvrir avec n'importe quoi) correctement géo-référencement

Le problème est qu'ils ont des bandes noires, et il semble qu'ils ne soient pas au même endroit à chaque fois. Dans la console, j'ai plusieurs erreurs du type :

ERREUR 1 : TIFFFillStrip:/home/… /test.tif : nombre d'octets de bande non valide 0, bande 269…

Le fait est que si j'utilise le code ci-dessous pour enregistrer le tableau en niveaux de gris, j'obtiens une image correcte (non géoréférencée), donc je sais que le tableau de données est correct

arr_2D_uint8 = arr_2D.astype(gdalnumeric.uint8) gdalnumeric.SaveArray(arr_2D_uint8, chemin du fichier, format="GTiff")

Voici le code que j'utilise pour l'échelle de gris, qui est similaire pour l'image rgb :

srs = osr.SpatialReference() srs.ImportFromEPSG(epsg_code) driver = gdal.GetDriverByName('GTiff') ds = driver.Create(filepath, Nx, Ny, 1, gdal.GDT_Float32) ds.GetRasterBand(1).WriteArray( arr_2D.astype(gdalnumeric.float32)) ds.SetGeoTransform( (NW_x, lx, rx, NW_y, ry, -ly) ) # définit le tuple GeoTransform : en haut à gauche x, nous pixel résolution, rotation, en haut à gauche y, rotation, ns résolution en pixels ds.SetProjection(srs.ExportToWkt()) ds = Aucun

Et voici un exemple d'image :

ÉDITER : Est-ce que quelqu'un a le même problème ? J'ai maintenant exactement le même problème mais cette fois, j'essaie de charger un Geotiff. Je pense que cela peut provenir d'un problème de limitation de taille, car le geotiff que j'essaie de charger fait 3600 par 3000 pixels de large.

Pensez-vous que cela puisse être à l'origine du problème ? Sinon, quelqu'un a-t-il une explication ? N'hésitez pas si vous avez besoin de plus de descriptions.


J'ai finalement découvert que le problème ne se produit que sur l'une des deux machines sur lesquelles je peux l'exécuter. Sur un ordinateur Windows, les géotiff sont bien écrits, sans bandes noires. Sur l'ordinateur Ubuntu, le problème persiste.

Dans les deux cas, j'exécute la génération Geotiff Python GDal à partir d'un script Blender. Je n'ai peut-être pas correctement installé les wrappers GDAL Python dans le cas Ubuntu (dans le dossier des scripts de Blender), ou peut-être installé deux versions de gdal qui sont simultanées.

Merci pour ton aide,

Jonathan


Voir la vidéo: How to clip Raster image in Erdas Imaging