17

Rでシェープファイルを使用しています.1つはpoint.shpで、もう1つはpolygon.shpです。ここで、ポイントをポリゴンと交差させたいと思います。つまり、ポリゴンのすべての値を point.shp のテーブルにアタッチする必要があります。

パッケージspでoverlay()とspRbindを試しましたが、期待どおりの結果は得られませんでした。

誰かヒントをくれませんか?

4

3 に答える 3

15

overlay(pts, polys)ptsがSpatialPointsDataFrameオブジェクトであり、polysがSpatialPolygonsDataFrameオブジェクトである場合、ポリゴンデータフレームの行を与えるポイントと同じ長さのベクトルが返されます。したがって、ポリゴンデータをポイントデータフレームに結合するために必要なのは次のとおりです。

 o = overlay(pts, polys)
 pts@data = cbind(pts@data, polys[o,])

でも!いずれかのポイントがすべてのポリゴンの外側にある場合、overlayはNAを返します。これにより、polys [o、]が失敗するため、すべてのポイントがポリゴンの内側にあることを確認するか、別の割り当て方法を検討する必要があります。ポリゴンの外側のポイントの値...

于 2010-09-06T08:02:59.277 に答える
4

point.in.polyこれは、 fomspatialEcoパッケージを使用して 1 行で行います。

library(spatialEco)

new_shape <- point.in.poly(pts, polys)

ドキュメントから:point.in.poly「ポイントとポリゴンのフィーチャクラスと交差し、ポイントにポリゴン属性を追加します」。

于 2015-10-26T10:13:17.850 に答える