make_gtfsを使って仮のGTFS(時刻表)を生成する(神戸電鉄 有馬線の一部)
実際の発車時刻とは異なるが、1時間あたりの本数はなるべく合わせた時刻表。
駅の緯度経度や線路(ルート)形状の情報は、 国土数値情報 鉄道データを利用。
指定したbounding box内の駅のみを対象とする。
(withinbbox.pyとmidpoint.pyは https://gist.github.com/deton/ac80db5e4b464169a764b524d3377c96 と同じ)
uv run python withinbbox.py 134.963436,34.623885,135.170288,34.738791 N02-24_RailroadSection.shp
grep -e '有馬線' -e '神戸高速線.*神戸電鉄' N02-24_RailroadSection.134.963436,34.623885,135.170288,34.738791.geojson \
| sed -e 's/"N02_003": "[^"]*", //' | sort -u \
| sed -e '1i {"type":"FeatureCollection","features":[' -e '$s/,$/]}/' >arima.geojson
uv run python linemerge.py arima.geojson
sed -e '1i {"type":"Feature","properties":{"shape_id":"shp1"},"geometry":' -e '$a }' arima.linemerge.geojson >shapes.geojsonN02_003の値のみ異なる(有馬線と神戸高速線)、 同じ緯度経度のLineStringは1つだけにして、 1本のLineStringにマージしてshapes.geojsonを作成。
NAVITIMEで駅の時刻表を見て(列車種別で絞り込みしつつ)、 各曜日・各時間帯・上り/下りの本数を調べて記入。
1時間あたりの本数が同じ時間が続く場合は1行にまとめられる。
(とりあえず、列車種別:普通、平日を対象に手作業)
駅のgeometryとして、midpointの緯度経度に変換
uv run python withinbbox.py 134.963436,34.623885,135.170288,34.738791 N02-24_Station.shp
uv run python midpoint.py N02-24_Station.134.963436,34.623885,135.170288,34.738791.geojsonとりあえず、重複するstop_idや駅名は手で削除。
grep -e '有馬線' -e '神戸高速線.*神戸電鉄' N02-24_Station.134.963436,34.623885,135.170288,34.738791.midpoint.geojson | sed -e 's/,$//' > stops.ndjson
vim stops.ndjson(参考:同名駅のグループに属すものを検索。 緯度経度が同じなら、N02_005gの値をstop_idとして使う。)
grep -v 'N02_005c": "\([^"]*\)", "N02_005g": "\1"' N02-24_Station.134.963436,34.623885,135.170288,34.738791.midpoint.geojsonecho 'stop_id,stop_name,stop_lon,stop_lat' > stops.csv
jq -r '[.properties.N02_005c,.properties.N02_005,.geometry.coordinates[0],.geometry.coordinates[1]]|@csv' stops.ndjson >>stops.csvuv run make_gtfs data/shintetsu_arima_local output/shintetsu_arima_local.zip