QGISのpythonコンソールの使って、ベクタレイヤーの読み込みを行う。
この記事では、pythonによるQGISのベクタレイヤーを読み込む方法を紹介したいと思います。
pythonコンソールの場所や使い方についてはこちらの記事で紹介しています。
画像データ、ラスターデータについてはこちらの記事で紹介しています。
pythonを使ってベクタレイヤーの読み込みを行う。
では、早速pythonを使ってQGIS上にベクタレイヤーの読み込みを行ってみましょう。
まずは、作業をしやすいようにテキストエディタを立ち上げるとよいと思います。
エディタの場所は以下になります。押すテキストエディタが立ち上がります。
1つのデータを読み込む
テキストエディタに以下のコードを入力するとレイヤーファイルを読み込むことができます。変数は、どのように使われるかをなんとなく書いているので、実際は短くわかりやすいものが見やすく良いと思います(例えば「yomikomu_layer_url」等)。
#必要なモジュールをインポート
import os
from qgis.core import QgsProject, QgsVectorLayer
#読み込むファイルのURLを指定し変数に定義
yomikomu_layer_url = r"C:\python\point.shp"
#QgsVectorLayer(先ほど作成した変数, "レイヤー名をわかりやすいように入力", ogrドライバーを使用)
yomikomu_layer = QgsVectorLayer(yomikomu_layer_url, "レイヤー名", "ogr")
#ベクターレイヤーをマップに追加
QgsProject.instance().addMapLayer(yomikomu_layer)
レイヤーを読み込むだけでは手で作業した方が早いですが、これから様々な処理を行う上で利用することもあると思います。
いくつかのデータを読み込む
いくつかのデータを読み込む場合は色々方法はあると思います。
この記事ではglobでリストを取得しfor文で処理を行って、ベクタレイヤーを追加します。
#必要なモジュールをインポート
import os
from qgis.core import QgsProject, QgsVectorLayer
import glob
#読み込むファイルのURLを指定し変数に定義[リスト]
yomikomu_layer_url_list = glob.glob(r"C:\python\\" + "*.shp")
#リスト内のデータに関して以下のコードを実行
for yomikomu_layer in yomikomu_layer_url_list:
#レイヤー名をファイル名にする変数を定義
layermei = os.path.splitext(os.path.basename(yomikomu_layer))[0]
#QgsVectorLayer(先ほど作成した変数, "レイヤー名の変数", ogrドライバーを使用)
yomikomu_layer = QgsVectorLayer(yomikomu_layer, layermei,"ogr")
#ベクターレイヤーをマップに追加
QgsProject.instance().addMapLayer(yomikomu_layer)
最後にまとめ
この記事では、pythonコンソールを使用したレイヤーデータの読み込みを紹介しました。この処理ができるとこの後の様々な処理をpythonによって行うことができるようになるので、利用できるようになると面倒な処理を自動化したり、便利になるのでぜひ参考にしていただければと思います。
- globでファイル名を取得し、for文で処理するといくつかのファイルを一度に読み込める。
- pythonコンソールを使用したベクタレイヤーデータの読み込みができるとその後の様々な処理に使える。