GUIからQGIS処理スクリプトをキャンセルするクリーンな方法


12

最寄り施設の分析を実行するQGIS処理スクリプトを作成しました。完全な入力データセット(開始点として20kのアドレス、〜100のターゲットポイント、〜13kのラインストリングを持つOSM道路網)を取得すると、スクリプトは約3時間実行されるため、さまざまな進行状況インジケーターを使用して、まだ生きている(ログ出力、プログレスバー、残り時間、処理されたばかりの最も近い施設への道を示すラバーバンド、cp。下のスクリーンショット):

ここに画像の説明を入力してください

次に、実行中のスクリプトをキャンセルしたいと思います。これは[X]、処理スクリプトguiウィンドウの右上でのみ実行できます。

しかし、そうすると、スクリプトは処理時間と進行状況バーだけでなく、青い輪ゴムで示されるように処理を続けます...

ここに画像の説明を入力してください

ここに画像の説明を入力してください

...およびタスクマネージャのシステムリソース:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ただし、スクリプトの数分(〜14分)後に処理が停止し、システムはリソースを消費しなくなります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ウィンドウを閉じてから処理を停止するまでの期間はかなり予測できないように思えるので、私の質問は、これはQGIS処理スクリプトをキャンセルする推奨方法ですか、GUIからそのようなスクリプトをきれいにキャンセルする他の方法はありますか?


最善でも明確な方法でもありませんが、通常、Windowsタスクマネージャーからプロセスを文字通り強制終了します。このアクションは、結果としてQGISを閉じるだけでなく、スクリプトの中断とシステムリソースの節約にもつながります。 。ただし、残りの時間を把握したい場合は、機能の反復に応じて進行状況バーを設定できます(これが目的かどうかはわかりません)。
mgri

おそらくこの投稿は役立つかもしれません:Processing frameworkでPythonスクリプトを適切に終了する方法は?。特に、を使用した遺伝子の答えsys.exitfunc()
ジョセフ

回答:


2

コマンドシェルから、「taskkill / f / im qgis-ltr-bin.exe / t」はプロセスをすぐに終了します。あなたが何のために行っているかに基づいて、GUIソリューションがあるとは思わない。QGISでは、プロセスを完全に終了したい場合、プロセスを終了するときにプログラムを待つ必要があります。ただし、コマンドシェルを使用すると、すぐに前に進むことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.