Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
19
Help us understand the problem. What are the problem?
@Kanahiro

QGISと「GTFS-GO」でGTFSを可視化しよう!

GTFS_GO.gif

はじめに

スクリーンショット 2020-12-09 21.23.30.png

GTFSとは?

General Transit Feed Specification / Wikipedia

正式名称を直訳するなら「交通情報全般の規格」でしょうか、その名のとおり、公共交通機関の時刻表や地理的情報に関するオープンフォーマットです。

昨今のオープンデータ界隈において、GTFSは最もホットな話題のひとつでしょう。GTFSを国内向けに拡張したGTFS-JPが定義されて以降、バス事業者をはじめとした多くの方々の手によりGTFSデータが整備され、オープンデータとして公開されています。

利用上の課題

GTFSデータは機械判読性は高いですが、可視化は容易ではなく使えるツールが限られています(ツール例:https://tshimada291.sakura.ne.jp/transport/gtfs-viewer/)。また、可視化出来ても活用しやすい土壌があるとは言えませんでした。

そこで、みんなだいすきQGIS上で可視化できれば、色々なデータやプロセッシングを組み合わせてデータ分析したり、スタイルなど調整して路線図を作ったり出来てとても楽しいのではないか!ということで、QGISプラグイン開発を得意とするMIERUNEならではのプロダクトとして制作し、オープンソースで公開しました。

もくじ

GTFS-GO

GitHub: https://github.com/MIERUNE/GTFS-GO
QGIS-Plugin-Repo: https://plugins.qgis.org/plugins/GTFS-GO-master/

使用例

まいどはやバス(富山県富山市)

ss2.png

コミュニティバス(大分県中津市)

ss5.png

拓殖バス(北海道帯広市)×人口メッシュ(国土数値情報)

ss4.png

ライセンス

  • GPL-2
  • ただしGTFS解析モジュールはMIT

インストール

公式リポジトリに登録済みなので、QGIS上でインストールする事が出来ます。

  • 「プラグインの管理とインストール」をクリック

スクリーンショット 2020-12-09 21.09.08.png

  • GTFSと入力するといくつか候補が出てくるので「GTFS-GO」を選択して「インストール」をクリック

スクリーンショット 2020-12-09 21.08.29.png

  • インストールに成功すると、メニューバーおよびパネルに、下記画像のようにアイコンが追加されます。

スクリーンショット 2020-12-09 20.58.11.png

これらをクリックするとメインウィンドウが表示されます。

スクリーンショット 2020-12-09 14.53.59.png

使い方

GTFSデータと出力先を選択

手元に保存済のZIPファイルを読み込ませるか、プリセットのURLからダウンロードするか、いずれかの方法でGTFSデータを解析することができます。

ZIPファイルを読み込ませる場合

「---zipファイルから読み込み---」を選択すると、直下のファイル選択が有効になるので、任意のGTFS-ZIPファイルを指定してください。

スクリーンショット 2020-12-09 14.54.25.png

プリセットのデータをダウンロードして読み込ませる場合

プルダウン内には、gtfs_go_datalist.json(後述)にて定義されたデータが存在します。それを選択して処理を実行すると、インターネット上のオープンデータを直接ダウンロードしてから解析します。

スクリーンショット 2020-12-09 14.54.38.png

また、指定したフォルダ内に、GTFSをパースしたデータであるstops.geojsonおよびroutes.geojsonを格納したフォルダが生成されます。

処理の実行

「QGISに読み込み」ボタンを押下すると処理がスタートします。解析(およびダウンロード)には、対象のGTFSデータの規模に比例した時間がかかります。

スクリーンショット 2020-12-09 14.54.49.png

完了後、自動的にプロジェクトにレイヤーが追加されます。

スクリーンショット 2020-12-09 14.56.15.png

指定フォルダに、GeoJSONファイルを含むフォルダが生成されます。

スクリーンショット 2020-12-09 14.58.38.png

オプション

shapes.txtを無視する

GTFSにおいて、走行ルートを示すshapes.txtは任意のデータなので、存在しない場合は停留所間を直線で接続してルートを疑似的に描画します。shapes.txtが存在すれば、そのデータを用いてルートを描画しますが、このオプションにチェックを入れると、データを存在しないものとして扱います(停留所同士を接続します)。

  • チェックがない場合(shapes.txtをもとに描画)

スクリーンショット 2020-12-09 15.02.04.png

  • チェックがある場合(停留所間を接続)

スクリーンショット 2020-12-09 15.01.45.png

経路を持たないstopsを無視する

stops.txtには、経路と紐づかない停留所データが含まれる事があります(往・復路の停留所の重心が含まれていることがよくある)。使い道によっては必ずしも必要なデータではない事から、このオプションにチェックを入れることで、そういった停留所は無視して解析する事ができます。

  • チェックがない場合

ss6.png

  • チェックがある場合(経路を持たない停留所データをスキップ)

ss7.png

gtfs_go_datalist.jsonについて

プラグインフォルダ内にあるJSONファイルを編集する事で、プリセットデータを変更する事が出来ます。以下のようなシンプルなスキーマとなっておりますので、お好みに編集する事が可能です。

[
    {
        "region": "北海道",
        "name": "北海道拓殖バス(一般路線バス・各町コミュニティバス)",
        "url": "https://www.takubus.com/app/download/10941479479/GTFS_regular_line.zip?t=1606785205"
    },
    // 以下略
]

オープンソースプロジェクトとして

  • このプラグインはオープンソースです、使用された皆さんからフィードバックなどをいただきながら、機能の追加・改善を行っていく予定です
  • 不具合や要望などありましたらIssueにいただけますとスムーズです
  • プロジェクト全体はGPL-2ですが、GTFSをパースするモジュールはMITライセンスです

終わりに

弊社はこういったQGISの追加機能開発を得意としており、これまで多くのお客様の多様なニーズに沿った機能を受注・開発してきております。もしご興味がございましたら、弊社ウェブサイトよりご気軽にお問い合わせくださいませ。

また本記事のスクリーンショットの背景でも活用している、地図配信サービスMapTilerを日本向けに展開しております。他社に比べ圧倒的に高いコストパフォーマンスでベクタータイル含む高品質な地図データを利用する事が出来ます。詳細はMapTiler.jpからどうぞ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
19
Help us understand the problem. What are the problem?