1

netCDF ファイル (シェープファイルでマスク) から切り取ったラスターブリックがあります。このラスターブリックを緯度、経度、時間、値の列を持つデータフレームに変換するにはどうすればよいですか? netCDF4 パッケージと expand.grid 関数を使用して作成できることはわかっています。ただし、netcdf オブジェクトではなく、rasterbrick オブジェクトでこのデータフレームを作成する必要があります。

library(raster)
# Create a rasterStack object with time written to z dimension.
r <- raster(ncol=3, nrow=4)
s <- brick(lapply(1:3, function(x) setValues(r, runif(ncell(r)))))
s<-setZ(s,as.Date('2000-1-1 00:00') + 0:2)

これから、sどうdf すればデータフレームを取得できますdf

head(df)
    lon  lat          dttm value
1 226.5 54.0 1/1/2000 0:00     2
2 223.5 55.5 1/2/2000 0:00     2
3 225.0 55.5 1/3/2000 0:00     2
4 219.0 57.0 1/4/2000 0:00     2
5 220.5 57.0 1/5/2000 0:00     2
6 222.0 57.0 1/6/2000 0:00     2

. ラスターツーポイント機能を試してみました。

    raspt<-rasterToPoints(s)
    head(raspt)

ただし、データ フレームは拡張形式です。元のデータには 1 時間ごとのデータ タイム ステップとして 50000 以上のレイヤーがあるため、長い形式が必要です。したがって、基本的には、日付と値として x、y、レイヤーを持つ長いデータフレームが必要です。 . ご協力ありがとうございました。

4

1 に答える 1