我有一个从 netCDF 文件(由 shapefile 屏蔽)中剪辑的光栅砖。如何将此光栅砖转换为具有 lat、lon、time 和 value 列的数据框。我知道我可以使用 netCDF4 包和 expand.grid 函数来实现它。但是我必须在 rasterbrick 对象上创建这个数据框,而不是 netcdf 对象。
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)
但是,数据框是扩展格式,我想要长格式,因为在原始数据中,我有超过 50000 层作为 hrly 数据时间步长。所以基本上,我想要一个长数据框,其中 x、y、层作为日期和值. 感谢您的帮助。