0

親愛なるスタックオーバーフローの人々。

SPDF の各ポリゴンの面積を計算しようとしています。データを入れてエリアのリストを取得できる機能を作ろうとしています。ポリゴンのすべての領域を返す for ループの作成に行き詰まっています。1 つのポリゴンのサーフェス計算では、次のコードが機能します。

surfacefirstpolygon <- gArea(inputSPDF[1,1])

このコードは、次のコードを実行すると i を 1 つずつ出力します。

polys <- slot(inputSPDF,"polygons")
for(i in 1:length(polys)){
  print(i)
}

次に、次のようにして、これらのコードを for ループにまとめます。

polys <- slot(inputSPDF,"polygons")
areasofpolygons <- for(i in 1:length(polys)){
  gArea(inputSPDF[i,i])
}

これは機能せず、次のエラーが表示されます。

is.projected(spgeom) のエラー: 関数 'is.projected' のメソッドを選択する際に引数 'obj' を評価する際のエラー: [.data.frame(x@data, i, j, ..., drop = FALSE) のエラー: 未定義列が選択されました。

誰が何がうまくいかないのか知っていますか?

結果 =

dd = dim(inputSPDF) 
for(i in 1:dd[1]){ 
   areasofpolygons[i] <- gArea(inputSPDF[i,1]) 
}
4

1 に答える 1