Ich entwickle ein PyQGIS-Plugin mit Python. Ich habe ein Problem bei der Implementierung des Threadings in meinem Plugin. Ich habe ein Python-Skript geschrieben, das eine Klasse enthält, die alle verwendeten Geoverarbeitungsmethoden umschließt. Das Problem, mit dem ich konfrontiert bin, ist die Verarbeitung der Methoden in Threads. Um ein besseres Bild meines Problems zu erhalten, habe ich eine Benutzeroberfläche, die die Methode calcNDVI()
wie folgt aufruft :
self.lst.calcNDVI(self.RedBand, self.NIRBand, None, self.outputRaster, self.sensorType, self.dataType, self.addToQGIS)
Dieser Funktionsaufruf ruft eine calcNDVI () -Methode auf, die die ganze Magie ausführt und das Ergebnis einem QGIS-Projekt hinzufügt. Der Methodenaufruf ist auch mit der Übergabe einiger Argumente verbunden.
Ich habe viele Quellen durchgesehen, kann aber nicht verstehen, wie ich meine Algorithmen in einem Thread implementieren kann. Der Code, den ich durchlaufen habe, implementiert alles in der Ausführungsmethode, was es für mich schwierig macht, da in meiner Klasse mehr als eine Methode verarbeitet werden muss, und ich möchte auch, dass der Benutzer auswählen kann, welche Methode ausgeführt werden soll die Benutzeroberfläche.
Ich verarbeite Landsat-Datensätze, deren Verarbeitung zu lange dauert.