1

「スライス」マップをデータセットから新しい netcdf ファイルに保存したいと考えています。問題のコードは次のとおりです。

library(ncdf)
ncfname <- “cru10min30_tmp.nc”
crutmp <- open.ncdf(ncfname)

tmp.array <- get.var.ncdf(crutmp,"tmp")
close.ncdf(crutmp)
month <- 1
tmp.slice <- tmp.array[,,month]

データ セットはhttp://geography.uoregon.edu/GeogR/data/raster/cru10min30_tmp.ncで入手できます。このコード スニペットは、http://geography.uoregon.edu/GeogR/topics にある例から取得したものです。 /raster01.htm . 「tmp.slice」の 2 次元配列を新しい netcdf ファイルとして保存するにはどうすればよいですか?

ありがとうございます。問題の分析に役立つ情報がさらに必要な場合はお知らせください。

4

1 に答える 1

1

最初に新しい NetCDF ファイルを作成してから、新しく作成したファイルにスライスを追加する必要があります。

ソース ファイルからディメンション値を取得します。

lat <- get.var.ncdf(crutmp,"lat")
lon <- get.var.ncdf(crutmp,"lon")

これらの配列を使用して次元を定義します。

Lat <- dim.def.ncdf(name = "lat", units = "m", vals = lat)
Lon <- dim.def.ncdf(name = "lon", units = "m", vals = lon)

次の次元に沿って変数を定義します。

mv <- -9999 # missing value
z <- var.def.ncdf(name = "z", units = "m", dim = list(Lat, Lon), prec="double", missval = mv)

ここで、変数 z を含む新しい NetCDF ファイルを作成します。

newnc <- create.ncdf(filename = "tmp_slice.nc", vars = list(z))         

タイム スライス値 (tmp.slice) を変数 z に入れます。

put.var.ncdf(nc = newnc, varid = "z", vals = tmp.slice, start = c(1,1), count = c(-1,-1))

新しく作成された NetCDF ファイルを閉じて、ディスクに書き込みます。

close.ncdf(newnc)
于 2013-09-17T10:53:35.570 に答える