#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