如何解决基于具有分类和定量值的多边形和栅格的数据提取
我希望对SpatialPolygonsDataFrame polyA的每个多边形(在我的情况下,是wrld_simpl或GADM中的每个国家/地区),对于分类栅格rcat的每个类别,将另一个栅格的值与定量值rquant相加。最终输出将是一个包含以下列的数据框:国家/地区名称,类别名称,总和。
我熟悉一些代码,但是这些并不能完全让我找出正确的脚本编写方式。有人可以帮助我吗?很抱歉在这里没有提供可复制的示例。请注意,我正在使用分辨率为0.0083(ncell = 933120000)的栅格,因此我认为将栅格转换为数据帧不是一个好主意。
以下脚本对每个多边形的rquant值求和
library(maptools)
data("wrld_simpl")
out <- extract(rquant,SpatialPolygons(wrld_simpl@polygons),na.rm=TRUE)
df <- data.frame(ISO3=wrld_simpl$ISO3,SUM=unlist(lapply(out,sum,na.rm=TRUE)))
以下脚本对rcat的每个类别的rquant值求和
zonalstats <- zonal(rquant,z=rcat,fun='sum',digits=0,na.rm=TRUE,count=T)
解决方法
我最终处理数据提取的方式是首先为分类栅格rcat的每个类别创建定量栅格(值=其他类别下像素的NA,相关类别下像素的rquant值)。然后,对于每个这些新栅格,我使用velox包devtools :: install_github('hunzikp / velox')提取了每个多边形的信息-非常适合从大型数据集中提取数据。
library(raster)
library(maptools)
data("wrld_simpl")
devtools::install_github('hunzikp/velox')
library(velox)
sptmp <- SpatialPolygons(wrld_simpl@polygons)
rquantX <- raster("rquant_forcategoryXonly.tif")
Lvx <- velox(rquantX)
Lvo <- Lvx$extract(sptmp,fun = function(x) sum(x,na.rm = TRUE))
Lvo2 <- cbind(Lvo[,1],wrld_simpl@data)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。