1

ラスタースタック (リスト) に設定されているラスター (または必要に応じてマトリックス) のセットを編集しています。値 -999 を NA に変更する必要があります。これまでのところ、個別のラスターごとに実行する次のコードが最もメモリ効率が高いことがわかりました。

r[[15]][r[[15]]==-999]<-NA

また

s=r[[15]]
s[s==-999]<-NA
gc(reset=T)
r[[15]]=s

リスト内の 20 以上のラスターの値を置き換えていますが、10 ~ 15 前後でメモリが不足しています。もっと効率的な方法を知っている人はいますか?

乾杯!

4

1 に答える 1

2

これを行うために設計されたものを使用できますcalc...

calc( r , function(x) { x[ x == -999 ] <- NA; return(x) } )

rasterStack(または入力されたものは何でも)を返します。ドキュメントから:

calc大きなオブジェクトのcalc場合、チャンクごとに値を計算します。これは、 の結果が正しいために、一度にすべての値にfunアクセスできることに依存してはならないことを意味します。

于 2013-11-07T10:01:01.430 に答える