R: вырезать границу шейп-файла из сгенерированного изображения - PullRequest
0 голосов
/ 11 мая 2018

Я сгенерировал образ обычных кригенных предсказаний. У меня есть шейп-файл границы, и я хотел бы обрезать обычные предсказания кригена в форме этого шейп-файла.

Это код, который я использую для создания изображения: Изображение (OK.pred, LOC = сетка, оси = F, useRaster = TRUE). Я просто хочу вырезать объект из изображения - когда я нарисую его, он идеально наложится.

Это почти идентично проблеме здесь, https://gis.stackexchange.com/questions/167170/is-it-possible-to-clip-a-shapefile-to-an-image-in-r,, но я относительно новичок в R и совершенно потерян с частью файла netcdf.

Я нашел кучу кода о том, как обрезать растры, но я просто не могу понять, как даже сохранить изображение в переменную, не говоря уже о преобразовании его в растр, чтобы обрезать его. Любая помощь приветствуется!

 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(?...)

1 Ответ

0 голосов
/ 13 мая 2018

Взято из http://leg.ufpr.br/geoR/tutorials/kc2sp.R: Вам необходимо преобразовать вывод кригинга в пространственный объект, прежде чем вы сможете передать его в mask ().Следующее должно сделать это:

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)
...