开发者

How to cut brick using polygon?

开发者 https://www.devze.com 2023-02-10 01:33 出处:网络
I have a brick file of the bioclim variables, the brick was merged from four 30sec tile brick, so it is a little bit large. I 开发者_C百科would like to get the brick file of my research area by cuttin

I have a brick file of the bioclim variables, the brick was merged from four 30sec tile brick, so it is a little bit large. I 开发者_C百科would like to get the brick file of my research area by cutting it using a polygon as boundary. What should I do? Otherwise, if it is not possible to do with brick, can I do it with raster?

Thanks in advance~

Marco


Check out extent() if you want to crop the brick to a smaller rectangle. Also drawExtent() if you would rather choose by clicking.

EDIT: Since you used the terms "cut" and "mask" I am not sure I have understood correctly, but here are two ways that might help. You could even use both.

# an example with dimensions: 77, 101, 3  (nrow, ncol, nlayers)
myGrid_Brick <- brick(system.file("external/rlogo.grd", package="raster"))

# a simple polygon within those dimensions
myTriangle_P <- Polygon(cbind(c(10, 80, 50, 10), c(10, 20, 65, 10)))
myTriangle_Ps <- Polygons(list(myTriangle_P), "fubar")
myTriangle_SP <- SpatialPolygons(list(myTriangle_Ps))
myTriangle_Ras <- rasterize(myTriangle_SP, myBrick)

# this will crop a brick to minimal rectangle that circumscribes the polygon
# extent(myCrop) is smaller than extent(myGrid) but no values are changed
myCrop_Brick <- crop(myGrid_Brick, myTriangle_SP)

# while this converts every coordinate that is NA in
# the mask to become NA in the returned brick
# while leaving the brick extent unchanged
myMask_Brick <- mask(myGrid_Brick, myTriangle_Ras)
0

精彩评论

暂无评论...
验证码 换一张
取 消