如何从netCDF创建rasterbrick?
我想从netCDF文件创建一个光栅砖。我检查了一些基础知识,过程似乎很简单() 但是,当“构建”我的netCDF文件时,行、列和层的尺寸将被交换。即使我手动定义它们如何从netCDF创建rasterbrick?,r,raster,netcdf,R,Raster,Netcdf,我想从netCDF文件创建一个光栅砖。我检查了一些基础知识,过程似乎很简单() 但是,当“构建”我的netCDF文件时,行、列和层的尺寸将被交换。即使我手动定义它们 # load libraries library(ncdf4) library(raster) # Load Outflow file ncfname = "C:/Users/stijn/OneDrive/Bureaublad/Thesis/Rscripts/Outputs/swit.nc" swit = nc_open(ncfn
# load libraries
library(ncdf4)
library(raster)
# Load Outflow file
ncfname = "C:/Users/stijn/OneDrive/Bureaublad/Thesis/Rscripts/Outputs/swit.nc"
swit = nc_open(ncfname)
print(swit)
[ 1 variables (excluding dimension variables):
float SWIT[time,y,x]
units: m/hr
missing_value: -9999
_FillValue: -9999
3 dimensions:
time Size:2904
units: days since 2018-12-01 00:00:00
y Size:127
units: Meter
x Size:147
units: Meter]
switbrick <- brick(ncfname, nrows = 127, ncols = 147, nl = 2904)
switbrick
[class : RasterBrick
dimensions : 127, 2904, 368808, 147 (nrow, ncol, ncell, nlayers)
resolution : 0.04166667, 5 (x, y)
extent : -0.02083333, 120.9792, 6615598, 6616233 (xmin, xmax, ymin, ymax)
crs : NA
source : directory/something/swit.nc
names : X603301.87, X603306.87, X603311.87, X603316.87, X603321.87, X603326.87, X603331.87, X603336.87, X603341.87, X603346.87, X603351.87, X603356.87, X603361.87, X603366.87, X603371.87, ...
x (Meter) : 603301.87, 604031.87 (min, max)
varname : SWIT ]
#加载库
图书馆(ncdf4)
图书馆(光栅)
#加载输出文件
ncfname=“C:/Users/stijn/OneDrive/Bureaublad/Thesis/rscript/Outputs/swit.nc”
swit=nc_打开(ncfname)
打印(swit)
[1变量(不包括维度变量):
浮动开关[时间,y,x]
单位:米/小时
缺少_值:-9999
_填充值:-9999
3个维度:
时间:2904
单位:2018-12-01 00:00:00起天数
y码:127
单位:米
x尺寸:147
单位:米]
switbrick问题在于文件的顺序不正常,从时间开始,而不是以时间结束。您可以使用dims
参数对此进行更正(似乎没有文档记录)
试一试
库(光栅)
ncfname=“C:/Users/stijn/OneDrive/Bureaublad/Thesis/rscript/Outputs/swit.nc”
switbrick非常感谢!这完美地解决了问题。很高兴知道@如果你的问题适合你,你需要接受正确的答案。这就是其他人可能注意到这篇文章的回应方式。@Majid谢谢你的提醒!我试着回答工藤的问题,但工藤没有接受,因为我的名声还不到15岁。我想接受也不行,但我现在明白了。
library(raster)
ncfname = "C:/Users/stijn/OneDrive/Bureaublad/Thesis/Rscripts/Outputs/swit.nc"
switbrick <- brick(ncfname, dims=c(3,1,2))