Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GTFSのデータを Streamlitで可視化してみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
NearMeの技術発表資料です
PRO
April 19, 2024
Programming
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GTFSのデータを Streamlitで可視化してみた
Streamlitを用いてGTFSの可視化を行なった資料になります。今回では、東京都内のバス停を可視化、そしてリアルタイムでのバスの位置情報の可視化を行なっています。
NearMeの技術発表資料です
PRO
April 19, 2024
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
判断特化モデル Jev で 開発チケットをトリアージする
nearme_tech
PRO
0
11
Develop and customize Slackbot with Centaur
nearme_tech
PRO
0
17
AIエージェントのための 隔離された安全なインフラ設計
nearme_tech
PRO
0
41
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
79
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
86
LLM + 強化学習
nearme_tech
PRO
0
43
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
120
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
79
初めてのLean言語
nearme_tech
PRO
0
150
Other Decks in Programming
See All in Programming
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.8k
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
AI-Powered Domain-Driven Design
ziobrando
0
400
ActionController meets Protocol Buffers
sorah
1
790
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
240
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
230
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
Crash Auto Pipelines
veronikapj
1
380
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Site-Speed That Sticks
csswizardry
13
1.6k
Technical Leadership for Architectural Decision Making
baasie
3
640
Statistics for Hackers
jakevdp
799
230k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
3k
Building the Perfect Custom Keyboard
takai
2
950
Typedesign – Prime Four
hannesfritz
42
3.2k
Transcript
0 GTFSのデータを Streamlitで可視化してみた 2024-04-19 第87回NearMe技術勉強会 Kenji Hosoda
1 GTFSとは • GTFS (General Transit Feed Specification) は、交通システムに関する関連情報を利⽤者に配 信するために使⽤される”オープン標準”
• 路線、時刻表、運賃、地理的な乗り換えを表現する「GTFS Schedule」とトリップの更新、⾞ 両位置、サービスアラートなどのリアルタイム情報を提供する「GTFS Realtime」という⼆つ の主要な仕様がある • それに加えて、様々なニーズに対応するために拡張されたフォーマットが存在
2 GTFS-JPについて • GTFSの国際標準をベースにしつつ、⽇本独特の交通システムや⾔語、運賃体系に対応 するためにカスタマイズされている • 以下のサイトからデータを取得可能 https://tshimada291.sakura.ne.jp/transport/gtfs-list.html
3 今回は都営バスのデータを可視化してみる • GTFS-JP • https://ckan.odpt.org/dataset/b_bus_gtfs_jp-toei • GTFS Realtime •
https://ckan.odpt.org/dataset/b_bus_gtfs_rt-toei
4 セットアップ • こちらのコードをダウンロード • https://gist.github.com/kenji4569/ea42817d05980d2508963e66b297d03b • 以下を実⾏ • pip
install streamlit streamlit-folium folium pydeck pandas requests geopy gtfs-realtime-bindings • streamlit run gtfs-viewer-app.py • (オプション)公共交通オープンデータセンターにて開発者登録してアクセストークンを取得 (2営 業⽇かかる) • https://developer.odpt.org/ • 実⾏時にアクセストークンをセット • ACCESS_TOKEN=<your_access_token> streamlit run gtfs-viewer-app.py
5 実⾏結果 GTFS-JPのダウンロード バス停の表示 リアルタイムバス位置の表示 更新頻度 表示対象の絞り込み マップの種類
6 (表⽰対象の絞り込みとマップの切り替えについて) • データ数が多いのでfoliumだと動きが遅い → pydeckに変更 • (ただし、現状pydeckの⽅がリアルタイムの更新は苦⼿?)
7 コード解説1 GTFS-JPのダウンロード def download_gtfs_jp (): ... url = (
f"https://api.odpt.org/api/v4/files/Toei/data/ToeiBus-GTFS.zip?acl:consumerKey= {ACCESS_TOKEN}" if ACCESS_TOKEN else "https://api-public.odpt.org/api/v4/files/Toei/data/ToeiBus-GTFS.zip" ) with ( requests.get(url) as res, io.BytesIO(res.content) as bytes_io, zipfile.ZipFile(bytes_io) as zip, ): zip.extractall(GTFS_JP_DATA_DIR ) • ToeiBus-GTFS.zipファイルをダウンロード • ファイルを展開して./data以下に保存 ダウンロードしたデータ
8 コード解説2 GTFS Realtime のダウンロード from google.transit import gtfs_realtime_pb2 def
download_gtfs_realtime (time_steps): ... feed = gtfs_realtime_pb2.FeedMessage() records = [] with urllib.request.urlopen(url) as res: feed.ParseFromString( res.read()) for entity in feed.entity: record = [ entity.id, entity.vehicle.trip.trip_id, entity.vehicle.trip.route_id, entity.vehicle.trip.direction_id, entity.vehicle.position.latitude, entity.vehicle.position.longitude, entity.vehicle.current_stop_sequence, entity.vehicle.timestamp, entity.vehicle.stop_id, ] records.append(record) • ToeiBusのリアルタイムフィード (Protocol Buffers形式)をライブラリ を介して取得 参考:https://nttdocomo-developers.jp/entry/20231218_1
9 今後の展望 https://www.linkedin.com/posts/mobilitydata_gtfs-demandrespo nsivetransportation-drt-activity-7175942816848588800-JX9v • 「GTFS-Flex」来るか? • オンデマンド交通などフレキシブルなルートを扱うことが可能になる • NearMeの配⾞もルート検索アプリに表⽰できるようになる?
10 Thank you