0
rgeosパッケージのgArea、gUnion、gIntersectionの組み合わせを使用して、重なり合うポリゴンの領域を取得しようとしています。SpatialPolygonsDataFrameをループする
この質問では、私は多面体となる家庭の範囲を作成するためにadehabitatLTによって提供される動物の場所を使用しています。
私はlocs <- puechabonsp$relocs
locs <- as.data.frame(locs)
da <- as.character(locs$Date)
da <- as.POSIXct(strptime(as.character(locs$Date),"%y%m%d"))
puech <- as.ltraj(xy = locs[,c("X","Y")], date = da, id = locs$Name)
puech2<-ld(puech)
完成の操作をする形式にデータを操作
library(adehabitatHR)
library(rgeos)
data(puechabonsp)
- データは、現在以下のコード
pigsp<-SpatialPointsDataFrame(coords=cbind(puech2$x,puech2$x),
data=data.frame(puech2$id),proj4string = CRS("+proj=utm +zone=14"))
pigkern<-kernelUD(pigsp) #kernel homeranges
pigvert<-getverticeshr(pigkern,95) #vertice of home ranges (the polygons)
proj4string(pigvert)<-CRS("+proj=utm +zone=14") #add projection
uniqueID<-unique([email protected]$id) #list of unique animal ids
をspatialpointsdataframeされ、私がこだわっているところです。動物IDの可能な組み合わせごとに重複領域を取得しようとしています。
test <- lapply(combn(uniqueID, 2), 2,
function(x) {
SIcomb <- gArea(gIntersection([email protected]$id[ x[1] ],
[email protected]$id[ x[2] ]))/
gArea(gUnion([email protected]$id[ x[1] ], [email protected]$id[ x[2]
]))
} )
私はlapplyを正しく実行していないと思われますが、それを把握することはできません。ヒントは非常に高く評価されます!
完璧に機能しました!ありがとうございました。 IDの組み合わせを出力に追加するコードを少し変更して、各2エリアの動物を比較した2つの動物を知っていますか? – ecologist55
私は各ID-IDの組み合わせのために、 – ecologist55
stats [x] < - paste(gArea(gUnion(sp1、sp2))、sp1 @ data $ id、sp2 @ data $ id、sep = " - ") – ecologist55