また山に行きたくなる。山の記録を楽しく共有できる。

Yamareco

HOME > ヤマノート > ヤマレコ「山のデータ」をGPXファイル化する(Mac版)
更新日:2023年09月20日 訪問者数:72
ジャンル共通 IT
ヤマレコ「山のデータ」をGPXファイル化する(Mac版)
ひろー
ヤマレコの「山のデータ」に登録されている地名をGPXファイルにする方法を説明します。
GPXファイルを読み込める登山地図アプリ(iPhoneのスーパー地形、Androidの地図ロイドなど)に、山頂や峠の登録データを表示させることができます。

【注意事項】
ヤマレコ Web APIを使うことになりますので、以下の利用規約を遵守するようにしましょう。
https://www.yamareco.com/modules/pico/index.php?content_id=57
https://www.yamareco.com/modules/pico/index.php?content_id=58

なお、ヤマノートの制約上、画像が小さく表示されていますが、クリックをすることで拡大できます。

Windowsで作業する場合には、こちらのページをご覧ください。
https://www.yamareco.com/modules/yamanote/itemedit.php?nid=3537

9/9 初稿公開
9/10 ファイル出力の方法を追記
9/20 JIS第3水準等の漢字が文字化けすることを追記。
Homebrewとjqコマンドをインストールする
ヤマレコAPIにはMacの「ターミナル」を使ってアクセスします。
APIからのレスポンスを整形したり、必要なデータを取り出すために「Homebrew」というパーケージ管理ソフトを使って「jqコマンド」をインストールする必要があります。

Homebrewのインストール方法は、例えば以下のホームページを参考にしてください。
https://aiacademy.jp/media/?p=2817
https://and-engineer.com/articles/Y-u1qBAAACMARTi2

jqコマンドのインストール方法は、例えば以下のホームページを参考にしてください。
https://qiita.com/ponsuke0531/items/aa405a0f897cd0a78a8c
https://blog.junpeko.com/jq-command
ヤマレコ Web APIの使い方を理解する
ヤマレコ Web APIと、jqコマンドの使い方の例は以下のホームページに記載されています。
https://moritomo7315.hatenablog.com/entry/2019/12/29/224046
※ただし、上記ページに記載されている百名山の抽出はうまくいきませんのでご注意ください。

また、自分の欲しいデータを抽出できるようにするため、APIの仕様もさっと見ておきましょう。
https://sites.google.com/site/apiforyamareco/api/rest-api
https://sites.google.com/site/apiforyamareco/api/api_other
「データ種別リスト」と「エリアリスト」
それではヤマレコ Web APIを使って、「データ種別リスト」と「エリアリスト」を出力させてみましょう。
「データ種別リスト」、「エリアリスト」の出力は、以下のコマンドで実行します。
(ここに記載しているコマンドを「ターミナル」に貼り付ければ実行できます。)
jqコマンドを組み合わせることによって、レスポンスをカンマ区切りで表示させています。

【データ種別リスト】
curl https://api.yamareco.com/api/v1/getTypelist | jq -r '.typelist[] | .result =.type_id+","+.name | .result'

【エリアリスト】
curl https://api.yamareco.com/api/v1/getArealist | jq -r '.arealist[] | .result =.area_id+","+.area | .result'

出力結果は画像をご確認ください。
この出力結果から、山頂データの「type_id」は1、関東地方の「area_id」は300であることがわかります。
「山頂データ」の出力
それではいよいよ山頂データを出力させてみましょう。
関東地方(area_id=300)の山頂データ(type_id=1)を出力させたい場合、以下のコマンドになります。

curl -X POST https://api.yamareco.com/api/v1/searchPoi -d "page=1&type_id=1&area_id=300" | jq -r '.poilist[] | .result =.ptid+","+.name+","+.elevation+","+.lat+","+.lon | .result'

ID、山頂名、標高、北緯、東経のリストとなります。
連続で出力させる
先程のコマンドで、page=1のところを2,3,4,...に変更すれば、順次データの取得ができますが、該当件数が多い場合には結構大変です。例えば関東地方の山頂データの場合54ページもありますので、手作業だとコマンドを50回以上コピー&ペーストする必要があります。

このため、for文を使って、コマンドを連続で実行させることにします。
なお、サーバーに負担をかけないよう、コマンドを1回実行するごとに3秒間空ける設定にしています。この点は必ず守るようにしてください。

for i in `seq 1 10`
do
curl -X POST https://api.yamareco.com/api/v1/searchPoi -d "page=$i&type_id=1&area_id=300" | jq -r '.poilist[] | .result =.ptid+","+.name+","+.elevation+","+.lat+","+.lon | .result'
sleep 3
done

このコマンドを実行することで10ページ分がまとめて出力されます。
出力されたデータをターミナルから、テキストファイルにコピー&ペーストします。

