SpatialPolygonsを一般化し、Rのトポロジを保存する方法は?


18

SpatialPolygonsDataFrame プロットをより効率的にするために、Rでaを一般化したいと思います。私が持っているポリゴンは、読み込みが遅く、ドキュメントに統合するのが難しい巨大なpdfプロットになります。

パッケージのgSimplify関数を使用しようとしましたrgeosが、残念ながらポリゴンのトポロジは保存されません。

使用できる代替手段はありますか?


実際には解決策ではありませんが、代わりにラスター(jpg / png)にプロットできますか?使用のものであってもよいpdfsizeの減少を説明し、このstackoverflowの質問:stackoverflow.com/questions/8521299/...
djq

マップをラスターイメージとしてプロットすることはオプションですが、可能な限りベクトルグラフィックを使用したいと思います。画像の品質は、ベクトルグラフィックを使用する場合、特にドキュメントのデジタルバージョンを見る場合に優れています。
yellowcap

gSimplify()にはtopologyPreserveデフォルトでオプションのパラメータがありますFALSE。それを設定しようとしましたTRUEか?
krlmlr

回答:


7

これについてはr-sig-geoで議論されています。決定的な回答を得るには、そこに尋ねる必要があります。空間Rの洞察を知っている人々がいるからです。

ただし、これはQuantumGIS、GRASS、SAGAなどのGISデスクトップアプリケーション(rgdalのwriteOGRコマンドまたはmaptoolsのwritePolyShape()を使用して形状をエクスポートする)でも実行できます。

QuantumGISの場合は、ベクター/ジオメトリツール/ジオメトリの単純化を使用します(トポロジをテストし、保存していませんが、ルーマニアのadmin1シェープファイルに適用すると、2000ノードで問題ありません)。

GRASSの場合はv.generalizeを使用します(アルゴリズムの詳細についてはマニュアルをご覧ください。いくつかあります)。

SAGAの場合、最初にポリゴンを線に変換し(形状-線/ポリゴンを線に変換)、次に線を単純化し(形状線/線の単純化)、最後に線を多角形に変換します(形状-多角形/線を多角形に変換)。これをテストしましたが、結果にはトポロジが保持されています。

乾杯と幸運、


それまでの間、トポロジーを保存しながら単純化を実行するオンラインサービスmapshaper.orgも見つけました。直接Rでは不可能であると思われるように私は、代替としてそれを使用している(QGISは節約トポロジー本当にないと私は他のソフトウェアパッケージを知らない)
yellowcap

1
Saga 2.0.8を使用して観察結果をテストしましたが、結果にトポロジが保存されていません
ファビアンZeindl

2

現在、rmapshaperAndy Teucherによる素晴らしいパッケージがあります。これには、「トポロジに対応したマルチポリゴンの単純化を実行する」単純化機能が含まれています。

githubリポジトリからの使用例:

states_simp <- ms_simplify(states_sp)

どこにオブジェクトstates_spがありspatialPolygons*ます。

詳細については、READMEパッケージを参照してください:https : //github.com/ateucher/rmapshaper


0

それが役立つはずです:

  • gSimplify(..., topologyPreserve=T)GEOSパッケージから

2
残念ながら、トポロジ保存オプションgSimplifyは実際にいくつかのポリゴンのトポロジを保存しません。これは、単一または複数ポリゴンのトポロジに関連すると思います。多くのポリゴンを持つシェープファイルの場合、トポロジは保存されません。
yellowcap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.