使用Shapefile从NetCDF提取数据,该文件由R?中的多个多边形组成?

时间:2019-06-25 17:25:10

标签: r dataframe mask shapefile netcdf

我有NetCDF文件,其中包含38年的降水量数据。我正在使用我所在区域的shapefile提取我感兴趣区域的数据。当我使用下面的代码时,我得到了与位于多边形内部的网格点相对应的数据。但是,我感兴趣的是基于shapefile的每个多边形(在本例中为12)提取数据并使用多边形的名称保存数据框。下面是我的示例代码

library(ncdf4)
library(rgdal)
library(raster)
library(maptools)
library(GISTools)

NC = brick("Daily_Pcp.nc")
Subbasin_SHP=readOGR("my_Shapefile.shp")
crs(NC)
crs(Subbasin_SHP)
SHP=spTransform(Subbasin_SHP, crs(NC))

Polygon_Names=my_shapefile$Subbasin # there are 12 polygon (subbasins) in my shapefile with specific name

PCP_Data=mask(NC, Subbasin_SHP)
DF=as.data.frame(PCP_Data, xy=TRUE)
DF_insidepoints=DF[complete.cases(DF),]
write.csv(DF_insidepoints, "DataForEntireShapefile.csv")

这是shapefile与所有多边形的映射。我希望将属于特定多边形的所有点数据保存在其多边形名称上。总共我应该使用mask函数获得12个文件,其中每个文件都有对应于该多边形内网格点的数据。

plot(Subbasin_SHP, col="gray", border="blue", axes=TRUE, pbg="white")
pointLabel(coordinates(Subbasin_SHP), labels = Subbasin_SHP$Subbasin) 

enter image description here

0 个答案:

没有答案