5

操作してから再度書き込みたいラスター ファイルがいくつかあります。

rasterfiles   <- list.files("C:\\data", "*.envi", full.names = TRUE)
d1 <-  overlay(stack(rasterfiles ), 
               fun=function(x) movingFun(x, fun=mean, n=3, na.rm=TRUE))
d2=unstack(d1)

私たちがどのように書くかについてのアイデアに感謝していますd2(ラスター)

4

2 に答える 2

10
 writeRaster(d1, file="d1.nc") #other file formats such as .envi work as well

d11 つのラスターであり、ラスターのリストではないため機能します。実際、 の結果overlayは 1 つのラスターです ( を参照?overlay)。
さらに、 の概念は、stack正確には、1 つのレイヤーを持つ複数のラスターを取得し、複数のレイヤーを持つ 1 つのラスターを生成することです。
最終的に、各レイヤーを個別に保存したい場合は、unstack書き込む前にラスターを作成できます。
その場合:

d2 <- unstack(d1)
outputnames <- paste(seq_along(d2), ".nc",sep="")
for(i in seq_along(d2)){writeRaster(d2[[i]], file=outputnames[i])}
于 2013-02-15T09:11:44.623 に答える
8

Plannapusソリューションが機能するはずです。または、1つのステップで単一のファイルに書き込むこともできます。

 rasterfiles   <- list.files("C:\\data", "*.envi", full.names = TRUE)
 d1 <-  overlay(stack(rasterfiles ), 
           fun=function(x) movingFun(x, fun=mean, n=3, na.rm=TRUE), 
           filename='output.tif' )

または2つのステップで複数のファイルに

 rasterfiles   <- list.files("C:\\data", "*.envi", full.names = TRUE)
 d1 <-  overlay(stack(rasterfiles ), 
           fun=function(x) movingFun(x, fun=mean, n=3, na.rm=TRUE))
 d2 <- writeRaster(d1, 'out.tif', bylayer=TRUE)
于 2013-02-16T07:11:40.677 に答える