QGISでトポロジを維持しながらポリゴンファイルを一般化しますか?


35

ポリゴンシェープファイルがあり、これを一般化する必要があります。どうすればポリゴンを一般化し、「スライバー」のようなトポロジエラーがないことを確認できますか。

私はすでに試しました:

  1. ベクトル->ジオメトリツール->ポリゴンからライン
  2. ベクトル->ジオメトリツール->ジオメトリの単純化...ここでは、画面上にすでに表示されているにもかかわらず、オーバーラップとギャップが生成されていることがわかりました。
  3. ベクトル->ジオメトリツール->ポリゴンへの線

ここで、プログラムはエラーを表示してクラッシュします

ここに画像の説明を入力してください


この問題に関するニュースはありますか?
オイシュタイン

残念ながら:なし
クルト・

回答:


16

GRASSはトポロジを認識します。Processingツールボックスのv.generalizeを使用してポリゴンを単純化し、入力データがトポロジ的に正しい場合は出力も同様にすることができます。

ここに画像の説明を入力してください


Windowsインストーラーを使用して、v.generalizeを実行しようとすると、エラー(依存関係がありません)が表示されます。特別な設定が必要ですか?
カート14

@Kurt:スタンドアロンインストーラーですか?含まれているGRASSバージョンがわかりません。処理設定では、GRASS 6.xまたは7.xの場合とインストール先を指定できます。これらの構成をセットアップに合わせて調整してみてください。
暗闇

はい、私はstanaloneインストーラーを使用します。あなたのアドバイスに従って、処理オプションを使用してGrass 7を非アクティブ化し、qrass 6へのパスを正しく構成しました。このパスは正しくありませんでした、古いqgisからの残り物。これでv.generalizeを実行できるようになりましたが、最終的に新しいエラーが発生します。出力レイヤーを開くことができず、最終的に、grassが正しくインストールおよび構成されているようだというメッセージが表示されます。提案やヒントを教えてください。
カート14

通常、このエラーは、ある段階でジオプロセシングが失敗したことを意味します。エラーの発生場所を確認するには、ツールの実行中に生成されるログを調べる必要があります。
暗闇

7

これは、一般化する前にベクターレイヤーのトポロジをクリーンアップできる@Underdarkの回答の予備と見なすことができます。GRASSには、次のようなレイヤーを修復するための多くのツールを含むv.clean機能があります。

  • スナップ最寄りの頂点にいる「スナップ」行
  • 迷惑なダングルを削除するrmdangle
  • 重複したジオメトリフィーチャを削除するrmdupl

以下の画像に示されているさまざまなもの:

v.clean

また、ツールの実行感度に応じてしきい値を設定することもできます。個人的には、QGISのジオメトリの有効性チェック機能を使用する傾向があります(ベクター > ジオメトリツール > ジオメトリの有効性のチェック)を使用してエラーをチェックし、エラーが存在する場合はv.cleanの適切なツールを使用します。エラーが除去されたら、一般化するのに適した位置にいるはずです。

お役に立てれば!


3
また、単純な頂点削減で十分な場合は、v.generalizeは不要です。これは、プルーンツールで実行できるためです。
ガボールファーカス14

貴重な情報が記載されている@Underdarkの回答の準備に感謝します。私はそれを明示的に言っていないが、もちろん私が一般化したかったポリゴンファイルはトポロジー的にきれいである[なぜなら; ごみ-ごみ出し:
カート14

@カート、それは理にかなっています:)
ジョセフ

2

MapShaperを使用してみましたかか?これは、ポリゴンを一般化する良い方法であることがわかりました。コードをダウンロードする場合は、オフラインバージョンもあります。

別の方法として、これをGeoJsonに変換してから、「トポロジを保存する形状の単純化」をサポートするTopoJsonを使用することもできますhttps://github.com/mbostock/topojson


持っている。それは本当に素晴らしいツールです、Mapshaperを試してみました
クルト

1
もう1つのコメント:タイトルが言うように:私はqgisで解決策を探しています。Mapshaperは、トポロジを保持しません(非常に強力な一般化を行うことで、自分で証明できます!)。Topojson:これは私見プログラマのためだけに有用であるのjavascript-ソースコードの束である
クルト・

おっと、QGISのみの側面を見逃しました。ただし、QGISはgeojsonを処理します。それは非プログラマにそれがアクセスできるようにQGISプラグインにtopojsonの簡素化の機能で動作するように理にかなっているのだろうか
djq

トピック外の行を続けます。OpenJUMPには、この目的のためのツール「ポリゴンカバレッジの単純化」があります。
user30184 14

0

簡単なテストを行ったところ、[ベクター]メニューの[ジオメトリの単純化]ツールがトポロジを尊重しているように見えます。

編集:これはポリゴンファイルで直接行われました。最初に行に変換する理由は何ですか?


こんにちはダレン、ヒントのおかげで私はenablrトポロジカル編集でそれをしようとします
クルト・

1
こんにちは、ダレン、トポロジーを尊重しません。「トポロジ編集を有効にする」と違いはありません。これは、generalzingが新しいレイヤーを生成し、「トポロジ編集を有効にする」が既存のレイヤーを選択した場合にのみ機能するためです。正しいトポロジーを持っている場合、非常に強力な一般化を行って、もう一度確認してください。おかげで
カート

1
クルト; 面白い。強力な一般化を行うと、あなたは正しいように見えます!ごめんなさい!
ダレン・コープ

1
このチェックボックスは、誰かが検索する場合に備えて、QGIS 2.2(おそらくそれ以前)で削除されました。
lynxlynxlynx 14年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.