[英]How can I save a 3 column data frame into a NetCDF file in R?
我有一個Nx3小節,我想保存到NetCDF(.nc)文件。 標語包含三列:
如何將其保存到R中的NetCDF(.nc)文件? 到目前為止,我一直在使用柵格數據包,但結果混合:
# Be careful to call raster and dplyr in this specific order.
require(raster)
require(dplyr)
set.seed(10)
df <- expand.grid(lon = 1:10, lat=1:10) %>% as_tibble() %>% mutate(var1 = rnorm(100))
val <- df %>% select(var1) %>% pull()
coordinates(df) <- ~ lon + lat
gridded(df) <- TRUE
raster_df <- raster::raster(df)
projection(raster_df) <- CRS("+proj=longlat +datum=WGS84 +ellps=WGS84")
setValues(raster_df, val)
writeRaster(raster_df,
filename = "file.nc",
varname = "var1",
format = "CDF")
我對此解決方案唯一的問題是,它似乎無法產生一致的輸出。 有時文件有時會損壞(即我無法再次打開它們),有趣的是,它們的大小都是相同的,考慮到原始數據並不完全相同(完全可能是經度和緯度),這根本不應該這樣。
我正在使用:
我願意使用其他替代方法(或其他軟件包)。
您的示例似乎陷入了很多不必要的困境。 這是一個簡單的版本:
library(raster)
set.seed(10)
r <- raster(xmn=0.5, xmx=10.5, ymn=0.5, ymx=10.5, nrow=10, ncol=10, vals=rnorm(100))
z <- writeRaster(r, filename = "file.nc", varname = "var1")
z
這似乎很好。
您的代碼中有一個明顯的錯誤: setValues(raster_df, val)
。 這應該是raster_df <- setValues(raster_df, val)
或values(raster_df) <- val
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.