ポリゴンの頂点にZ座標を与えたい

1,252 views
Skip to first unread message

sakuya

unread,
Dec 28, 2018, 9:01:48 AM12/28/18
to QGIS初心者質問グループ
こちらsakuyaです。お世話になります。
タイトルのように、ポリゴンの頂点にZ座標を与えた3Dポリゴンを入手したいです。
添付図のような標高ラスタにポリゴンが書いてあった時にそれぞれのポリゴンの頂点に高さを与えた状態で面を手に入れたいです。
つまり、objメッシュ形式でいうと、バーテックスとフェイスの関係を維持したままZ座標を与えたいといった意味合いです。
すみませんが、よろしくお願いします。

sakuya_izayoi

unread,
Dec 28, 2018, 9:37:57 AM12/28/18
to QGIS初心者質問グループ
こちらizayoiです。
sakuyaへ。
前提条件として、この三角形はそれぞれ独立した2Dポリゴンであるという状態で話します。QGISのバージョンは3.4を使っているとします。
OBJメッシュといわれて、すんなり分かる私も私ですが、やりたい事はわかりました。
Face1がVertex1,2,3でできていて、そのvertex1,2,3それぞれにZ座標値をラスタからとり、Face1の構造は壊したくない。かな。
①ポリゴンにIDがなかったら、IDをフィールド計算機でふります。IDは「$ID」で計算できます。あった場合はどちらでも。
②プロセッシングツールで頂点の抽出を行います。
上記のポリゴンを対象にします。そうすると各頂点が抽出されます。その時にIDが一緒に持っていかれています。
上記のIDがポリゴンIDで、vertex_indexが頂点ナンバーです。1行目ではID2番の三角系フェイスの頂点3と読めます。

③プロセッシングツールからドレープを行います。
これを行う事でZ座標を入手できます。

④その後、ポイントをつなげるためプロセッシングツールの「ポイントをパスに」を使います。

この時に設定は
順序フィールドを「vertex_index」
グループフィールドを「ID」
にします。

⑤結果的に下記のようにラインレイヤが作られます。らインじゃなくてポリゴンが欲しいならば

「ベクタ」⇒「ジオメトリツール」⇒「ラインをポリゴンへ」

をすれば

ともとのvertexとfaceの関係を維持したまま標高を得られます。

試してみてください。

sakuya

unread,
Dec 28, 2018, 9:59:04 AM12/28/18
to QGIS初心者質問グループ
sakuyaです。
izayoiへ。こんなに早く返信ありがとう。図入りでわかりやすかったです。
おかげ様で成功しました。ありがとうございます。

OBJメッシュの説明補足ありがとうございます。ちょっと分かりにくかったかもしれませんが流石izayoiです。

Reply all
Reply to author
Forward
0 new messages