为R中的特定区域屏蔽NetCDF文件时出错?

为R中的特定区域屏蔽NetCDF文件时出错?,r,raster,shapefile,rgdal,netcdf4,R,Raster,Shapefile,Rgdal,Netcdf4,我编写了以下脚本,根据我的Shapefile剪辑netCDF文件。NetCDF文件包含土壤信息。当我使用我的shapefile屏蔽NetCDF文件时,我遇到了错误。任何关于如何解决这个问题的建议都将不胜感激。我的netCDF文件很重,这就是为什么我没有将其附加到这里,因此我共享指向netCDF文件和Shapefile的链接 使用brick函数进行光栅转换 b <- brick(NC_File) b > b class : RasterBrick dimensions :

我编写了以下脚本,根据我的
Shapefile
剪辑
netCDF
文件。
NetCDF
文件包含土壤信息。当我使用我的
shapefile
屏蔽
NetCDF
文件时,我遇到了错误。任何关于如何解决这个问题的建议都将不胜感激。我的
netCDF
文件很重,这就是为什么我没有将其附加到这里,因此我共享指向
netCDF
文件和
Shapefile
的链接

使用brick函数进行光栅转换

b <- brick(NC_File)
b
> b 
class      : RasterBrick 
dimensions : 1725, 3377, 5825325, 1  (nrow, ncol, ncell, nlayers)
resolution : 0.00833333, 0.00833333  (x, y)
extent     : -117.6917, -89.55003, 45.31663, 59.69162  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : G:/Nelson_MIP/ForcingFilesFromOneDrive/Soil/GSDE_NCRB/ADD_PROP1_NCRB.nc 
names      : layer 
varname    : ADD_PROP
b
类别:RasterBrick
尺寸:1725337758253251(nrow、ncol、ncell、nlayers)
分辨率:0.00833333,0.00833333(x,y)
范围:-117.6917,-89.55003,45.31663,59.69162(xmin,xmax,ymin,ymax)
crs:+proj=longlat+datum=WGS84+no_defs
来源:G:/Nelson\u MIP/ForcingFilesFromOneDrive/Soil/GSDE\u NCRB/ADD\u PROP1\u NCRB.nc
名称:图层
varname:ADD_PROP
读取我的形状文件以屏蔽NetCDF

SHP <- readOGR("G:/Nelson_MIP/WatershedFile/ForSoilNetCDFprocessing.shp")
SHP
> SHP
class       : SpatialPolygonsDataFrame 
features    : 1 
extent      : -103.7103, -101.7075, 50.83711, 52.35122  (xmin, xmax, ymin, ymax)
crs         : +proj=longlat +datum=NAD83 +no_defs 
variables   : 1
names       : Strahler_O 
value       :          5
SHP-SHP
类别:空间多边形框架
特色:1
范围:-103.7103、-101.7075、50.83711、52.35122(xmin、xmax、ymin、ymax)
crs:+proj=longlat+datum=NAD83+no_defs
变量:1
姓名:Strahler_O
价值:5
将shapefile的投影与NetCDF文件的投影匹配

1 variables (excluding dimension variables):
        byte ADD_PROP[lon,lat]   
            long_name: additional property 
            _FillValue: -100
            missing_value: -100

     2 dimensions:
        lon  Size:3377
            standard_name: longitude
            long_name: longitude
            units: degrees_east
            axis: X
        lat  Size:1725
            standard_name: latitude
            long_name: latitude
            units: degrees_north
            axis: Y
SHP <- spTransform(SHP, crs(NC_File))

SHP这是我在光栅中修复的一个bug。
对于当前版本,您可以使用
光栅
而不是
来解决此问题,因为这是一个单层数据集

library(raster)
b <- raster("ADD_PROP1_NCRB.nc")
s <- shapefile("ForSoilNetCDFprocessing.shp")
s <- spTransform(s, crs(b))
m <- mask(b, s)
库(光栅)

b如果你能以某种方式(dropbox、google drive)提供该文件,那将很有帮助Thanks@RobertHijmans-我刚刚提供了一个到
NetCDF
Shapefile
的链接。
Masking <- mask(b, SHP)
> Masking <- mask(b, SHP)
Error in ncvar_get_inner(ncid2use, varid2use, nc$var[[li]]$missval, addOffset,  : 
  Error: variable has 2 dims, but start has 3 entries.  They must match!
library(raster)
b <- raster("ADD_PROP1_NCRB.nc")
s <- shapefile("ForSoilNetCDFprocessing.shp")
s <- spTransform(s, crs(b))
m <- mask(b, s)