鉄道クリエイター「カオストレイン」氏(@chaostrain)の可視化スタイル(完全形態アプローチ、帯幅による運行本数エンコーディング)を踏襲し、日本全国の新幹線・在来線JR特急・私鉄有料特急が走る全区間(287区間)と一日当たりの運行本数を、ランベルト等角円錐図法および物理反発力シミュレーションを用いて高精度に集約・図解化したインタラクティブWeb地図です。
🗺️ インタラクティブ・マップ
ブラウザ上で直接マウスホイールによるズーム、ドラッグによる移動、路線のホバー/クリックによる詳細運行内訳を確認できます。Google Mapsと同様に、拡大するにつれてローカル特急駅のラベルが出現します。
🌟 技術と手法の核心
1. カオストレイン手法の踏襲(完全形態 & 帯幅マッピング)
- 完全形態(徹底した網羅性): 新幹線(全線・全列車)、JR各社在来線特急(北海道〜九州、寝台特急サンライズ瀬戸・出雲)、大手私鉄有料特急(近鉄、小田急、東武、京成、西武、名鉄、南海等)の全運行系統を包括マスタ化。
- 帯幅による頻度直感化: 平日定期ダイヤ基準(上下合計 本/日)を駅間セグメントごとに積算。東海道新幹線の超過密区間(472本/日)から宗谷本線などの地方特急(6本/日)までを、ダイナミックな線の太さ(2.5px〜25px)で直感化。
2. ランベルト等角円錐図法(正規地理投影)
従来の路線図に見られる極端なデフォルメを廃し、国土地理院や気象庁で標準採用されるランベルト等角円錐図法(Lambert Conformal Conic Projection)を採用: * 標準緯線: 北緯 \(33.0^\circ\) / 北緯 \(42.0^\circ\) * 中央経線: 東経 \(137.0^\circ\) * 原点緯度: 北緯 \(36.0^\circ\)
全236駅の実緯度経度(WGS84)から数理変換することで、日本列島本来の美しい弓なりのプロポーション、方位角、実距離比率を歪みなく再現。背景には日本列島の主要海岸線アウトラインを重層化しています。
3. 物理エンジンによる文字衝突回避 & Google Maps風LOD
駅が密集する首都圏や近畿圏における駅名ラベルの重なりを解消するため、2つのアルゴリズムを導入: 1. 反発力・バネ引力シミュレーション(Spring-Repulsion Force Engine): 各駅名の文字矩形同士に物理的な反発力を作用させ、元の駅座標へのバネ引力と連動させて250ステップで重なりゼロへ自動整列。押し出された過密駅(池袋、春日部、大船、新大阪等)には自動で引き出し線(リーダーライン)を生成。 2. Google Maps方式のセマンティックLOD: 引き画面(全体図)では新幹線駅・大ターミナルのみを表示し、ズームインするにつれて中間駅ラベルがふわっと出現する動的詳細度制御を実装。
📊 記述統計分析の要約
全国特急ネットワーク(\(N=287\) 区間セグメント)の記述統計分析結果です。
| 統計指標 | 実測値 | 統計的意味・解釈 |
|---|---|---|
| 標本数 | 287 区間 | 全国の特急運行セグメント総数 |
| 算術平均 (\(\mu\)) | 60.48 本/日 | 新幹線の高頻度運行に引っ張られ高めに出る |
| 中央値 (\(\text{Median}\)) | 46.00 本/日 | 全国の特急区間の実質的な中央値(約毎時2本) |
| 最頻階級 | 41〜80 本/日 | 全体の 39.4%(113区間)が集中 |
| 最小値 / 最大値 | 4本 / 472本 | 最小値と最大値の比が 約118倍(ダイナミックレンジ極大) |
| 歪度 (\(\text{Skewness}\)) | +3.334 | 著しい正の歪み(右側に極めて長いロングテール) |
| 変動係数 (\(\text{CV}\)) | 1.195 | 1.0を超えており極めて不均一な分布 |
非線形スケーリングの数理的必然性
全区間の 87.1% は 80本/日以下 に収まる一方、上位 4.2%(東海道新幹線等)が 251本超の巨大な本数を誇ります。この極端な歪み(歪度 \(+3.334\))のため、単純な線形比例では地方特急が不可視になるか幹線が画面を埋め尽くしてしまいます。 本プロジェクトでは、累積相対度数のパーセンタイル屈曲点(\(Q_1=24, \text{Med}=46, Q_3=64, 87\%=80\))に適合させた7段階区分スケーリング関数を設計・適用することで、地方特急の視認性と大動脈の重厚感を両立させています。
🔗 ソースコード・リポジトリ
- 統合リポジトリ: geospatial-urban-suite
- パッケージディレクトリ:
packages/japan-express-network/scripts/generate_dataset.py: 特急列車マスタ生成scripts/build_geo_nodes.py: ランベルト等角円錐図法 投影エンジンscripts/label_physics.py: 物理反発ラベル衝突回避エンジンscripts/aggregator.py: 区間別通過本数集約エンジンscripts/render_svg.py: カオストレイン風高解像度SVGレンダラーscripts/build_web.py: Google Maps風インタラクティブWebアプリビルド