Modo pulito per annullare gli script di elaborazione QGIS dalla GUI


12

Ho scritto uno script di elaborazione QGIS che esegue un'analisi della struttura più vicina. Prendendo il set completo di dati di input (20k indirizzi come punti di partenza, ~ 100 target points, rete stradale OSM con ~ 13k linestrings) lo script dura circa 3 ore e quindi utilizza vari indicatori di progresso, per far capire all'utente che è ancora in vita (output del registro, barra di avanzamento, tempo rimanente, elastici indicano la via per la facilità più vicina appena elaborata, immagine di seguito cp.):

inserisci qui la descrizione dell'immagine

Ora vorrei annullare lo script in esecuzione e, per quanto posso vedere, questo può essere fatto solo con in [X]alto a destra nella finestra della GUI dello script di elaborazione.

Ma facendo così, lo script rimane elaborato come indicato dagli elastici blu, nonché dal tempo di elaborazione e dalla barra di avanzamento ...

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

... e le risorse di sistema nel task manager:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Tuttavia, un paio di minuti (~ 14min) più tardi sullo script interrompe l'elaborazione e il sistema non consuma più risorse:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Dal momento che il tempo che intercorre tra la chiusura della finestra e l'interruzione dell'elaborazione mi sembra abbastanza imprevedibile, la mia domanda è: è un modo consigliato per annullare gli script di elaborazione di QGIS o ci sono altri modi per cancellare in modo pulito tali script dalla GUI?


Sicuramente non è il modo migliore né più chiaro per farlo, ma in genere uccido letteralmente il processo dal Task Manager di Windows: questa azione ha come conseguenza la chiusura di QGIS, ma anche l'interruzione dello script e il risparmio delle risorse di sistema . Tuttavia, se vuoi avere un'idea del tempo rimanente, puoi impostare la barra di avanzamento in base all'iterazione sulle funzionalità (non so se questo è quello che vuoi).
mgri

Forse questo post potrebbe aiutare: come terminare correttamente gli script Python nel framework di elaborazione? . In particolare, utilizzando la risposta del gene sys.exitfunc().
Joseph,

Risposte:


2

Dalla shell dei comandi, "taskkill / f / im qgis-ltr-bin.exe / t" terminerebbe immediatamente il processo. Non penso che ci sia una soluzione gui, basata su quello che stai cercando però. In QGIS, se si desidera terminare il processo in modo pulito, è necessario attendere il programma al termine del processo. Ma tramite shell dei comandi questo ti permetterebbe di andare avanti subito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.