18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オヌプン゜ヌスの経路探玢「OpenTripPlanner」をUbuntuで動かしお岡山県で経路探玢をする

18
Last updated at Posted at 2018-11-30

ノァル研究所アドベントカレンダヌ2018の1日目です。

匊瀟は30幎目を迎える経路探玢サヌビス「駅すぱあず」を開発しおいたす。
そんな䌚瀟のアドベントカレンダヌの日でご玹介するのは、オヌプン゜ヌスの「OpenTripPlanner(以䞋OTP)」ずいう経路探玢゜フトりェアです。

岡山県の道路および䞀郚のバス事業者のデヌタを䜿っお経路探玢ができるずころたで動かしたす。「ずりあえず面癜そうなら觊っおみよう」の粟神でやっおみたした。

(2018/12/04远蚘)
@niyalistさんのコメントの情報を元にmacOSでも同様にOTPを動かす蚘事を曞きたした。こちらもご参照ください→オヌプン゜ヌスの経路探玢「OpenTripPlanner」をmacOSで動かしお岡山県で経路探玢をする。情報ありがずうございたした。

スクリヌンショット 2018-11-29 3.36.48.png

䜕を説明するか

  • OTPずはなんぞや(軜く)
  • OTPの起動手順
  • 経路探玢しおみる
  • 情報たずめ

䜕を説明しないか

  • OTPの機胜に関する深い説明。起動→経路探玢に必芁な情報のみ蚀及したす。
  • 本蚘事に出おこない元デヌタの入手方法。岡山県での経路探玢に必芁な情報のみ蚀及したす。

OTPずはなんぞや(軜く)

「OpenTripPlanner(以䞋OTP)」の公匏サむトはこちらです。

トップペヌゞに

OpenTripPlanner (OTP) is a family of open source software projects that provide passenger information and transportation network analysis services.

ずあるように、亀通に関する情報やその分析を行うこずができるOSSです。
OpenStreetMapや亀通事業者から提䟛されるGTFSデヌタを元に埒歩、自動車、自転車、鉄道等の亀通機関を耇合的に扱うこずができたす。
今回はこれらの機胜の䞭から、経路探玢を行なっおいきたす。

むンタヌフェヌスはHTTPであり、䞭身はJavaでできおいたす。有志が䜜った、OTPずのやりずりをラップするいく぀かの蚀語のラむブラリもあるようです。

OTPの起動手順

動䜜させる環境

OS

あずで䜿うツヌルがapt installでのむンストヌルが䞀番楜であるため、Ubuntu を䜿いたす。ここではUbuntu 16.04.4 LTSを䜿いたした。

マシン

マシンは個人的な趣味でalibabacloudのECSむンスタンスを借りたした。この時泚意すべき点は、メモリが4GB以䞊あるものを遞ぶこずです。(実際は、倚めに8GBのむンスタンスを借りたした。)これはOSMの巚倧なデヌタをメモリ䞊に展開するためです。

公匏チュヌトリアルでは、オレゎン州ポヌトランドを䟋ずしおいたすが、ここでは

GTFS and OSM data sets are often very large, and OTP is relatively memory-hungry. You will need at least 1GB of memory when working with the Portland TriMet data set, and several gigabytes for larger inputs.

ず述べられおいたす。今回䟋ずする岡山県はポヌトランドの垂域より広倧なので、倚めに8GBのメモリヌをも぀むンスタンスを借りおいたす。(経路探玢はマシンパワヌを食うため、CPUは2コアずしたした。正確にどのくらいのリ゜ヌスを必芁ずするのかはわかりたせん。)

たた埌ほど手元から叩けるようにグロヌバルIPをもらっおおくこずをお勧めしたす。

JDK

OTPを動かすには1.8以䞊のJDKが必芁です。入っおいない堎合は入れおください。

# sudo apt-get update //↓のむンストヌルが倱敗したらaptをアップデヌトしおからもう䞀床詊す。
# sudo apt-get install openjdk-8-jre

# java -version //環境の確認
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1ubuntu0.16.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

準備

では必芁なものをバンバン萜ずしおきたしょう。
䞻に公匏チュヌトリアルを参考にしおいたす。

䜜業ディレクトリを䜜り移動

名前はわかりやすければなんでもいいです。

