Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 24 May 2023 12:26

nico-29
Participant assidu
Lieu: Brest
Date d'inscription: 2 Jun 2006
Messages: 185

QGIS/PyQGIS - chargement d'un raster mémoire

Bonjour,

A partir de mes données (raster HDF5), je crée un Geotiff en mémoire, et je veux l'afficher. Voici le code :

Code:

driver = gdal.GetDriverByName('MEM')
dataset_mem = driver.Create('/vsimem/imagetst.tif', cols, rows, 1, gdal.GDT_Float32)
dataset_mem.SetGeoTransform(geotransform)
dataset_mem.SetProjection(srs.ExportToWkt())
dataset_mem.GetRasterBand(1).WriteArray(ds.GetRasterBand(1).ReadAsArray())

rasterLyr = QgsRasterLayer('/vsimem/imagetst.tif', 'monlayer')
QgsProject.instance().addMapLayer(rasterLyr, True)

Dans le navigateur de couches, j'ai un nouveau layer, mais avec le message :

Code:

Couche inutilisable !  La source de données de la couche n'a pas pu être trouvée.

Pourtant mes données sont correctes : si j'utilise un driver de type GTiff et que je crée un fichier geotiff, quand j'ouvre à la main ce fichier geotiff dans QGIS, ça fonctionne.

Qu'est ce qui cloche ?

une hypothèse : lorsque j'ouvre avec pyqgis le fichier geotiff mémoire, celui-ci n'est pas encore fini de créer, et donc la source est invalide. Si c'est ça, comment dire à QGIS d'attendre que le fichier soit fini de créer pour le charger?


Merci,
Nico

Hors ligne

 

Pied de page des forums

Powered by FluxBB