インポート→DXFからレイヤをインポート→線をポリゴンに変換の方法

1,383 views
Skip to first unread message

y t

unread,
Sep 6, 2021, 8:01:46 PM9/6/21
to QGIS初心者質問グループ
はじめまして
他のGISは経験ありですが、QGISは初めて使います。
CADで結線された土地データ(DXF)をプロジェクトメニューから
インポートして、lineレイヤを指定して「ジオメトリツール→線をポリゴンに変換」
を実行しますと、”ジオメトリが3つの頂点を持たないため無視された線があります。”
というエラーが出てポリゴン変換はできません。
線はマルチラインのように結合されてないとだめなのでしょうか。
単純にDXFデータから自動ポリゴン化をしたいのですが無理だとすれば、
線の結合のような手順が必要でしょうか?
基本的な質問のようで恐縮ですが、教えてください。
QGIS Ver3.20 (Windows10)

y t

unread,
Sep 6, 2021, 9:49:09 PM9/6/21
to QGIS初心者質問グループ

ジオメトリがLine (LineStringZ)になっているので、MultiLineStringにする必要が

ありそうですが、よくわかりません。


2021年9月7日火曜日 9:01:46 UTC+9 y t:

Bun

unread,
Sep 7, 2021, 12:40:41 AM9/7/21
to QGIS初心者質問グループ
こんにちは
私もたまにCADとQGISでデータのやりとりをしますが、うまくポリゴン化できなかったことがあったので
いまはCAD側でハッチングしてQGISで読み込んでいます。
ハッチングはポリゴンデータとして認識されるので。
解決策でなくてすみません。

ためしにDXFから結合した線データとりいれてみましたが、ポリゴン化できずyutakさんと同じ現象でした。
ジオメトリの有効性チェックにもひっかからず・・・



2021年9月7日火曜日 10:49:09 UTC+9 yutak...@gmail.com:

福岡

unread,
Sep 7, 2021, 1:10:01 AM9/7/21
to QGIS初心者質問グループ
皆様へ

こんにちは
簡単に動作を確認した報告程度の投稿です。役に立たないかもしれませんが、ご容赦ください。m(__)m

実験材料として、適当次のような線を引いてみました。

fig1.png

属性テーブルは次のようになっていまして、直線の組み合わせです。
メッセージの「ジオメトリが3つの頂点を持たない」といことから、線が連続してないものと考えました。

fig2.png

以下は、試してみた手順と結果です。

1 当初のデータから、プロセッシングツールの「ベクタジオメトリ - 線をポリゴンに変換」を実行してみます。
  投稿にあったのと同じようなエラーメッセージが出ます。

fig3.png

2 メニューの「ベクタ - 空間演算ツール - 融合」を実行します。
  これで地物がマルチパートになります。

3 プロセッシングツールの「ベクタジオメトリ - 線をポリゴンに変換」を実行します。
  マルチパートにしたデータからは、ポリゴンが生成されるようです。

fig4.png

  ただし、属性テーブルをみると地物は1つのままです。このままでは使いにくいデータだと思います。

fig5.png

4 そこでメニューの「ベクタ - ジオメトリツール - マルチパートをシングルパートに変換」を実行します。
  属性テーブルをみると地物は3つになりました。

fig6.png
2021年9月7日火曜日 13:40:41 UTC+9 Bun:

adachi

unread,
Sep 7, 2021, 1:14:37 AM9/7/21
to QGIS初心者質問グループ
元データにもよるかと思いますが、「線をポリゴンに変換」ではなくプロセッシングツールにある「ポリゴン化(Polygonize)」だとうまくいきそうな気がします。
単純なデータで試しにやってみると

・読み込んだdxfをそのままポリゴン化
 →デフォルト設定だとエラーが出るが、オプションで「不正なジオメトリの地物を無視」にすると一応結果は生成される

・dxfを「ベクタ」メニュー→「ジオメトリ」→「シングルパートをマルチパートに集約」してできたレイヤをポリゴン化
 →特にエラーも出ずポリゴンが生成

データが膨大になると別のところでエラーが出る可能性もありますが..

2021年9月7日火曜日 13:40:41 UTC+9 Bun:
こんにちは

福岡

unread,
Sep 7, 2021, 1:23:36 AM9/7/21
to QGIS初心者質問グループ
皆様へ

こんにちは

adachiさんからご指摘があった「ポリゴン化(Polygonize)」を使うと、私の用意した実験データは一発でポリゴンになりました。
直感的には、CAD出力に対しても有効な手段だと思いました。m(__)m

2021年9月7日火曜日 14:14:37 UTC+9 adachi:

Bun

unread,
Sep 7, 2021, 1:59:24 AM9/7/21
to QGIS初心者質問グループ
yutak様、福岡様、adachi様

私のテストデータでは一箇所分割されないポリゴンがあったものの、
adachi様の方法でポリゴン化できました。
プロセッシングのポリゴン化は、CAD同様にLineデータに囲まれている閉塞面をポリゴン化するような感覚ですね。
そしていまさらですが、私のデータはMultiLineStringで、しかもCSR設定ができておらずジオメトリ有効性チェックがもれていました・・・
・・・ありがとうございました。


2021年9月7日火曜日 14:23:36 UTC+9 福岡:

y t

unread,
Sep 7, 2021, 5:20:11 AM9/7/21
to QGIS初心者質問グループ
皆様 ご回答いただきありがとうございました。
プロセッシングツールボックスの「ポリゴン化(Polygonize)」を実行してみたところ、1発でポリゴン化できました。
ポリゴン化にも種類があるんですね。ありがとうございます。
その他マルチパート化やCSR設定などのご回答も、なるほどというものばかりで勉強になりました。
また、壁にぶつかると思うので何かありましたら教えてください。


2021年9月7日火曜日 14:59:24 UTC+9 Bun:
Reply all
Reply to author
Forward
0 new messages