[MaaStep] 作成したGTFSフィードの整合性チェック
2019-06-20
azblob://2022/11/11/eyecatch/2019-06-20-maastep-validate-gtfs-feed-000.jpg

こんにちは、人力でGTFSを作ってまともに動かずしんどくなってる石川です。今回は作成したGTFSの整合性が取れているか確認をしようと思います。

GTFS?

GTFSについてはこちらの記事で詳しく触れてます。

何に使うんじゃい!って方は合わせてこちら

整合性?

GTFSはtxtファイルですが各ファイル内のID等々でリレーションが張ってあります。一つ例を挙げるなら事業者情報と経路情報で、「どの経路をどの事業者が運営しているか」という感じになっています。

なぜチェックすんの?

GTFSですが、人力で作成しているためミスがデータの中に含まれてることが多々あります。リレーションや時系列で異常な値があるとファイルとして出来上がっていてもOpen Trip Plannerへ読み込ませたとき動作しないといったことが起きます。

自前でツールを作ったりしてしんどくなりながら作ったファイルが動かないなんてありえないので動くように検証と修正をしなきゃいけないわけです。

チェック

では早速やっていきましょう。

Googleが公開しているFeedValidatorというツールを使います。

latestだとWindows版のバイナリが置かれてないことがあるので一個前くらいのリリースを確認してDLします。

この画像だと transitfeed-windows-binary-1.2.15.zip ですね。DLして展開しましょう。

展開したら feedvalidator.exe を起動します。起動すると

Enter Feed Location:

という表示がコマンドラインに表示されるのでGTFSファイルをD&Dしてあげます。

Enter Feed Location: C:\kintetsu.zip

ここでファイルのパスに2バイト文字が入っているとエラーが起きて動作しないので注意です。

30分くらい溶けました。かなしい。

パスが表示されてるのを確認したらEnterキーを押すと検証が走ります。

GTFS validation results for feed:
C:\kintetsu.zip
FeedValidator extension used: None 

Agencies:	近鉄
Routes:	1
Stops:	20
Trips:	198
Shapes:	0
Effective:	January 01, 2017 to January 01, 2050

During the upcoming service dates Thu Jun 20 to Sun Aug 18:
Average trips per date:	99
Most trips on a date:	100, on 42 service dates (Thu Jun 20, Fri Jun 21, Mon Jun 24, ...)
Least trips on a date:	98, on 18 service dates (Sat Jun 22, Sun Jun 23, Sat Jun 29, ...)

Found this problem:
1 warning
1	No Service Exceptions

検証が完了するとhtmlファイルを吐き出してそれを自動で開いてくれます。まあいきなりブラウザが立ち上がって結果がバーンと表示される感じです。

何か問題があるとFound this problem: と書かれた下のほうにエラー情報を書き出して教えてくれます。初めて使ったときは20件くらい出て真顔になりました。

一番多かったのがstop_times.txtの時系列エラーでした。15時03分発の次が12時05分着になってたり、みたいな。時空を超えちゃってたりするとツールが教えてくれます。べんり。

無事

validatorを発見してからエラーを潰せて無事Open Trip Plannerでも乗り換え案内を出してもらえました。Googleに

???圧倒的感謝???

それでは。