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、レイヤーを持つ長いデータフレームが必要です。 . ご協力ありがとうございました。