【问题标题】:Error in ncvar_get - NetCDF to Raster conversionncvar_get 中的错误 - NetCDF 到光栅的转换
【发布时间】:2023-03-26 06:45:02
【问题描述】:

尝试将 NOAA 雪数据 (NetCDF) 转换为 R 中的栅格格式。我已在 CDO 中对这些数据进行了预处理(从每周到每日进行插值)。

library(raster)
library(ncdf4)
nc<-nc_open('NOAA_Snow_JanJune2016.nc')

# extract variable name, size and dimension
v <- nc$var[[1]]
size <- v$varsize
dims <- v$ndims
nt <- size[dims]              # length of time dimension
lat <- nc$dim$latitude$vals   # latitude position
lon <- nc$dim$longitude$vals  # longitude position

# read sea ice variable
r<-list()
for (i in 1:nt) {
  start <- rep(1,dims)     # begin with start=(1,1,...,1)
  start[dims] <- i             # change to start=(1,1,...,i) to read    timestep i
  count <- size                # begin with count=(nx,ny,...,nt), reads entire var
  count[dims] <- 1             # change to count=(nx,ny,...,1) to read 1 tstep

  dt<-ncvar_get(nc, varid = 'snow_cover_extent', start = start, count = count)

  # convert to raster
  r[i]<-raster(dt)
}

返回以下错误:

Error in ncvar_get_inner(ncid2use, varid2use, nc$var[[li]]$missval, addOffset,  : 
  Error: variable has 3 dims, but start has 2 entries.  They must match!

有没有其他人遇到过并解决了这个问题?我想知道在 CDO 中准备文件是否会导致问题。可以在此处访问 (.nc) 数据:

https://drive.google.com/file/d/0Bz0W7Ut_SNfjeE9ObXpySzJ5UWs/view?usp=sharing

非常感谢!

【问题讨论】:

标签: r raster netcdf


【解决方案1】:

使用 ncdf4 探索你的 ncdf 属性

library(ncdf4)
nc<-nc_open('D:/NOAA_Snow_JanJune2016.nc')
print(nc)
varname<-names(nc$var)

使用栅格将您的 ncdf 转换为栅格

library (raster)
r<-brick('D:/NOAA_Snow_JanJune2016.nc',varname='snow_cover_extent')

剧情来了

spplot(r[1])

【讨论】:

  • 谢谢 - 让它工作,但我的情节(如上)是错误的方向。 (它实际上也可能已经反转/反转了)您之前提供的代码也不起作用:rt&lt;-t(r)extent(rt)&lt;-extent(c(range(lon), range(lat))) 返回Warning messages: 1: In min(x, na.rm = na.rm) : no non-missing arguments to min; returning Inf 2: In max(x, na.rm = na.rm) : no non-missing arguments to max; returning -Inf 3: In min(x, na.rm = na.rm) : no non-missing arguments to min; returning Inf 4: In max(x, na.rm = na.rm) : no non-missing arguments to max; returning -Inf
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2019-02-03
  • 2018-12-01
相关资源
最近更新 更多