1

saveRDS()それぞれがラスター レイヤーとメタデータを含むリストを含む多数のリストを保存するために使用しようとしています。ラスター レイヤーが ncdf ファイルから抽出された場合は正常に機能しましたが、元のファイルが ASCII ファイルsaveRDS()の場合、値を最終ファイルに書き込むのではなく、元のファイルへのポインターのみを書き込みます。

何が起こっているかの要約版は次のとおりです。

require(raster)

mf <- raster('myfile.asc')
meta <- list(mylonglistofmetadata)
res <- list(mf, meta)
saveRDS(res, 'myresult.Rdata')

myresult.Rdataは単純に への 33KB のポインタになりましたmyfile.asc。実際に値を保存して、消去後も機能するようにしたい場合myfile.asc(したがって、約 15MB になるはずです)

対照的に、ncdf 形式の他のファイルの場合:

require(ncdf4)
require(raster)

ff <- 'myfile2.nc'
nc <- nc_open(ff)
meta <- list(mylonglistofmetadata)
res <- list(nc, meta)
saveRDS(res, 'myresult2.Rdata')

ここでmyresult2.Rdataは、私が望むようにすべてを保存しているので、ラスターパッケージで問題が発生すると思いますか?

誰でもこれを修正する方法について何か考えがありますか? writeRaster()メタデータをデータと一緒に保持しようとしており、ncdf ファイルから抽出したバッチと同じ形式を使用して、後の処理を容易にするため、使用しないことをお勧めします。

4

1 に答える 1

4

簡単な答えは、次のことができるということです。

mf <- raster('myfile.asc')
mf <- readAll(mf)
mf

これで、値はメモリ内にあり、.RData ファイルに保存されます

また、次の点にも注意してください。

  • writeRaster を介してメタデータをデータとともに保存できます (?raster::metadata を参照)。

  • 次の方法で ncdf ファイル (地理データを含む) にアクセスできます。raster('myfile2.nc')

  • 実際には何にも使用しないため、ncdfファイルの例は有益ではありませんnc。置き換えmfnc場合、削除した後も機能しません'myfile2.nc'

于 2015-06-18T02:56:19.223 に答える