最寄り施設の分析を実行するQGIS処理スクリプトを作成しました。完全な入力データセット(開始点として20kのアドレス、〜100のターゲットポイント、〜13kのラインストリングを持つOSM道路網)を取得すると、スクリプトは約3時間実行されるため、さまざまな進行状況インジケーターを使用して、まだ生きている(ログ出力、プログレスバー、残り時間、処理されたばかりの最も近い施設への道を示すラバーバンド、cp。下のスクリーンショット):
次に、実行中のスクリプトをキャンセルしたいと思います。これは[X]
、処理スクリプトguiウィンドウの右上でのみ実行できます。
しかし、そうすると、スクリプトは処理時間と進行状況バーだけでなく、青い輪ゴムで示されるように処理を続けます...
...およびタスクマネージャのシステムリソース:
ただし、スクリプトの数分(〜14分)後に処理が停止し、システムはリソースを消費しなくなります。
ウィンドウを閉じてから処理を停止するまでの期間はかなり予測できないように思えるので、私の質問は、これはQGIS処理スクリプトをキャンセルする推奨方法ですか、GUIからそのようなスクリプトをきれいにキャンセルする他の方法はありますか?
最善でも明確な方法でもありませんが、通常、Windowsタスクマネージャーからプロセスを文字通り強制終了します。このアクションは、結果としてQGISを閉じるだけでなく、スクリプトの中断とシステムリソースの節約にもつながります。 。ただし、残りの時間を把握したい場合は、機能の反復に応じて進行状況バーを設定できます(これが目的かどうかはわかりません)。
—
mgri
おそらくこの投稿は役立つかもしれません:Processing frameworkでPythonスクリプトを適切に終了する方法は?。特に、を使用した遺伝子の答え
—
ジョセフ
sys.exitfunc()
。