0
0

More than 1 year has passed since last update.

JR北海道の各駅運行情報jsonを取得する

Posted at

前回はkitacaエリアの運転状況だったので、今回は各駅運行情報のjsonの仕様を分析します。

独自研究を含んでおり、内容が正確ではない可能性があります。
誤りがありましたら、コメント等で報告をお願いします。

JR北海道の運行情報の種類

JR北海道の運行情報の種類

JR北海道の運行情報ページは、jsonを使用して表示しています。
また、3種類に分かれています。

列車運行情報

今日と明日の運行情報をエリア(路線)ごとに示してくれます。
事前に決まっている運行状況(大雪による減便等)や大幅な遅れ(30分以上)、運休(故障・事故等)でない限り更新されません

https://www3.jrhokkaido.co.jp/webunkou/index.html

各駅運行情報

今日と明日の運行情報を駅ごとに示してくれます。
運休・部分運休を示してくれますが、列車の遅れは反映されません

https://www3.jrhokkaido.co.jp/webunkou/stationlist.html

Kitacaエリア(札幌近郊)列車運転状況

路線ごとではなく各列車ごとの運転状況を示してくれます。
ただし、Kitacaエリア(小樽〜苫小牧・岩見沢間、学園都市線の札幌近郊地域)のみと限られています。

https://www3.jrhokkaido.co.jp/monitor/index.html

各駅運行状況 jsonの仕様

運行状況ページでは主に2種類のjsonを組み合わせて表示しているようです。

core.json

札幌駅(駅番号:091)の場合

今日と明日の方面別の時刻表が載っています。

駅ごとにURLが異なり、駅番号が必要です。

URLの形が、https://www3.jrhokkaido.co.jp/webunkou/data/timetable/core/(駅番号)_core.json となっています。
駅番号は3桁の半角数字で、eki_master.json から取得できます。

そのため、札幌駅の場合(駅番号:091)は https://www3.jrhokkaido.co.jp/webunkou/data/timetable/core/091_core.json となっています。

jsonは、以下のような構造になっています。

├── today
│   ├── datatext //日付 M/D
│   └── timetable(路線・方面別に分かれています)
│       ├── rosen //路線
│       ├── homen //方面
│       └── trains(列車ごとに分かれています)
│           ├── cbango       //運用番号
│           ├── hour         //発車時
│           ├── min          //発車分
│           ├── name         //列車名
│           ├── type         //列車種別(数字)
│           ├── typeText     //列車種別(文字列)
│           ├── typesingle   //列車種別(一文字)
│           ├── shaTime      //発車時刻
│           ├── shuEki       //終着駅
│           ├── shuEkiSimple //終着駅(一文字)
│           └── ryosu        //両数
└── tomorrow
   (以下略)

trainsの中身は下のようになっています。

091_core.json
{
  "cbango": "3827M",
  "hour": "09",
  "min": "10",
  "name": "エアポート85号",
  "type": "2",
  "typeText": "快速",
  "typeSimple": "快",
  "shaTime": "09:10",
  "shuEki": "小樽",
  "shuEkiSimple": "小",
  "ryosu": 6
}

また、typeは ressha_type_master.json より、8種類に分かれています。
分類は以下の通りです。

key value
1 特急
2 快速
3 普通
4 北海道新幹線
5 特別快速
6 ライナー
7 臨時列車
8 快速(札幌〜手稲・小樽間普通)

now.json

最新の運転状況が載っています。

駅ごとにURLが異なり、駅番号が必要です。

URLの形が、https://www3.jrhokkaido.co.jp/webunkou/data/timetable/now/(駅番号)_now.json となっています。
駅番号は3桁の半角数字で、eki_master.json から取得できます。

そのため、札幌駅の場合(駅番号:091)は https://www3.jrhokkaido.co.jp/webunkou/data/timetable/now/091_now.json となっています。

jsonは以下のような構造になっています。

├── time    //アクセス時刻
├── timeEn  //アクセス時刻(英語)
├── timeTc  //アクセス時刻(中国語)
├── timeSc  //アクセス時刻(中国語)
└── timeKr  //アクセス時刻(韓国語)
    ├── today
    │   ├── cbango          //運用番号
    │   ├── status          //状態コード
    │   ├── statusDetail    //状態
    │   ├── statusDetailEn  //状態(英語)
    │   ├── statusDetailSc  //状態(中国語)
    │   ├── statusDetailTc  //状態(中国語)
    │   └── statusDetailKr  //状態(韓国語)
    └── tomorrow(以下略)

core.jsonとは違い、列車が方向別に分かれていません。
運用番号がキーとなっています。

列車が運休になった場合、jsonは以下のような表示になります。

091_now.json
{
  "cbango": "71D",
  "status": 0,
  "statusDetail": "全区間運休 (札幌~網走 間)",
  "statusDetailEn": "All sections cancelled (between Sapporo and Abashiri)",
  "statusDetailSc": "全区间停驶 (札幌~网走 之间)",
  "statusDetailTc": "全區間停駛 (札幌~網走 之間)",
  "statusDetailKr": "전 구간 운행 중지 (삿포로~아바시리 구간)"
}

通常時、status1 になっていますが、運休時は 0 になります。

編集後記

今回は、各駅運行情報のjsonの構造について分析しました。
kitacaエリア運転情報と違い、遅れが表示されませんが、運用番号・両数が分かるのが特徴です。

0
0
0

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
0
0