1
0

JR北海道の kitacaエリア 列車運転状況 json の構造

Last updated at Posted at 2023-08-09

2024/3/10 追記

2024年1月9日から運行情報ページがリニューアルされたため、Kitacaエリア(札幌近郊)列車運転状況は廃止されたため、この方法は使えなくなっています。

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

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

列車運行情報

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

各駅運行情報

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

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

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

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

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

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

station_numbering.json

kitacaエリア内全駅の、駅番号(station_numbering)が格納されています。

JSONの仕様
key value 例(札幌)
ID 駅番号 091
value 駅名 札幌
areaKey 路線コード (空白)
areaNo 路線内での駅番号 01
color 路線カラー 030000

jsonの形は以下の通りです。

station_numbering.json(抜粋)
{
  "station_numbering" : 
  [
  {
    "ID" : "091",
    "value" : "札幌",
    "areaKey" : "",
    "areaNo" : "01",
    "color" : "030000"
  },
  ]
}

stationlist.json

kitakaエリア内全駅の、駅名などが格納されています。

JSONの仕様
key value 例(札幌)
ID 駅番号 091
value 駅名 札幌
hira ふりがな さっぽろ
kata フリガナ サッポロ
en 英語表記 Sapporo
lat 緯度 43.068701
lng 経度 141.350738
tid 運行情報表示装置? true
tw 台湾語表記 札幌
cn 中国語表記 札幌
kr 韓国語表記 삿포로
area エリア (省略)

tidは、運行情報表示装置 (Traffic Information Display)だと思われます。
jsonの形は以下の通りです。

station_numbering.json(抜粋)
{
  "stations" : [
  {
    "ID" : "091",
    "value" : "札幌",
    "hira" : "さっぽろ",
    "kata" : "サッポロ",
    "en" : "Sapporo",
    "lat" : "43.068701",
    "lng" : "141.350738",
    "tid" : "true",
    "tw" : "札幌",
    "cn" : "札幌",
    "ko" : "삿포로",
    "area" : [
    true,
    true,
    false,
    false,
    false,
    false
    ]
  },
  ]
}

service(駅番号).json

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

各駅運転状況データの本体です。

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

https://www3.jrhokkaido.co.jp/monitor/unkou_info/json/services(駅番号).jsonとなっています。
駅番号は3桁の半角数字で、先程紹介した2つのjsonで取得できます。

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

JSONの仕様
key value 例(札幌)
services 駅番号 091
departures_datetime 出発時刻 202308100600
departures 出発方面 函館線[小樽方面へ]@1
函館線[岩見沢方面へ]@1
千歳線[千歳方面へ]@1
千歳線[(快速)新千歳空港へ]@1
学園都市線[当別方面へ]@1
arrivals_datetime 到着時刻 202308100600
arrivals 到着方面 函館線[小樽方面から]@1
函館線[岩見沢方面から]@1
千歳線[千歳方面から]@1
千歳線[(快速)新千歳空港から]@1
学園都市線[当別方面から]@1

駅ごとに出発・到着方面の項目数は異なります。

出発・到着時刻、方面ごとに分かれているため注意が必要です。

departures・arrivalsの中に方面ごとに分かれている列車運転状況は以下のように分類されています。

JSONの仕様
key value 例(函館線[小樽方面へ]@1)
class 列車種別 快速
name 列車名 エアポート〇〇号
time 出発(到着)時刻 12:34
to 終着駅 小樽
status 運行状況コード 2
add 運休区間 運休(小樽-手稲間)
now 遅れ時間
(運行中の現在位置)
約10~15分遅れ(新札幌駅)
dest 終着駅と行先が違う場合の行先 (空白)

jsonの構造は以下の通りです。

services091.json(抜粋)
{
  "services" : {
  "091" : {
  "departures_datetime" : "202308100800",
  "departures" : {
    "函館線[小樽方面へ]@1" : [
      {
         "class" : "普通",
         "name" : "普通",
         "time" : "09:03",
         "to": "手稲",
         "status": 0,
         "add" : "",
         "now" : "(厚別-森林公園間)",
         "dest" : ""
       },
     ],
    "千歳線[千歳方面へ]@1": [
     ],
   },
  "arrivals_datetime": "202308100800",
  "arrivals": {
  "函館線[小樽方面から]@1": [
    ],
  }
}

【参考】運行状況コードの分類

code 運行状況
0 通常運行
1 列車遅延
2 部分運休
3 全区間運休
4 空(empty)
5 発車前
6 発車前
7 表示区間外

編集後記

今回紹介したjsonだけでは編成両数が分かりません。そのため、他のjsonを組み合わせることで両数表示が可能です。

ちなみに、札幌市営地下鉄は列車ごとの運転状況を公開していないようです。しかし、札幌市内のバスはバスロケーションシステムを導入しており、バスの現在位置が分かります。それについての取得方法も今度書こうと思います。

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