11ページ目以降を出力させるには、`seq 1 10`のところを、`seq 11 20`等と順次書き換えていけばよいです。


また、コマンドの後ろに「>>(ファイル名).txt」とつければ、ファイル出力をすることも可能です。
ファイルはコマンドプロンプトの作業ディレクトリに保存されます。
(通常は、起動ディスクの「ユーザー」-「(ユーザー名)」)
ファイル出力をする場合には、途中経過が見えないので十分にテストした上で行ってください。
※以下は、1〜3ページ分を出力テストする例です。

for i in `seq 1 3`
do
curl -X POST https://api.yamareco.com/api/v1/searchPoi -d "page=$i&type_id=1&area_id=300" | jq -r '.poilist[] | .result =.ptid+","+.name+","+.elevation+","+.lat+","+.lon | .result' >> poilist.txt
sleep 5
done
Excelで編集し、CSVファイルとして保存
出力データのコピー&ペーストが終了したら、Excelファイルで列名をつけます。
山名列は「name」、標高列は「ele」とします。
また、スーパー地形で標高をポップアップさせたい場合には、「cmt」という列を作成し、標高のデータをコピーしておきます。(地図ロイドの場合には不要です)
編集が終わったらcsv形式で保存してください。
QGISでGPXファイルに変換
ここから先の手順は、「三角点データを登山地図アプリに表示(QGIS版)」に記載のとおりです。
https://www.yamareco.com/modules/yamanote/detail.php?nid=3522

文字コードは「UTF8」 ※「サンプルデータ」が文字化けしていないことを確認
ジオメトリは「EPSG:4326 - WGS 84」に設定して読み込めば良いです。

なお、ヤマレコの「山のデータ」は誰でも登録できますので、座標等に間違いがある場合もあります。
QGISで開いたときに明らかに間違いであったり、不要な範囲のデータについては、削除すると良いでしょう。
スーパー地形での表示例
座標精度は十分実用になるレベルです。
山頂を訪問して間違いを見つけた場合には、ヤマレコのデータを修正すると良いでしょう。
また、地図アプリでは、地域ごと、種類ごとに分けて保存しておくと、一括で表示・非表示、アイコン変更などができて便利です。
なお、JIS第3水準等の漢字を使っている地名の場合、ヤマレコAPIからの出力時点で文字化けをしてしまうようです。ごく一部のデータですが、気になるようであれば登山地図アプリ取り込み後に修正するのが良いでしょう。ちなみに関東の山頂データだと、橅ノ平の「ぶな」、賀?の峯(かびれのみね)の「び」の2つの漢字が文字化けをしています。
お気に入り登録-
拍手で応援
拍手した人-
訪問者数:72人

※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。 ぜひご協力ください!

詳しくはこちら

コメント

まだコメントはありません
プロフィール画像
ニッ にっこり シュン エッ!? ん? フフッ げらげら むぅ べー はー しくしく カーッ ふんふん ウィンク これだっ! 車 カメラ 鉛筆 消しゴム ビール 若葉マーク 音符 ハートマーク 電球/アイデア 星 パソコン メール 電話 晴れ 曇り時々晴れ 曇り 雨 雪 温泉 木 花 山 おにぎり 汗 電車 お酒 急ぐ 富士山 ピース/チョキ パンチ happy01 angry despair sad wobbly think confident coldsweats01 coldsweats02 pout gawk lovely bleah wink happy02 bearing catface crying weep delicious smile shock up down shine flair annoy sleepy sign01 sweat01 sweat02 dash note notes spa kissmark heart01 heart02 heart03 heart04 bomb punch good rock scissors paper ear eye sun cloud rain snow thunder typhoon sprinkle wave night dog cat chick penguin fish horse pig aries taurus gemini cancer leo virgo libra scorpius sagittarius capricornus aquarius pisces heart spade diamond club pc mobilephone mail phoneto mailto faxto telephone loveletter memo xmas clover tulip apple bud maple cherryblossom id key sharp one two three four five six seven eight nine zero copyright tm r-mark dollar yen free search new ok secret danger upwardright downwardleft downwardright upwardleft signaler toilet restaurant wheelchair house building postoffice hospital bank atm hotel school fuji 24hours gasstation parking empty full smoking nosmoking run baseball golf tennis soccer ski basketball motorsports cafe bar beer fastfood boutique hairsalon karaoke movie music art drama ticket camera bag book ribbon present birthday cake wine bread riceball japanesetea bottle noodle tv cd foot shoe t-shirt rouge ring crown bell slate clock newmoon moon1 moon2 moon3 train subway bullettrain car rvcar bus ship airplane bicycle yacht

コメントを書く

ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。
ヤマレコにユーザ登録する
ページの先頭へ