2

雛が元の巣の場所から翌年確立した領域まで移動した距離を測定しようとしています. spatstat パッケージを使用してこれを実行したいのですが、一部の関数 (nncross、nndist、crossdist など) で出力に問題があります。私のコードは次のようになり、データは次のとおりです: https://sites.google.com/site/datastackoverflow/shapefiles

library(raster)
library(spatstat)
library(maptools)

# read in shapefile with nest locations (UTMs) and convert to ppp format:
nests <- readShapeSpatial("nest_locs.shp")
X<-as.ppp(nests)
X

# read in shapefile with juvenile locations (UTMs) and convert to ppp format:
juvs <- readShapeSpatial("juv_locs.shp")
Y<-as.ppp(juvs)
Y

# calculate the distance between nest points and juveniles:
N<-nncross(X,Y)
N

# another option
crossdist(X, Y)

結果は次のようになります。

> crossdist(X, Y)
     [,1]     [,2]
[1,] 2756.546 1994.002
[2,] 3831.429 3466.360

ポイント ID を保持することは可能ですか? この場合、行番号と列番号の代わりに、巣 ID と対応する鳥 ID を保持できますか?

4

3 に答える 3

0

明確にするために:

  • crossdist(X,Y) のすべての点から のすべて点までの距離を計算し、 からまでの距離であるような距離の行列を返します。の点は の行に対応します。の点は の列に対応します。XYdd[i,j]X[i]Y[j]XdYd

  • nncross(X,Y)は、各点についてX[i]内の最も近い点を検出しY、既定では、この最も近い点までの距離 ( $dist[i]) と最も近い点のシリアル番号( ) の両方を返します$which[i]。つまり$which[i]=j、 の最近傍が である場合X[i]ですY[j]。のポイントにYID 文字列などの他の属性がある場合は、シリアル番号 ( $which) を使用して関連するエントリを抽出します。

  • nndist(X)nnwhich(X)単一点パターンで動作しますX。彼らは、各ポイントについて、同じポイント パターン内X[i]の最近傍、たとえばwhereを見つけます。次に、インデックスを返し、距離を返します。X[j]j != innwhichjnndist

于 2016-01-20T00:40:11.407 に答える