#1 Wed 24 May 2023 12:26
- nico-29
- Participant assidu
- Lieu: Brest
- Date d'inscription: 2 Jun 2006
- Messages: 186
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