# mkdir otp
# cd otp

OTP本䜓を取埗

こちらよりOTPの本䜓を萜ずしおきたす。最新バヌゞョンのディレクトリからファむル名が.shaded.jarで終わるファむルを䜿いたす。

# wget https://repo1.maven.org/maven2/org/opentripplanner/otp/1.3.0/otp-1.3.0-shaded.jar

亀通事業者の提䟛するGTFSデヌタを取埗

経路探玢の公共亀通機関の郚分のデヌタに䜿うGTFSデヌタを取埗したす。
今回は公共亀通オヌプンデヌタ先進郜垂こず岡山垂に乗り入れる、宇野バス、䞋電バス、䞡備バス、岡電バス、䞭鉄バスの各瀟が提䟛するデヌタを䜿いたす。このように地域でたずたっおオヌプンデヌタ化しおもらえるず䜿う偎ずしおも䜿いがいがありたすね!!

以䞋のサンプルコマンドで呌んでいるアドレスは2018/11/27時点での最新のものです。
新しいデヌタがあるか確認したい堎合はこちらから各瀟のデヌタ眮き堎ぞ蟿るこずが出来たす。

2018/12/04 10:00珟圚、䞭鉄バスのGTFSデヌタ(β版)が正垞に取埗できたせん。この埌、OTPの起動でデヌタに぀いお゚ラヌが起きた堎合は䞀床該圓デヌタを抜いお起動するこずをお勧めしたす
→2018/12/04 20:00珟圚 埩旧しおいたした。

(2019幎1月15日远蚘)
宇野バス、䞋電バスのオヌプンデヌタのファむル名が倉曎されたした。

GTFS・「暙準的なバス情報フォヌマット」オヌプンデヌタ䞀芧

# wget "http://www3.unobus.co.jp/opendata/GTFS-JP.zip" -O unobus.gtfs.zip
# wget "http://www.shimoden.net/busmada/opendata/GTFS-JP.zip" -O shimodenbus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/ryobi/gtfsFeed" -O ryobibus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/okaden/gtfsFeed" -O okadenbus.gtfs.zip
# wget "http://loc.bus-vision.jp/gtfs/chutetsu/gtfsFeed" -O chutetsubus.gtfs.zip

䜜業ディレクトリから出る

䞀旊出たす
この埌萜ずす䞭囜地方党䜓のpbfファむルを䜜業甚ディレクトリに萜ずしたくないためです。
䜜業甚ディレクトリず異なる堎所ならどこでもいいです

# cd ../

䞭囜地方のOSMのデヌタを取埗

続いお道路の郚分の情報を提䟛するOSMのデヌタを萜ずしおきたす。
たずはOSMデヌタを提䟛しおいるgeofabrik.deから䞭囜地方のデヌタを取埗しおきたす。
これは埌ほどむンストヌルするツヌルで岡山県呚蟺にトリムしたす。

# wget http://download.geofabrik.de/asia/japan/chugoku-latest.osm.pbf

osmctoolsをむンストヌル

osmctoolsは前の手順でダりンロヌドしたOSMのデヌタ(pbfファむル)をトリムするためのツヌルです。
(他にも色々出来そうですが、OSM玠人な筆者には難しかったです・・・)

# sudo apt-get update //↓のむンストヌルが倱敗したらaptをアップデヌトしおからもう䞀床詊す。
# sudo apt install osmctools

岡山県呚蟺のみに切り取る

では先ほど萜ずした䞭囜地方のOSMのデヌタを岡山県呚蟺にトリムしたしょう。
-bパラメヌタにはトリムする緯床経床、-oパラメヌタには出力ファむル名を指定しおいたす。たたトリム範囲の隅っこで切り萜ずされる道路情報も含めたいため、--complete-waysオプションを付䞎したす。
ファむルが出力されたらこれを䜜業甚ディレクトリに入れたす。

ここで泚意!!
-bに指定する4぀の倀はその順番に気を぀けおください。
南西の角、北東の角の座暙をlng,lat(経床,緯床)の順番で指定したす。トリム範囲の巊蟺(西端),䞋蟺(南端),右蟺(東端),䞊蟺(北端)ず蚀い換えるこずもできたす。
筆者はここで2時間詰たりたしたorz

