v.generalizeを使用するときにGRASSがポリゴンを削除するのはなぜですか?


9

v.generalizeを使用してサイズや構造が米国の郡や州と似ているポリゴンを簡略化しようとしているときに、ジレンマに直面しています。単純化または平滑化メソッドを実行した後、データセットからポリゴンを失うことがよくあります。私を困らせるのは、この振る舞いに一貫したパターンがないように見えることです。場合によっては、同じデータセットを異なるデータセットに適用すると、まったく異なる結果が生じることがあります。その結果、私は繰り返し可能なワークフローを開発することができず、しぶしぶトポロジーを保持する他の単純化ツールを探し始めています。次に例を示します。

# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary

# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005

v.generalizeの各ステップにより、一部のポリゴンが非表示になります。これがなぜ起こるか私は理解したいと思います。機能が不十分なメモリに読み込まれているためですか?ある種のジオメトリ基準を満たしているため、パラメータが「タイト」で、フィーチャが除外されるのですか?(一部の非常に大きな機能が失われていることに注意してください。)削除された機能のトポロジに問題があり、それらが消去されるのですか?この最後の質問に関連して、私が最初に行うbuild.polylinesとclean操作でこれを処理する必要があると思いますが、完全には定かではなく、これに対処する適切な指示を見つけることができないようです。いずれかがあります?

特にv.generalizeツールを使用した個人的な経験に基づいた、人々が提供できる洞察を感謝します。

ロジャー


データが緯度経度である可能性があります。これは、.005のしきい値でデータを失うのに十分です。平面CSを使用していることを確認できますか?
Brad Nesom、2011年

私は実際にそれについて不思議に思っていて、上記を実行する前にアルバースの等面積投影に再投影しました。投影パラメータは次のとおりです:USER:100002(+ proj = aea + lat_1 = 20 + lat_2 = -23 + lat_0 = 0 + lon_0 = 25 + x_0 = 0 + y_0 = 0 + ellps = WGS84 + units = m + no_defs) 。まだ同じ問題があります。
lagerratrobe 2011年

なぜポリゴンをポリラインに変換するのかと思います。ポリゴンを直接単純化しない特定の理由はありますか?
アンダーダーク

わかりました、v.build.polylinesパーツを引き出したので、「county_clean」はポリゴンレイヤーになりました。まだたくさんのエリアを失います。最初は単純化する方が簡単かもしれないと思っていましたが、v.cleanの「bpol」もポリゴンを壊しているので、多分それは問題ではありません。
lagerratrobe

1
ただ愚かな質問です。v.cleanではなくv.generalizeを使用してデータを失っていますか?
simo 2011年

回答:


4

GRASS開発チームからの回答。

「ポリゴンの非表示[v 6.4.1]は、ベクトルトポロジーに違反した平滑化された境界が削除されたために発生しました。その後、トポロジー的に正しくないすべての境界が削除されました。[6.4.2]で境界が平滑化/単純化されたのは、変更が行われない場合のみです。ベクトルトポロジに違反しています。」

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