1

この質問は、GIS (ArcMap 10.1) での計算が計算に 1 か月以上かかる (まだ完了していない) 後に発生します。今、私はRでより速い解決策を見つけようとしています.

私は ~30,000 x 80,000 セルのマトリックスを持っています。各セルは 5x5 メートルの正方形を表します。各セルから特定の半径 (3000 メートル) 内にあるセルの値の合計を計算する必要があります。マトリックスの端にあるセルについては、マトリックスの外側の値を 0 と仮定します。

問題は、半径内に収まるセルをどのように定義するかです。この機能を備えたライブラリがあるはずですが、見つかりませんでした。

助言がありますか?

4

1 に答える 1

2

テストできる簡単な方法は、使用して 3000m にextract設定し、引数で使用することです。ラスター内の各セル番号を順番に抽出できます。しかし、これには途方もない時間がかかると思います。ラスターが....と呼ばれているとしましょう。buffersumfunr

#  in the first instance I would set y to be smallish, like say 1:100 and see how long it takes
extract( r , y = 1:ncell(r) , buffer = 3000 , fun = sum )

現在、rasterパッケージにはいくつかの並列処理が組み込まれており、大規模で大規模なマルチコア マシンにアクセスすると、実行することで操作が少し高速化されます...

beginCluster()
extract( r , y = 1:ncell(r) , buffer = 3000 , fun = sum )
endCluster()

extractの出力を変数に代入することを忘れないでください。

于 2013-08-22T11:16:49.297 に答える