「標準的なバスフォーマット(GTFS-JP)」勉強会#1 参画

 「標準的なバスフォーマット/GTFS 勉強会」(https://gtfs-jp20190420study.peatix.com/)に参加してきました。GTFSは、バスなどの交通機関の停車場や時刻などの記述方法を定めたもので、このフォーマットで作成したファイルを Google駅すぱあと や 乗換案内 などの会社さんに提供することで活用されます。分かりやすいところでは、Googleの経路検索などでの活用で、例えば遅延情報や臨時便/迂回運行などの情報をGoogleにアップロードすることで、即座に検索結果に反映されるというフットワークの軽い情報提供が可能になります(事前の契約は必要)。
 バス事業者とCP(Contents provider)の間でクローズドにやりとりされるだけでなく、同じデータをオープンデータとして公開しているバス事業者さんも、まもなく100社にならんとする勢いで、岡山をはじめ全国に広がっているとの印象を受けています。

 「なんで私がバスデータの勉強会に!?」と自分でも不思議に思うのですが、話せば長く、書いても長いのですが、かいつまむと、MySQL 8.0 で位置情報について興味を持った→ジオ系(位置情報、地図、測量等)のイベントに参加してみた→バスロケのお話を聞いて面白そうだと思った→バスロケの勉強会に参加してみた(今年2月)→今回 という、面白い具合にご縁が繋がっての、今回の参加となった次第。


 前回参加したイベントは、どちらかというと実際にデータを提供するバス事業者さんが中心といった雰囲気のものでしたが、今回はIT系なトラックも設けるとのことで、色々聞かせてもらうのを楽しみに、参加を申込みました。
 ・・・・が、直前になって「LT枠に、まだアキがあるけど、何かやる?」とお誘いをいただき、この分野まったくの初心者であるにも関わらず、お話をさせていただきました。しかも、結構余裕がありそうだったので2枠やらせてもらうことになったり、その後結構埋まってきた様子だったり、しかも私の話、ぜんぜん5分に収まらなかったり、なんかすいません。(2本目、15分くらい喋ってましたよね(^^;))
 結構怖かったし、至らぬ部分も多くあった発表でしたが、聞いてくださった皆さんの反応も良く、色々教えていただいたりもして、とても良い経験をさせていただきました。ありがとうございました。私のトークについては、後述します。


 午後の実習コースでは、postgreSQLに入れたバスデータをQGISから参照して、あれこれ見栄えや表示条件を変更したりする方法を体験しました。この1年くらい、QGISを触りたいのにインストールすらしていない「やるやる詐欺」状態となっていましたが、こうして缶詰にされて、ようやく初インストール(笑)。数日前にメールで環境準備について連絡が来ていたのを私が見落としていて、あわててインストール(前夜にサイト上の案内は発見していたので、ソフトのダウンロードだけは済ませていたのは、我ながらナイスリカバリ)。
 今回触ったのは、おそらく機能の極極ほんの一部だと思いますが、点や線の集合であるDBデータを、手軽に視覚化できることに感心しました。これはすごい。
 人それぞれの環境の差や、ちょっとした操作ミスまたは抜けなどに起因すると思われるトラブルも結構多く、講師/運営 の皆さまとも大変そうでしたが、ひとつひとつフォローされていて、

 GTFS-JP v2 で加わった、バス運行リアルタイム情報(GTFS-RT)についても沢山の話を聞くことができ、いまひとつピンと来ていなかったGTFS-RTが少し身近になった気がしました。-RTは 独立したフォーマットだと思っていたのが私の勘違いで、GTFS-JP のデータがあってこその -RTである(具体的には、-RTからは -JPのほうで定義されているIDを参照するよとうこと)ことが、納得ポイントでした。

 そのまま会場で行われた懇親会でも、色々な方にバス運行を取り巻くお話から、データ整備の実情から、様々な武勇伝から、たくさんの話を聞かせていただいて、たいへん充実した一日でした。どうもありがとうございました!


 以下、私のトークについて:

「バス停の位置情報も格納できる!」MySQL 8.0 の紹介

www.slideshare.net

 GTFSには、バス停や経路をあらわすための位置情報(緯度、経度)が含まれています。しかも必須項目。こういった項目を RDBMSに格納するには、まぁ緯度と経度を別々のカラムにそれぞれ数字で持たせておいても良いのでしょうが、それだと活用がしにくい(距離計算とかたいへん)ので、普通は 「緯度+経度」として扱える専用の型を持ったカラムに格納したくなるものです。 こういった場合に、業界標準としては PostgreSQLPostGIS を追加して使用するのが一般的でした。 MySQLでは測地系を考慮した位置情報をこれまで扱えなかったからです。 しかし、2018年4月にリリースされた MySQL 8.0 では、ついに「ちゃんと丸い地球(つまりは測地系)に対応した」空間情報を扱えるようになりました。業界の方でもまだ知らないかたが多いので、その紹介と、今回はバリバリの業界人でない方も多いと伺っていたため、そもそもDBMSという役割を持ったソフトウェアがあるんですよ、という話も含めてみました。
 「MySQLで位置情報」という話に、ほぅ、と反応してくれる人がいて、「オモテからは見えないけど、データベースというソフトが裏側で頑張っているんですよ」の話に、へぇぇという顔でメモを取る方も多くいて、レベル設定としては良い感じにハマったのではないかな、と少し気分が良かったです。 面白かったのが、前者の話に反応する人は前のほうの席に、後者の話に反応したのが後ろ三分の一くらいに多かったのが印象的でした(笑)。
 まだまだ GIS 関係の、とくに集約や分析系の関数が不足しているMySQLですが、ぜひ今後の選択肢のひとつとしてお試しいただければと思います。

「なんじゃこりゃぁ」DB屋が見たGTFS-JPファーストインプレッション

www.slideshare.net
 GTFSのフォーマットを、DBのテーブルだと思って眺めた時に感じた違和感(カルチャーショック)を語らせていただきました。仕様書を眺めていて「なんじゃこりゃ」と思っていても、特に今まで誰と議論する機会もなく、そんな状態での発表でしたが、初々しく受け取っていただけたでしょうか。さすが何十ヶ月もこのフォーマットに触れてきた皆さん、私が感じた違和感は既にお考えでしたし、私が感じた問題は既に解決済でしたし、たいへん勉強になりました。
 これまで、なんとなく仕様書を眺めていて、なんとなく「へんなの」と思っていたものを、発表の機会をいただけたことで改めて真剣に読み込み、真剣に考えることができました。少しステップアップできた気がします。まだ理解不足なところが多いですが(料金関係は手つかず。TripとRouteの違いがよく分からない等)、少しずつ学んでいけたらと思います。




参考リンク:
www.mlit.go.jp


イベント中に紹介された書籍(同人誌):
 関係者の皆さんで作成し、先週の「技術書展」でも飛ぶように売れたという本。GTFSに興味を持ったなら必読!だと思う(たぶん)。私もこれから買うところなので(笑)。
booth.pm

f:id:sakaik:20190420094135j:plain