Rの空間演算子?


12

Rで空間選択またはフィルターを実行するにはどうすればよいですか?私はこれをPostGISで(たとえば)を使用して行うことができます:

SELECT * FROM mypoint, mypoly
WHERE ST_Within(mypoint.geom, mypoly.geom);

同様に、他のほとんどのGISソフトウェアでも同様です。だから私はRの何かが次のようになると期待しています:

mypoint[within(mypoint, mypoly),]

しかし、私はどこにもリードを見つけることができません。PostGIS / GEOS / JTS / Shapelyで使用される一般的な空間述語の用語を使用するものを探しています(内、含む、交差、重複、タッチなど。DWithinはボーナスです)。この機能またはライブラリはRに存在しますか?そうでない場合、類似した何かがありますか?

注:Rではsp、オブジェクトにクラスを使用します(SpatialPointsDataFrameなど)。

回答:


11

特定の質問については、point.in.polygondocs)またはoverlayvignette)を使用して分析を実行できる必要があります。

空間述語言語を実装するのは簡単ではなく、あなたが言及したすべての例は、ある時点でJTSのポートまたはラッパーに要約されます。RからGEOSへの直接アクセスを提供する最近のGoogle SOCエントリであるrgeosのプレアルファ版リリースがあります。

一般に、R開発者は、R自体内で完全なGIS実装を維持するか、PostGIS、GRASS(spgrass)、SAGA(rsaga)などとの相互作用を可能にするパッケージの促進に依存して、より深く提供することに取り組んでいるようです空間に精通。


point.in.polygon少し粗雑な(たとえば)基本的なポリゴンの良いスタートpoint.in.polygon(pnt@coords[,1], pnt@coords[,2], lake@polygons[[1]]@Polygons[[1]]@coords[,1], lake@polygons[[1]]@Polygons[[1]]@coords[,2]) です: rgeosあなたが言及したことを本当に楽しみにしており、すべてのバイナリ述語などを持っています。
マイクT

GRASSを使用したspgrass6の例については、grass.osgeo.org
wiki /

1
rgeos現在CRANにあり、インストール/使用/などが非常に簡単です。
マイクT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.