QGISのPythonコンソール

今回はQGISのPythonコンソールについて紹介します。

コンソールは、pythonのインタプリタ同様の動きです。1行のpythonのコードに対してレスポンスを返してくれるので、pythonやQGIS関数の動作チェックに便利なものです。

マウスで操作するより、コンソールでの操作が楽な場合もあります。


Pythonコンソールはメニューバー->プラグインにあります。
pycon

非常によく使うのでプラグインでショートカットを設定しています。
メニューバー->設定->ショートカット構成でも設定できます。

2.0以前は最低限の機能しかありませんでした。
今では、すごくPythonコンソールは使いやすくなりました。
pyconsole

左にあるアイコンの機能を順に紹介します。

1.コンソールのクリア
コマンドの履歴を消して見やすくできます。
表示上消えるだけで、厳密に履歴が消えてはいません。
矢印キー(↑↓)で前のコマンドを参照することはできます。

2.importの簡易化
PyQtとprocessingをボタン1つでインポートすることができます。
QGISの関数は大半インポートされています。

3.コマンド実行
入力しているコマンドを実行します。
Return・Enterでも実行できるので使うことはないです。

4.エディタ
pyediter
基本機能とプログラミング用の機能がついているエディタです。

  • 行番号クラス
  • 関数の開け閉め
  • コメントなどの色変更
  • オートコンプリート

などがついています。
QGISに存在しているので、書いたコードをすぐ試すができます。
プラグイン開発をQGISで完結することができます。

5.設定

pysetting
コンソール・エディタの設定ができます。

以上が簡単な機能紹介です。

 

最後に

コンソールを使用したほうが楽になる作業についてです。

作業は、多数のレイヤ・地物に対する作業です。
単体であるならマウスの操作の方が楽だからです。

再度やる可能性のある作業なら、プラグイン化したほうがもっと楽になります。
例えば、すべてのレイヤに縮尺による表示設定を有効する場合です。

legend_iface = iface.legendInterface()
layers = legend_iface.layers()
for layer in layers:
    layer.toggleScaleBasedVisibility(True)

このコードで表示設定を有効にできます。

ifaceとは、QgisInterfaceのインスタンスです。

iface.legendInterface()

レイヤビューに表示されているものの管理を行っているクラス(QgsLegendInterface)のインスタンスを取得します。

legend_iface.layers()

レイヤビューにあるすべてのレイヤ(QgsMapLayer)を取得しています。

layer.toggleScaleBasedVisibility(True)

レイヤの「縮尺に応じた表示設定」の有効無効を設定できます。
これをループさせることで、すべてのレイヤの縮尺表示を有効にしました。

 

QGISの関数についてはQGIS APIドキュメントに詳しいことは載っています。

C++のAPIドキュメントなので、Pythonで操作できないものがあります。

コメントを残す

メールアドレスが公開されることはありません。