ncvar_get出错 - NetCDF转栅格转换

时间:2017-05-24 16:35:40

标签: r raster netcdf

尝试将NOAA Snow数据(NetCDF)转换为R中的栅格格式。这些数据已由我在CDO中预处理(每周每周插补)。

variable=(
  "var one"
  "var two"
  "var three"
)
for i in "${variable[@]}"; do
    echo "$i"
done

返回以下错误:

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)
}

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

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

非常感谢!

1 个答案:

答案 0 :(得分: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])

enter image description here