QGIS の v.3.28 から地理院地図ベクトルタイルレイヤーからの地物の選択が可能になり、道路データのコピーペーストが容易にできるようになったので、これを利用して登山ルートのgpxファイルを作成する方法を考えました。
らくルートを使用すれば登山ルートのgpxファイルは簡単にできますが、あえてこの方法を使う意味としては、たとえば
1)らくルートでルート化されていないが地理院地図には登山道が描かれている(実際に歩けるとは限りませんが)
2)らくルートでルート化されているが地理院地図の登山道とはズレがあり、みんなの足跡を見ると地理院地図の登山道の方に集中しているのでそっちを使いたい(細かいことを気にする人向け)
というような場合に、地理院地図の登山道をデジタイズする手間が省けるということです。
そもそも QGIS とは?という方は、ネットにかなり情報があるので、検索してみてください。以下の説明はマック版の QGIS 3.28.8 を使用してのものです。ウィンドウズ版はインターフェイスが若干異なるかもしれません。不完全なところのある作業手順なので、実施される場合はまず短いルートで試してみて、要領を掴んでから長いルートを作成するのがよろしいかと思います。
らくルートを使用すれば登山ルートのgpxファイルは簡単にできますが、あえてこの方法を使う意味としては、たとえば
1)らくルートでルート化されていないが地理院地図には登山道が描かれている(実際に歩けるとは限りませんが)
2)らくルートでルート化されているが地理院地図の登山道とはズレがあり、みんなの足跡を見ると地理院地図の登山道の方に集中しているのでそっちを使いたい(細かいことを気にする人向け)
というような場合に、地理院地図の登山道をデジタイズする手間が省けるということです。
そもそも QGIS とは?という方は、ネットにかなり情報があるので、検索してみてください。以下の説明はマック版の QGIS 3.28.8 を使用してのものです。ウィンドウズ版はインターフェイスが若干異なるかもしれません。不完全なところのある作業手順なので、実施される場合はまず短いルートで試してみて、要領を掴んでから長いルートを作成するのがよろしいかと思います。
1.作業用QGISプロジェクトの準備
・プロジェクトは既存のものでも新規に作成してもよい。CRS は WGS84/Pseudo-Mercator。
・タイルデータの追加(ブラウザで接続した後、プロジェクトに追加する)
地理院ベクトルタイル:Vector Tiles で接続し、シンポロトジで「レイヤ = road」だけにする
ラスタの地理院地図(背景地図用):XYZ Tiles で接続
・仮置き場レイヤの作成(道路データのペースト先)
レイヤ>レイヤを作成>新規一時スクラッチレイヤ
ジオメトリ型はラインストリング、CRS は WGS84/Pseudo-Mercator
・ラフトレース
道路データコピーペースト時の補助として、想定ルートを大まかにトレースしておく
・タイルデータの追加(ブラウザで接続した後、プロジェクトに追加する)
地理院ベクトルタイル:Vector Tiles で接続し、シンポロトジで「レイヤ = road」だけにする
ラスタの地理院地図(背景地図用):XYZ Tiles で接続
・仮置き場レイヤの作成(道路データのペースト先)
レイヤ>レイヤを作成>新規一時スクラッチレイヤ
ジオメトリ型はラインストリング、CRS は WGS84/Pseudo-Mercator
・ラフトレース
道路データコピーペースト時の補助として、想定ルートを大まかにトレースしておく
2.道路ポリラインのコピーペースト
地理院ベクトルタイルの道路データは非常に多数の道路ポリラインから構成されている。一つ一つの道路ポリラインは、2つの頂点を結んだだけの極めて短いものから、100以上の頂点からなる長いものまで様々である。この中から想定ルート上のポリラインを選択してコピーし、仮置き場レイヤにペーストする。「地物を選択」ツールで一つ一つコピーペーストすることもできるが、ある程度長いルートになると、「ポリゴンによる地物選択」ツールで想定ルートを取り囲んでコピーペーストして、不要なポリラインを削除する方が能率的である。
地理院ベクトルタイルの道路データセットは、ズームレベル14以下、ズームレベル15〜17、ズームレベル18でそれぞれ異なるものであり、次の一本化の作業で相互に接続しないことが多い。徒歩道はズームレベル15以上でのみ表示される。ズームレベル18は登山用としては大縮尺すぎる。このため、コピーペースト作業はズームレベル15〜17で行った方が良い。
QGIS自体にはズームレベルを表示する機能はないが、これを行なってくれる Zoom Level というプラグインがある。また、この3つのズームレベルで背景の地理院地図が異なる。なお、ツールバーの拡大・縮小ツールやマップの下の「縮尺」を使うとズームレベルが変わるが、マップの下の「拡大」の方はズームレベルを変えないまま拡大・縮小できる。
立体交差の道路は平面上で交差して見えても接続していないので、そこではルートは繋がらない。道路データだけ見ていると、これを忘れることがあるので注意。山の中でもたまに立体交差がある。
地理院ベクトルタイルの道路データセットは、ズームレベル14以下、ズームレベル15〜17、ズームレベル18でそれぞれ異なるものであり、次の一本化の作業で相互に接続しないことが多い。徒歩道はズームレベル15以上でのみ表示される。ズームレベル18は登山用としては大縮尺すぎる。このため、コピーペースト作業はズームレベル15〜17で行った方が良い。
QGIS自体にはズームレベルを表示する機能はないが、これを行なってくれる Zoom Level というプラグインがある。また、この3つのズームレベルで背景の地理院地図が異なる。なお、ツールバーの拡大・縮小ツールやマップの下の「縮尺」を使うとズームレベルが変わるが、マップの下の「拡大」の方はズームレベルを変えないまま拡大・縮小できる。
立体交差の道路は平面上で交差して見えても接続していないので、そこではルートは繋がらない。道路データだけ見ていると、これを忘れることがあるので注意。山の中でもたまに立体交差がある。
3.道路ポリラインの一本化
2の作業が終わると画面上では一本のルートができたように見えるが、実際は多数の道路ポリラインの集まりに過ぎず、一本のgpxファイルとして出力するにはまだ作業が必要である。
多数のポリラインを一本の線にするには、全体について一旦「頂点を抽出」した後、「点を線に変換」すればよい。しかし、これをそのまま実行すると、大抵はぐしゃぐしゃの線ができてしまう。その原因は以下の3点にある。
・線には方向性があり(デジタイズ時の順番)、想定ルートの方向と逆のものも多数ある。
・道路ポリラインにはデジタイズ時に番号が付いており、想定ルートでの順番とは一致しない。
・道路ポリラインデータにはかなりの重複がある。
QGISのベーシックな機能で一つ一つ解消することが可能ではあるが(6.付記 に記載)、かなり手間がかかり、あまり人に薦められるものではない。ところが「ネットワーク解析>最短経路(指定始点から指定終点)」を使用すれば全部が簡単確実にできてしまうことがわかったので、基本的にこの方法をお薦めする。
ただし最短経路計算のためには、ルートの始点から終点までポリラインが完全につながっている必要がある。このため、道路データのコピーペーストの際には「ポリゴンによる地物選択」ツールを使用して、抜け落ちのないようにする。想定ルートと交差するポリラインについては、想定ルートをショートカットするルートを作るもの以外は削除する必要はない。
最短経路計算を実施して「始点から終点への経路がありません。」というメッセージが出る時は、想定ルート上にギャップがあることを意味している。ある程度拡大表示してルート上を追跡すると、数十メートル程度以上のギャップであれば発見できる可能性が高い。それより小さいものについては、表示の拡大率を上げ過ぎると追跡の能率が落ちるので、最短経路の終点の位置を変えながら最短経路を計算し直すということを繰り返した方が良い。
想定ルート上に道路データのギャップが生じる原因は2つある。
1)もともと地理院地図に道路が描かれていない箇所を想定ルートが通る場合
たとえば、寺社の境内、公園、私有地などを通らせていただくというケース。この場合は、自分で補完する線を描いて、ギャップを埋めてやれば良い(「線の地物を追加」ツール)。
2)地理院ベクトルタイルのデータの不備と思われるもの
不備の例としては、ラスター画像の破線道同士の交点の直前で、破線の隙間がデジタイズの端になってしまってギャップができているという例があった。破線道が幅のある車道の端で止まっていて、中心線に届いていないという例もあった。一方、最短経路計算の繰り返しでギャップの位置を特定したが、なぜそこがギャップなのか、どう拡大しても分からないこともある。いずれにしても、最短経路計算時のトポロジ許容値(接続しているとみなす点間距離)を大きくすれば解決できる。ただし、この値をあまり大きくすると意図しないショートカットができてしまう可能性があるので、注意が必要である。
多数のポリラインを一本の線にするには、全体について一旦「頂点を抽出」した後、「点を線に変換」すればよい。しかし、これをそのまま実行すると、大抵はぐしゃぐしゃの線ができてしまう。その原因は以下の3点にある。
・線には方向性があり(デジタイズ時の順番)、想定ルートの方向と逆のものも多数ある。
・道路ポリラインにはデジタイズ時に番号が付いており、想定ルートでの順番とは一致しない。
・道路ポリラインデータにはかなりの重複がある。
QGISのベーシックな機能で一つ一つ解消することが可能ではあるが(6.付記 に記載)、かなり手間がかかり、あまり人に薦められるものではない。ところが「ネットワーク解析>最短経路(指定始点から指定終点)」を使用すれば全部が簡単確実にできてしまうことがわかったので、基本的にこの方法をお薦めする。
ただし最短経路計算のためには、ルートの始点から終点までポリラインが完全につながっている必要がある。このため、道路データのコピーペーストの際には「ポリゴンによる地物選択」ツールを使用して、抜け落ちのないようにする。想定ルートと交差するポリラインについては、想定ルートをショートカットするルートを作るもの以外は削除する必要はない。
最短経路計算を実施して「始点から終点への経路がありません。」というメッセージが出る時は、想定ルート上にギャップがあることを意味している。ある程度拡大表示してルート上を追跡すると、数十メートル程度以上のギャップであれば発見できる可能性が高い。それより小さいものについては、表示の拡大率を上げ過ぎると追跡の能率が落ちるので、最短経路の終点の位置を変えながら最短経路を計算し直すということを繰り返した方が良い。
想定ルート上に道路データのギャップが生じる原因は2つある。
1)もともと地理院地図に道路が描かれていない箇所を想定ルートが通る場合
たとえば、寺社の境内、公園、私有地などを通らせていただくというケース。この場合は、自分で補完する線を描いて、ギャップを埋めてやれば良い(「線の地物を追加」ツール)。
2)地理院ベクトルタイルのデータの不備と思われるもの
不備の例としては、ラスター画像の破線道同士の交点の直前で、破線の隙間がデジタイズの端になってしまってギャップができているという例があった。破線道が幅のある車道の端で止まっていて、中心線に届いていないという例もあった。一方、最短経路計算の繰り返しでギャップの位置を特定したが、なぜそこがギャップなのか、どう拡大しても分からないこともある。いずれにしても、最短経路計算時のトポロジ許容値(接続しているとみなす点間距離)を大きくすれば解決できる。ただし、この値をあまり大きくすると意図しないショートカットができてしまう可能性があるので、注意が必要である。
4.標高データの取得
以上で作成したのは登山ルートの平面データ(緯度経度)であり、標高値を加えたい場合はもう少し作業が必要になる。これをQGIS上で行う場合は、以下の手順による。
1)国土地理院の基盤地図情報ダウンロードページから、DEM5AあるいはDEM10Bのxmlファイルをダウンロードする
2)Quick_DEM_for_JP 等を使用して、xmlファイルをgeotiffファイルに変換する
3)geotiffファイルをQGISにドラッグ&ドロップして、ラスタレイヤとしてロードする
4)「ベクタジオメトリ>ドレープ(ラスタ値をZ値に代入)」を使用して、標高値を付加する
johndoeさん作成の TrailNote(マック用のフリーソフト) を使用すれば、自分で標高データを準備する手間をかけずに標高値を取得できる。この場合は、標高タイルズームレベル14のDEM5AあるいはDEM10Bのどちらかを選択して使用することになる。
1)国土地理院の基盤地図情報ダウンロードページから、DEM5AあるいはDEM10Bのxmlファイルをダウンロードする
2)Quick_DEM_for_JP 等を使用して、xmlファイルをgeotiffファイルに変換する
3)geotiffファイルをQGISにドラッグ&ドロップして、ラスタレイヤとしてロードする
4)「ベクタジオメトリ>ドレープ(ラスタ値をZ値に代入)」を使用して、標高値を付加する
johndoeさん作成の TrailNote(マック用のフリーソフト) を使用すれば、自分で標高データを準備する手間をかけずに標高値を取得できる。この場合は、標高タイルズームレベル14のDEM5AあるいはDEM10Bのどちらかを選択して使用することになる。
5.ルートの保存
「エクスポート>新規ファイルに地物を保存」で gpxファイルとして保存する。
GPX_USE_EXTENSIONS=YES
FORCE_GPX_TRACK=YES
なお、道路が複雑に交錯している場合は、作成したgpxファイルが意図したルートを選択できているかどうか、ラスタの地理院地図上に表示して良く確認する必要がある。
GPX_USE_EXTENSIONS=YES
FORCE_GPX_TRACK=YES
なお、道路が複雑に交錯している場合は、作成したgpxファイルが意図したルートを選択できているかどうか、ラスタの地理院地図上に表示して良く確認する必要がある。
6.付記:最短経路計算を使用しない方法
最短経路計算がどうしてもうまく行かない場合、あるいは道路データの中身を見てみたい場合は、以下の方法がある。
1)想定ルート上の道路ポリラインをコピーペーストで一つのレイヤに集める
2)道路ポリライン内の方向(デジタイズされた際の頂点の順番)をルートの進行方向に揃える:「レイヤのプロパティ>シンポロトジ」で線の向きを示す矢印を表示させ、「線の向きを反転」ツールで方向を揃える。
3)道路ポリラインに通し番号をつける:属性テーブルに新しいフィールドを加え、想定ルート上の始点から順に道路ポリラインをクリックして、該当の行に通し番号を振る。この過程で道路ポリラインの重複を見つけたら、「地物を分割 -> 選択物を削除」を行う。
4)頂点を抽出する:ベクタジオメトリ>頂点を抽出
5)点を線に変換する:ベクタ作成>点を線に変換(オプションの「式による並べ替え」で、3で振った番号を使う)
1)想定ルート上の道路ポリラインをコピーペーストで一つのレイヤに集める
2)道路ポリライン内の方向(デジタイズされた際の頂点の順番)をルートの進行方向に揃える:「レイヤのプロパティ>シンポロトジ」で線の向きを示す矢印を表示させ、「線の向きを反転」ツールで方向を揃える。
3)道路ポリラインに通し番号をつける:属性テーブルに新しいフィールドを加え、想定ルート上の始点から順に道路ポリラインをクリックして、該当の行に通し番号を振る。この過程で道路ポリラインの重複を見つけたら、「地物を分割 -> 選択物を削除」を行う。
4)頂点を抽出する:ベクタジオメトリ>頂点を抽出
5)点を線に変換する:ベクタ作成>点を線に変換(オプションの「式による並べ替え」で、3で振った番号を使う)
お気に入りした人
人
拍手で応援
拍手した人
拍手
fiftynineさんの記事一覧
- 国土地理院の「ビッグデータを活用した登山道修正」の進行状況 33 更新日:2024年03月31日
- 地理院地図の道路データから登山ルートのgpxファイルを作成する方法(QGISを使用) 11 更新日:2024年08月16日
※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。
ぜひご協力ください!
コメントを編集
いいねした人
コメントを書く
ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。ヤマレコにユーザ登録する