2025年1月14日火曜日

QGIS Pythonコンソールの使用

 Using the QGIS Python Console


Although a little late, I found out that QGIS has a Python console and can use Python scripts, so I tried using it. It seems that tasks that are difficult to do manually on the screen can be efficiently performed with Python scripts.


遅ればせながら、QGISにPythonコンソールがあり、Pythonスクリプトが使えることを知り、使ってみました。画面における手作業では難儀な作業を、Pythonスクリプトで効率的に実施できるようです。

1 Pythonスクリプト例(四角ポリゴン描画)

ChatGPT支援により作成した、プロジェクトCRSがEPSG6677で設定されているQGISで(-2000,0) (4000,0) (4000,-2000) (-2000,-2000)を頂点とする四角ポリゴンを描くPythonスクリプト。

from qgis.core import (
    QgsVectorLayer, QgsFeature, QgsGeometry, QgsPointXY, QgsProject, QgsField
)
from PyQt5.QtCore import QVariant

# プロジェクトCRSをEPSG:6677に設定(任意。既に設定されている場合は不要)
project = QgsProject.instance()
project.setCrs(QgsCoordinateReferenceSystem("EPSG:6677"))

# 空のポリゴンレイヤーを作成
layer_name = "Polygon Layer"
layer = QgsVectorLayer("Polygon?crs=EPSG:6677", layer_name, "memory")
layer_provider = layer.dataProvider()
layer_provider.addAttributes([QgsField("id", QVariant.Int)])
layer.updateFields()

# 四角形の座標を定義
coordinates = [
    (-2000, 0),
    (4000, 0),
    (4000, -2000),
    (-2000, -2000),
    (-2000, 0)  # ポリゴンを閉じるために始点を再度追加
]

# ポリゴンジオメトリを作成
points = [QgsPointXY(x, y) for x, y in coordinates]
polygon = QgsGeometry.fromPolygonXY([points])

# フィーチャを作成してポリゴンを設定
feature = QgsFeature()
feature.setGeometry(polygon)
feature.setAttributes([1])  # IDフィールドの値を1に設定
layer_provider.addFeature(feature)
layer.updateExtents()

# レイヤーをプロジェクトに追加
QgsProject.instance().addMapLayer(layer)

print(f"'{layer_name}' レイヤーが作成され、四角形ポリゴンが追加されました。")

2 QGISのPythonコンソール


QGISのPythonコンソール

Pythonコンソールはプラグイン→Pythonコンソールで開くことができます。

3 四角ポリゴン描画結果


四角ポリゴン描画結果

水色部分が四角ポリゴン描画結果です。描画後、確認のために半透明にしてあります。

4 感想

Pythonスクリプトを利用することにより、QGIS画面における手作業で単調な連続作業など難儀な作業を、Pythonスクリプトで効率的に実施できる可能性があることを確認しました。BlenderにおけるPythonコンソールとほぼ同じ感覚で使えそうです。

Pythonスクリプトの活用はこれまでBlender、Excel、Windows(explorer)、text、自作ツールでしたが、これにQGISが加わりました。


0 件のコメント:

コメントを投稿