QGISプラグインの開発(1)

この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。

ウィキペディアの情報をベクタレイヤに

QGISには数多くのプラグインが用意されており、それらをインストールして様々な機能拡張をすることができます。また、プラグイン開発のためのツールやAPI、ドキュメントも充実しています。
そこで、ウィキペディアの情報をDBpedia Japaneseから取得してベクタレイヤを作成する「PediaLayer」プラグインを開発することにします。

今回は、プラグインの概要を説明し、次回以降にプラグインの開発方法を解説します。
開発したプラグインはGitHubで公開しています。

プラグインのインストール

プラグインを簡単にインストールできるようにリポジトリを用意しましたので、プラグインの設定画面で追加します。

URLは

http://midoriit.com/qgis/plugins.xml

です。「実験的プラグインも表示する」にチェックを付けておきます。

プラグインの一覧の中に「PediaLayer」が表示されますので、選択してインストールします。

プラグインの実行
PediaLayerプラグインは、ウィキペディアの情報を取得する地理的範囲をベクタレイヤまたはラスタレイヤで指定します。そこで、あらかじめレイヤを読み込んでおきます。今回は、QGISによるデータ分析(2)で作成した横浜市のシェープファイルを用います。

プラグインをインストールすると「Web」メニューの中に「Pedia Layer」→「Create a layer from DBpedia」メニューが追加されますので、これを選択します。または、ツールバーにあるアイコンをクリックします。

ダイアログボックスが表示されますので、範囲を指定するレイヤを選択し、取得項目数(の最大値)を指定します。

[OK]ボタンをクリックすると、新たに「pedialayer」レイヤが追加されます。

ここでは、地物は緑色の点で表示されています。
pedialayerレイヤはメモリ上にあるので、QGISを終了するとデータは消失してしまいます。必要に応じてシェープファイルやGeoJSONなど任意の形式でファイルに保存します。

pedialayerレイヤの属性テーブルを見ると、ウィキペディアの記事項目名、記事のURL、概要説明文が属性として入っていることがわかります。

範囲の指定に横浜市のシェープファイルを使用しましたが、レイヤの緯度経度の最小値・最大値を用いて範囲をしてウィキペディアの情報を取得するため、実際には横浜市外の事物に関する項目も含まれています。

そこで、「ベクタ」→「空間演算ツール」→「交差…」でpedialayerレイヤと横浜市のシェープファイルの交差を取って新たに「yokohama_pedia」レイヤを作成します。

青い点で表示されたyokohama_pediaレイヤの地物はすべて横浜市内にあります。477個あった地物が300個になりました。
属性テーブルを見ると、横浜市のシェープファイルにあった行政区名などが、交差によって属性に追加されています。

そこで、Group Statsプラグインで行政区毎のウィキペディア記事数を集計してみると、以下のような結果になりました。

行政区によって、ウィキペディアに書かれた記事の数に随分差があることが分かります。
次回は、このプラグインの開発方法について解説します。

QGISプラグインの開発 12345