等高線からDEMデータ作成について

2,098 views
Skip to first unread message

kenke...@gmail.com

unread,
Feb 28, 2020, 4:13:21 AM2/28/20
to QGIS初心者質問グループ
皆様のお知恵を拝借させてください。使用バージョン QGIS ver.3.4.15 、GRASS GIS ver.7.8.2
一般的等高線データからDEMを作成したいと考えており、検索の結果2通りの方法があったので試してみたのですが、いずれも途中でつっかえてしまいます。

①「GRASS GIS v.surf.rstコマンドで等高線からDEMを作成する」https://qiita.com/ishiijunpei/items/bf404865c113c0be62e8
この方法では「GRASSツール→ファイル管理→GRASSへベクタをインポートします→ロードされたベクタをインポートする」の段階でインポート完了となりますが、いずれも一部エラーとでてしまい、結局GRASSで表示されていません。処理が正しく行われていない?

こちらでは4「プロセッシングツールのGRASS7から「v.to.rast.attribute」を使って、等高線を標高を値に持つラスタに変換します。」の段階がうまくいきません。そもそも「v.to.rast.attribute」ではなく、「v.to.rast」しかありませんが同じもの? 各種パラメータの設定がよく分かりません。5の「r.surf.contour」も然りですが・・・

もっと簡略な方法で作成できれば良いのですが・・・ 宜しくお願い致します。

福岡

unread,
Feb 28, 2020, 5:57:02 PM2/28/20
to QGIS初心者質問グループ
おはようございます。
これから出かけますので、簡単な記述になりますがご容赦ください。m(__)m

ざっとですが、先ほど動作を確認しました。
使ったのは基盤地図情報からダウンロードしたDEMから作成した等高線で、それを素材にDEMを作成できるかを確認してみました。

手順としては次のとおりです。
1.「v.to.rast」でベクタの等高線をラスタにする。
 念のため「Name of column for 'attr' parameter」に標高が記録されているテーブルを指定しました。
2。1で作成したラスタから「r.surf.contour」で、DEMを作成する。
 デフォルトのまま実行しました。

結果としてはセルサイズを指定しないデフォルトのままでは、セルサイズが粗すぎると感じましたが、出力はできました。
詳しく検証せず、情報提供程度の内容となりましたが、よろしくお願いいたします。

福岡

unread,
Feb 29, 2020, 4:21:08 PM2/29/20
to QGIS初心者質問グループ
おはようございます。

帰ってきてから、確認してみたことについて投稿いたします。
セルサイズの数値は直感で設定しています、できればご自分でもお試しになることをお勧めします。

まず基盤地図情報からダウンロードしたDEM(10mメッシュ)をラスタに変換したものを掲載します。
これと等高線から作成したDEMと比較することによって、できあがりの評価ができると思います。

dem_0.png


今回の作業に使う等高線を作成しました。間隔は10mにしてあります。
これを材料として、DEM作成を試してみます。

contour.png


最初に「v.to.rast」をデフォルト設定のまま実行します。
前の投稿にも記載しましたが「Name of column for 'attr' parameter」だけ標高が記録されているテーブルを指定しています。

rasterized_1.png


これを元に「r.surf.contour」で、DEMを作成します。「GRASS GIS 7 領域のセルサイズ」を「10」としました。
できあがりをみるとダウンロードしたDEMと乖離しています。これでは不満です。

dem_1.png


そこで「v.to.rast」で「GRASS GIS 7 領域のセルサイズ」を「10」として出力してみます。

rasterized_2.png


これを元に「r.surf.contour」で、DEMを作成します。先程と同様に「GRASS GIS 7 領域のセルサイズ」を「10」としています。
このできあがりでしたら、ある程度満足できるのではないかと思います。

dem_2.png


kenke...@gmail.com

unread,
Mar 1, 2020, 7:03:25 PM3/1/20
to QGIS初心者質問グループ
福岡様

ご検討いただきありがとうございます。
自分で試してみたのですが、以下の点で躓いております。
試しに用いたデータは基盤地図情報からダウンロードした標高点データ(xml)をshpに変換したものを用いています。

1.「v.to.rast」でラスタ変換する際、「Name of column for 'attr' parameter」に標高が記録されているテーブルを指定とありますが、
  ドロップダウンで選べる選択肢が整備データと整備デーAしか選べません・・・

画像2.png

2.レイヤプロパティを見るとソースフィールドではID abc9に標高と記されています。
  これを整備データと同じIDに変更できれば、先ほどの1で選択可能となるのでしょうか? またIDの変更はどのように行えば良いのでしょうか・・・。

画像3.png

 
    

福岡

unread,
Mar 1, 2020, 7:29:31 PM3/1/20
to QGIS初心者質問グループ
おはようございます。

私の投稿したものは、等高線のラインデータからDEMを作成する方法でした。
基盤地図情報のxmlからDEMを作成するのであれば、もっと簡単な方法があります。

私が使っているのはエコリスさんの「基盤地図情報 標高DEMデータ変換ツール」で、愛用者も多いと思います。
このツールを使えば、xmlからGeoTiff形式のDEMを簡単に作成することができます。

