使用光栅包

时间:2018-06-17 22:30:17

标签: r raster shapefile netcdf

我想通过光栅包打开包含两个变量的多个NetCDF文件,然后使用我的shapefile(多边形)提取数据并计算面积平均值。 当我这样做时,无论使用rater函数还是堆栈函数,都会显示一条警告消息。警告消息的内容是:

警告讯息: 在.varName(nc,varname,warn = warn)中:使用的varname是:PEVAP 如果这不正确,您可以将其设置为以下之一:PEVAP,APCP

看起来栅格无法打开包含多个变量的NetCDF文件。 谁能帮助我? 如果您还可以告诉我如何使用shapefile计算面积平均值,我将不胜感激。 这是数据链接。

[https://drive.google.com/open?id=1ltcEmxJ33iudX3lJTCM7B0zgeht9lPFX][1]
[https://drive.google.com/open?id=1b7tNdJHq_HZcw7NPz1kbVFDWli1G9zaJ][2]
[https://drive.google.com/open?id=1oC2kxVhC9MMcmz-IcIZJFkS6_tRKyIAM][3]

我的代码:

 rm(list=ls())
 library(raster)
 library(ncdf4)
 path       <- "E:/rrshp/"
 pathdata   <- "E:/data/"
 pathshp    <- "E:/test_shape"
 setwd(path)
 ncname     <-  list.files(pathdata,full.names=T)
 ## warning comes from the following code
 myrast     <-  raster(ncname[1]) 
 allrast    <-  stack(ncname)

1 个答案:

答案 0 :(得分:0)

由于未指定要导入栅格的变量而显示错误。试试这个:

#Check the variables available for ncname[1]
nc<-nc_open(ncname[1])
names(nc[['var']])
[1] "var1" "var2"      "var3"

#If I want to import "var1" and "var3" for ncname[1]
s<-stack(stack(ncname[1],varname="var1"),stack(ncname[1],varname="var3"))