【发布时间】:2020-03-27 04:38:56
【问题描述】:
在给定坐标中心点和所需的 x 和 y 大小(以像素为单位)的情况下,我想对光栅图像进行子集化。在我的例子中:
library(raster)
set.seed(5)
##Create a raster
r <- raster(ncol=10, nrow=10, crs="+proj=utm +zone=1 +datum=WGS84", xmn=0, xmx=50, ymn=0, ymx=50)
s1 <- stack(lapply(1:4, function(i) setValues(r, runif(ncell(r)))))
# Create 10 random points in the raster
pts <- data.frame(pts=sampleRandom(s1, 10, xy=TRUE)[,1:2], status=rep(c("A","B"),5))
现在,我想创建 10 个新图像,它们将是大小的子集(X 子集图像的所需宽度 = 5 像素,Y 子集图像的所需宽度 = 5 像素),中心点为 (pts$x , pts$y),具有相同的像素大小。最后,将每个图像保存为 GeoTIFF:
for(i in 1:length(pts)){
writeRaster(r[[i]],filename=paste(pts,"_",i,sep=""),
format="GTiff",datatype="FLT4S",overwrite=TRUE)
}
这可能吗?
【问题讨论】: