ポリゴンの押し出し(3D化)について

964 views
Skip to first unread message

QGIS初心者

unread,
Mar 4, 2022, 1:35:09 AM3/4/22
to QGIS初心者質問グループ
こんにちは。
QGISでポリゴンを押し出す方法(3次元データ)を作る方法はありますでしょうか?

添付いたしましたgeojsonファイルには、「height」という、押し出し距離が書いてあります。
現在のZ座標(Z=0)からheight(15.3m)押し出した立体を作りたいのですが、方法があれば知りたいです。
自分なりに調べた結果では、
「v.extrude」が対応しそうなんですが、QGIS上から
無題.png
のように設定したのですが、出力ができません。エラーログは後述します。

この機能の動かし方をご存じの方がお見えでしたら教えてください。

_________________________________

「QGIS version: 3.22.1-Białowieża

QGIS code revision: 663dcf8fb9

Qt version: 5.15.2

Pythonバージョン: 3.9.5

GDAL version: 3.4.0

GEOS version: 3.10.0-CAPI-1.16.0

PROJ version: Rel. 8.2.0, November 1st, 2021

PDAL version: 2.3.0 (git-version: 9f35b7)

アルゴリズムの起点: 2022-03-04T15:32:26

アルゴリズム 'v.extrude' を開始しています...

入力パラメータ:

{ '-t' : False, 'GRASS_MIN_AREA_PARAMETER' : 0.0001, 'GRASS_OUTPUT_TYPE_PARAMETER' : 0, 'GRASS_REGION_CELLSIZE_PARAMETER' : 0, 'GRASS_REGION_PARAMETER' : None, 'GRASS_SNAP_TOLERANCE_PARAMETER' : -1, 'GRASS_VECTOR_DSCO' : '', 'GRASS_VECTOR_EXPORT_NOCAT' : False, 'GRASS_VECTOR_LCO' : '', 'elevation' : None, 'height' : None, 'height_column' : 'height', 'input' : 'C:/Users/user/Desktop/sample/sample.geojson', 'method' : 0, 'null_value' : None, 'output' : 'TEMPORARY_OUTPUT', 'scale' : 1, 'type' : [0,1,2], 'where' : '', 'zshift' : 0 }


g.proj -c wkt="C:/Users/user/AppData/Local/Temp/processing_kmGwkX/99a08229d77649098d04cfef193514c4/crs.prj"

v.in.ogr min_area=0.0001 snap=-1.0 input="C:\Users\user\Desktop\sample\sample.geojson" output="vector_6221b27a6642d2" --overwrite -o

g.region n=-109372.76217717225 s=-109616.18300023866 e=-232556.789868031 w=-232828.55421159143 res=100.0

v.extrude input=vector_6221b27a6642d2 type="point,line,area" zshift=0 height_column=height method="nearest" scale=1 output=output8e2235a2ddaf4be1939977537dddef6b --overwrite

v.out.ogr type="auto" input="output8e2235a2ddaf4be1939977537dddef6b" output="C:\Users\user\AppData\Local\Temp\processing_kmGwkX\69fc23ad41714160857c18a9f8bfaa4b\output.gpkg" format="GPKG" --overwrite

Starting GRASS GIS...

警告: マップセットの平行ロックはウィンドウズではサポートされていません。

Traceback (most recent call last):
File "C:\PROGRA~1/QGIS32~1.1/apps/qgis/./python/plugins\grassprovider\Grass7Algorithm.py", line 433, in processAlgorithm
Grass7Utils.executeGrass(self.commands, feedback, self.outputCommands)
File "C:\PROGRA~1/QGIS32~1.1/apps/qgis/./python/plugins\grassprovider\Grass7Utils.py", line 397, in executeGrass
for line in iter(proc.stdout.readline, ''):
UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 35: illegal multibyte sequence

Execution failed after 0.89 秒(seconds)


出力レイヤの読み込み

次のレイヤは正しく生成されませんでした。
• C:/Users/user/AppData/Local/Temp/processing_kmGwkX/69fc23ad41714160857c18a9f8bfaa4b/output.gpkg
QGISメインウィンドウの"ログメッセージパネル"をチェックすると、アルゴリズムの実行に関する詳細情報が表示されます。

