On Fri, 12 Mar 2021 at 07:26, C Hamilton <adenacult...@gmail.com> wrote: > > For one of my QIGS processing algorithms I have a destination folder, > QgsProcessingParameterFolderDestination, where one or more GeoTIFF images are > created. Once these images are created, how do I load them so that they > display in QGIS from the "processAlgorithm" method? I had thought that this > might work where I would iterate through each image created?
Definitely DON'T do this in the processAlgorithm method if your algorithm is running in a background thread. It's not thread safe to add layers to the main project from a background thread. You could do it in a postProcessAlgorithm override though, as that is guaranteed to run in the main thread. Just be ultra-cautious not to store a layer created on the background thread and then try to access this from postProcessAlgorithm -- layers have thread affinity to the thread which created them, and can't just be accessed from any other thread. To be safe you should always create a new layer from the desired uri instead. > path = path_to_the_image > rlayer = QgsRasterLayer(path, name_of_image) > QgsProject.instance().addMapLayer(rlayer, True) also note that you should use context.project() instead of QgsProject.instance() whenever you are accessing the project from a processing algorithm -- this will ensure your algorithm works correctly from the command line qgis_process tool! Nyall _______________________________________________ Qgis-user mailing list Qgis-user@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-user Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user