首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:从生成的图像中剪出一个shapefile边界

R:从生成的图像中剪出一个shapefile边界
EN

Stack Overflow用户
提问于 2018-05-11 04:14:46
回答 1查看 713关注 0票数 0

我制作了一张普通克里格预言的图像。我有一个边界线的形状文件,我想以该形状文件的形式裁剪普通的克里格预测。

这是我用来生成图像的代码:映像(OK.pred、loc=grid、axes=F、useRaster=TRUE)。我只想从图像中剪出一个物体--当我绘制它们时,它们完美地叠加在一起。

它几乎与这里的问题相同,https://gis.stackexchange.com/questions/167170/is-it-possible-to-clip-a-shapefile-to-an-image-in-r,但是我对R还比较陌生,并且完全搞不懂netcdf文件部分。

我找到了一堆关于如何剪辑光栅的代码,但我只是想不出如何将图像保存到变量中,更不用说将其转换为光栅来剪辑它了。任何帮助都将不胜感激!

代码语言:javascript
复制
 OK.pred<-krige.conv(gambling.geo,coords = gambling.geo$coords, data=gambling.geo$data, locations=grid,krige=krige.control(obj.model=gambling.vario.wls))

ordinarykrig = image(OK.pred,loc=grid,axes=F,useRaster=TRUE)

Macau <- readOGR("MAC_adm0.shp")

x <- crop(?...)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-13 02:42:13

摘自http://leg.ufpr.br/geoR/tutorials/kc2sp.R:您需要将克里格输出转换为空间对象,然后才能将其传递给掩码()。下列各方应这样做:

代码语言:javascript
复制
OK.pred<-krige.conv(gambling.geo,coords = gambling.geo$coords, data=gambling.geo$data, locations=grid,krige=krige.control(obj.model=gambling.vario.wls))
GT.s <- points2grid(SpatialPoints(as.matrix(grid)))
reorder <- as.vector(matrix(1:nrow(grid), nc=slot(GT.s, "cells.dim")[2])[,slot(GT.s, "cells.dim")[2]:1])
SGDF.s <- SpatialGridDataFrame(grid=GT.s, data=as.data.frame(OK.pred[1:2])[reorder,])
r<-raster(SGDF.s)
x<-mask(r, Macau)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50284915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档