sample.geojson

福岡

unread,
Mar 4, 2022, 6:09:44 PM3/4/22
to QGIS初心者質問グループ
QGIS初心者 様

こんにちは

ご要望ですが、押し出した画像を見るだけでしたらQGISには「新規3Dマップビュー」という機能があります。
レイヤのプロパティの「3Dビュー」タブを設定し、メニューの「ビュー - 新規3Dマップビュー」で閲覧することになります。

https://docs.qgis.org/3.16/ja/docs/user_manual/style_library/3d_symbols.html#polygon-layers
https://docs.qgis.org/3.16/ja/docs/user_manual/introduction/qgis_gui.html#d-map-view

また私としてはこちらがお薦めですが、プラグインの「qgis2threejs」が便利で使いやすいと思っています。
表示の設定は次のような感じで、「Object type」を「Extruded」にして、「Style」の「Height」を今回の例であれば「高さ」もしくは「height」というフィールドを指定します。
メニューの「File - Export to Web」で、ブラウザで閲覧できるファイルセットを出力することもできます。

fig_01.PNG

使い方に関する詳細は、こちらをご覧ください。
https://qgis2threejs.readthedocs.io/ja/docs/Tutorial.html

地物に関する設定については、「オブジェクトタイプ」というところに記述されています。
https://qgis2threejs.readthedocs.io/ja/docs/ObjectTypes.html#polygon-layer

なお3DCGアプリではありませんが、Blenderを使う方法もあると思います。
BlenderGISというプラグインを導入することで、GISデータを取り込むことができます。私はちょっと触って遊んだ程度ですが、強力なツールだという印象でした。
Wikiのリンクは次のとおりです。「BlenderGIS 使い方」でググってみれば、日本語で色々な解説している記事をみつけることもできると思います。

https://github.com/domlysz/BlenderGIS/wiki

2022年3月4日金曜日 15:35:09 UTC+9 QGIS初心者:

sakuya_izayoi

unread,
Mar 5, 2022, 1:08:00 AM3/5/22
to QGIS初心者質問グループ
izayoiです。
GRASSを直接起動してコマンドを実施してみるのがいいかなと思います。
使い方はQGISが入っていると思うので
を参考にマップセットを作ってみてください。

そのあと、ベクトルのところから3Dの作成があるので実施してみてください。

2022年3月4日金曜日 15:35:09 UTC+9 QGIS初心者:
こんにちは。

QGIS初心者

unread,
Mar 6, 2022, 6:58:42 PM3/6/22
to QGIS初心者質問グループ
福岡様
ご回答ありがとうございます。最終的に欲しいのは、3Dのベクトルデータであるため、今回は見た目だけではちょっとないのです。
今後、見た目だけの時には非常に有用なので参考にいたします。

izayoi様
使い方のリンクありがとうございます。
GRASSから起動させて、3Dのベクトルファイルができたと思います。
と思いますというのは、geojsonファイルを確認してみたところ、z座標が付いていたからです。節点をつなげたところ、3次元図形がかけてます。

GRASSの図形表示画面なのですが、2Dから3Dに変更した際に、図形が全く表示されないのですが、3Dに切り替える際には何か設定などはいるのでしょうか?
DEMが無いからダメかと思い、当該範囲の10mDEMを試しに読み込ませたのですが、3DにするとDEMラスターも表示されません。
表示方法についてご存じの方がお見えでしたら是非教えてください。

2022年3月5日土曜日 15:08:00 UTC+9 sakuya_izayoi:

QGIS初心者

unread,
Mar 7, 2022, 6:34:28 AM3/7/22
to QGIS初心者質問グループ
追加です。
GRASSで3D表示をしているのですが、3D表示にすると何も見えない状態になってしまいます。

表示しようとしているのは地理院の10mDEMをラスタ化したものです。
どのように操作すれば3D表示ができるのでしょうか?

GRASSでの状況図と、10mdemを切り出したものを添付します。


現状.png


2022年3月7日月曜日 8:58:42 UTC+9 QGIS初心者:
10mdem.tif
Reply all
Reply to author
Forward
0 new messages