2017-06-13 16 views
2

例えば、Rを使用して角度距離加重補間を行いたいとします。 here(p。3)。R角度距離重み付け補間関数

これは、(1)相関減衰距離に対する距離によってデータ点の重み付けを行い、(2)分離されたデータ点に大きな重みを与える補間法です。

私の質問は、これにRのパッケージ実装があるかどうか、または最初からそれを行う必要があるかどうかです。私のGoogle検索ではこれについては何も分かりませんでしたが、私はRの補間パッケージについてよく知らないです。だから誰かがこれをやったことがあるなら、私に知らせてください。

答えて

1

シェパードに実装さavailable..Iが角距離加重(ADW)のための簡単な関数を書いた何Rパッケージはありません1968

[X、Y]は推定したい座標です。 [Xtrain、Ytrain]はデータポイントの座標です。ウェイト半径は距離によるウェイトです。

compute_weight_by_theta = function(X,Y,xtrain,ytrain,weights.radial){ 
     N = length(xtrain) 
     weight.directional = integer(N) 
     for (i in 1:N){ 
     numerator = 0; 
     denominator = 0; 
     for (j in 1:N){ 
      xi = xtrain[i]; yi = ytrain[i] 
      xj = xtrain[j]; yj = ytrain[j] 
      if ((xi != xj) | (yi != yj)){ 
      Sj = weights.radial[j] 
      Di = sqrt((X - xi)**2 + (Y - yi)**2) 
      Dj = sqrt((X - xj)**2 + (Y - yj)**2) 
      cos_theta = ((X-xi)*(X-xj) + (Y-yi)*(Y-yj))/(Di*Dj) 
      numerator = numerator + (1-cos_theta)*Sj 
      denominator = denominator + Sj 
      } 
     } 
     weight.directional[i] = numerator/denominator 
     } 
     return(weight.directional) 
    } 
+0

ありがとうございます!私はより簡単なアプローチを使用しました。次回は、あなたの機能を試してみます。 – intasys

関連する問題