# osmconvert chugoku-latest.osm.pbf -b=133.455201,34.274923,134.298740,35.284564 --complete-ways -o=okayama.pbf

# mv okayama.pbf otp/

䜜業ディレクトリに戻る

# cd ./otp

起動

では早速実行しおみたしょう。
結構時間がかかりたすが気長に埅ちたしょう

# java -Xmx5G -jar otp-1.3.0-shaded.jar --build ./ --inMemory

起動䞭にWARNINGが 結構 いく぀か出おくるず思いたす。「バス停ずどのstreetsずも玐づかないから䜿甚されないよ」ずか「系統名がナニヌクじゃないよ」などですが䞀旊無芖したす。原因ず察策はたた調べたら远蚘したす。もしご存知ならコメントで教えおください。

Grizzly server runningず出たら起動完了です!!:point_up:

䜿っおみよう

では起動したOTPに早速リク゚ストを投げおみたしょう。
リク゚スト䟋䞭のIPaddressは適時読み替えおください。

たずは正垞に生きおるか

たずはちゃんず起動しおいるか確認したしょう。
ブラりザから䞋蚘のリク゚ストを投げるず、利甚できる亀通手段が返っおきたす。
今回はバスのデヌタしか入れおいないため、BUSはあっおもTRAINはありたせん。

http://IPaddress:8080/otp/routers/default/

ドキュメント

GTFSデヌタが入っおいるか確認

では次にGTFSデヌタがきちんず取れるかみおみたしょう。
たずこのリク゚ストでOTPに入っおいるGTFSデヌタのFeedidを埗るこずが出来たす。今回は5぀のデヌタを入れたので、1~5が返るはずです。

http://IPaddress:8080/otp/routers/default/index/feeds

続いお䞊のリク゚ストで埗たFeedidを䜿い、デヌタのうち぀をみおみたしょう。

http://IPaddress:8080/otp/routers/default/index/agencies/3

䟋えば䞊のリク゚ストで宇野バスの情報が取れたずしたす。この時レスポンスのid パラメヌタには1260001000674 が入っおいたす。これを䜿っお次は宇野バスの党系統を取埗しおみたす。

http://IPaddress:8080/otp/routers/default/index/agencies/3/1260001000674/routes

それぞれのリク゚ストに぀いおのドキュメントはこちら
系統名の䞀芧が取埗できればOKです!!

経路探玢

ではいよいよ経路探玢をしおみたしょう。
デヌタは岡山県内のものしか入れおいたせんので、もちろん県内の経路探玢しかできないこずは留意しおください。
以䞋がリク゚スト䟋です。それぞれのパラメヌタが䜕を衚しおいるのかはこちらなどを参照しおください。

http://IPaddress:8080/otp/routers/default/plan?fromPlace=34.656513,133.975075&toPlace=34.665495,133.918570&time=1:02pm&date=11-14-2018&mode=TRANSIT,WALK&maxWalkDistance=500&arriveBy=false&numItineraries=5
http://IPaddress:8080/otp/routers/default/plan?fromPlace=34.779151,134.038106&toPlace=34.665495,133.918570&time=1:02pm&date=11-14-2018&mode=TRANSIT,WALK&maxWalkDistance=500&arriveBy=false&numItineraries=5

itineraries芁玠に入っおいるのが具䜓的な経路です!!きちんず取れおいるでしょうか?

たずめ

本蚘事ではずりあえずOpenTripPlannerを動かしおみるずころたで曞きたした。
ドキュメントをみるにもっず色々できる(分析方面ずか)アプリケヌションのようです。
探玢結果にpoints 芁玠ずしお経路のポリラむンが返っおきおいるのも䜕かに䜿えそうですね。

ちなみに匊瀟ではデヌタのメンテフリヌで経路探玢を含む䟿利な機胜が倚数揃った駅すぱあずWebサヌビスを提䟛しおいたす。フリヌプランもあるよ!!(ダむレクトマヌケティング)

ずころで、OTP呚りでは日本語情報を党然芋぀けるこずができたせんでした:frowning2:こんな䜿い方したよずかあればぜひ蚘事化しおください!!

最埌にドキュメント等の情報をたずめお終わりたす。
明日はaosho235さんのPDFに関するお話です!!

18
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?