株式会社エコリスさんのホームページ

基盤地図情報 標高DEMデータ変換ツールのページ
Message has been deleted

kenke...@gmail.com

unread,
Mar 1, 2020, 7:51:57 PM3/1/20
to QGIS初心者質問グループ
福岡様

おはようございます。
ご返信ありがとうございます。
エコリスさんの「基盤地図情報 標高DEMデータ変換ツール」については知っていたのですが、今回は等高線からDEMを作成するということを何とかできないかと試行錯誤しています。
というのも、とある海外地点のDEMを作成したいのですが、どうにも等高線のshpファイルしか無いらしく、そのデータはまだ購入していないため、試しに基盤地図情報のshpファイルから作成できないかと実験をしておりました。

福岡

unread,
Mar 1, 2020, 8:32:35 PM3/1/20
to QGIS初心者質問グループ
お返事ありがとうございます。

実験ということですので、私と同じようにトライしてみてはいかがでしょうか?

1 基盤地図情報から標高データをダウンロード
  お勧めは「10mメッシュの10B(地形図の等高線」です。5mメッシュの場合、データ抜けがある場合があります。
  それにxmlのファイル数が5mメッシュよりも少なくなるので、作業が楽になると思います。
2 エコリスさんの「基盤地図情報 標高DEMデータ変換ツール」でDEMを作成
3 QGISのプロセッシングツールの「GDL - ラスタ抽出 - 等高線」を使って等高線を作成
  デフォルトでは、標高は属性テーブルの「ELEV」へ書き込まれます。
4 「v.to.rast」でラスタ版の等高線を作成
  以前の投稿に書いたように、標高データが書かれているところ(ELEV)の指定と領域のセルサイズを指定してください。
5 「r.surf.contour」でDEMを作成
  こちらも以前の投稿に書いたように、領域のセルサイズを指定してください。

ところで、私はポイントデータから試していないのですが、「v.to.rast」で標高データを選択できない理由についてお伝えします。

「Name of column for 'attr' parameter」は数値でなくてはいけないのですが、貼って頂いた画像をみると「String」(文字列)になっています。
これを「Integer」(整数)または「Real」(実数)にする必要があると思います。
この修正は、プロセッシングツールの「ベクタテーブル - フィールドのリファクタリング」でできます。
標高点のデータで実験をお続けになる場合には、お試しください。

kenke...@gmail.com

unread,
Mar 1, 2020, 8:52:22 PM3/1/20
to QGIS初心者質問グループ
福岡様

懇切丁寧な回答ありがとうございます。
福岡様のxml→DEM→等高線→DEMは滞りなく作成できました。

しかし今度用いる海外のデータはshpのみなので、xmlデータは恐らくないことが想定されます。
そのためなるべく等高線shpからDEMを作成したいと考えております。
ご教授いただいたとおり、プロセッシングツールの「ベクタテーブル - フィールドのリファクタリング」で標高データを「Integer」(整数)に修正し、

画像4.png


「v.to.rast」の「Name of column for 'attr' parameter」ドロップダウンに表示されましたので、

画像5.png

これで実行を選択すると下記のような表示でエラーが出てしまいます。

画像6.png


やはり難しいのでしょうか・・・

kenke...@gmail.com

unread,
Mar 1, 2020, 9:02:04 PM3/1/20
to QGIS初心者質問グループ
福岡様

検討いただきありがとうございます。
「標高」を「level」に表記を変更したところうまく変換してくれました!!
ありがとうございました!!

sakuya_izayoi

unread,
Mar 1, 2020, 9:16:05 PM3/1/20
to QGIS初心者質問グループ
こちらizayoiです。
以前ちょっと興味があったので実施してみました。
その時の条件ですが
・5m解像度のラスタまではたいていの場合は作成可能。
・2.5m解像度はラスタ化範囲次第では可能。
・1.0m解像度は実用的な範囲では作成しきってくれない
という事でした。

あんまり細かいラスタ化は注意が必要でしたという状況提供でした。

takaha...@gmail.com

unread,
Mar 2, 2020, 3:20:12 AM3/2/20
to QGIS初心者質問グループ
izayoi様

情報提供ありがとうございます。
地形図から無理やり起こすのは、詳細なDEM作成の場合には適さないということになりますね。

sakuya_izayoi

unread,
Mar 2, 2020, 7:18:11 PM3/2/20
to QGIS初心者質問グループ
izayoiです。

ちょっと実験的に細かいのをやってみました。
30m×30mでならば1m以下の解像度のラスターDEMも作れました。(0.5m解像度まではいけたけど、めっちゃくちゃ時間がかかる。)
自分の場合はこの面積では実用性が皆無なのですが、農地10a分でいいよという場合には細かいのも作れる感じです。
私の場合はどうしているかというと、有料製品ソフトなのですが、AutodeskのCivil3Dを使って詳細DEM作っております。(1km×1kmの0.5m解像度とかになるとかなり時間かかるけど)

オープンソースソフトの方がどのPCでも詳細DEMを作れるので,
できれば詳細DEMを作る方法が知りたいです。
Reply all
Reply to author
Forward
0 new messages